Я сначала попытался бы копировать Ваш VRRP, но с дополнительным VIP. Для каждого VIP чередуйте основные и резервные узлы.
DNS1 = vip1 основной, vip2 вторичный DNS2 = vip2 основной, vip1 вторичный
Затем имейте каждую из своих клиентских машин, имеют обоих дюйм/с в сопоставителе. Тем путем нагрузка распределена через серверы имен, но если Вы идете вниз, другой просто принимает дополнительную загрузку.
Используйте экран, свободный оконечный мультиплексор, разработанный Проектом GNU, который позволит Вам иметь несколько терминалов в одном.
Можно запустить сессию, и терминалы будут сохранены, даже когда Вы, соединение потеряно, таким образом, можно возобновиться позже или из дома.
Переключатель от удара до zsh, и видит, что Ваша производительность улучшается:
Google скажет Вам намного больше преимуществ.
Я постоянно использую эти
ALT-. (ESC +. в некоторых терминалах), копирует в последний раз используемый (суперполезный) аргумент
CTRL-W удаляет слово
CTRL-L ясный терминал (как четкая команда, но быстрее)
ALT-B (ESC+B в некоторых терминалах) перемещает назад слово
ALT-F (ESC+F в некоторых терминалах) продвигается слово
Переход CTRL-E к EOL
Переход CTRL-A к BOL
Поиск CTRL-R в истории
Пакет завершения удара установки. Это содержит много предопределенных правил завершения для оболочки. Включите его путем ввода "источника/etc/bash_completion", если Вы дистрибутив не делаете этого для Вас. Затем например каждый раз, когда Вы завершаетесь, после kpdf Вы будете только видеть список файлов PDF и каталогов. Это столь же умно для завершения удаленных файлов после scp ssh://server/XXX (при включении логинов без пароля).
Используйте "tar xf" для извлечения сжатых архивов. J для bzip2 и z для gzip не необходимы, поскольку tar обнаружит тип файла Вашего архива. Ни один не '-' знак перед аргументами. Вы сэкономите много времени (за тысячелетие ;-)).
Еще лучше используйте ненечто для извлечения любого архива с единственной командой без любых ненужных аргументов.
alias ut="tar xf"
, †“делает архивы извлечения еще легче.
– David Wolever
13 September 2009 в 19:17
Я изучил прием от друга долго назад для легкого изменения расширения файла:
mv my_filename.{old,new}
Расширение Shell развернет это до:
mv my_filename.old my_filename.new
Это может также использоваться для переименования файла другими способами, такими как включение чего-то:
mv my_{,cool_}filename
ls -l /bin/c
затем нажимают Alt-Shift Alt-Shift-{и он завершит это к чему-то как ls -l /bin/c{at,h{grp,mod,own,vt},p{,io},sh}
для Вас.
– Paused until further notice.
26 September 2009 в 19:05
Некоторые небольшие указатели относительно просмотра журнала:
Наблюдение цветных структур каталогов легче.
alias ls="ls --color=tty"
Править
alias ls="ls --color=auto"
Необходимо протестировать максимальную пропускную способность между 2 серверами.
На SERVER1 сделайте:
nc -u -l 54321 > /dev/null
На SERVER2 сделайте:
dd if=/dev/zero bs=1MB | nc -u SERVER1 54321 &
pid=$(pidof dd)
while (( 1 )); do kill -USR1 $pid; sleep 2; done
Вы будете видеть, производит, такие как:
182682000000 bytes (183 GB) copied, 1555.74 seconds, 117 MB/s
182920+0 records in
182919+0 records out
117 МБ/с являются интересным фактором здесь, который показывает пропускную способность передачи фактической сети.
Объяснение:
Поскольку пакет начнет течь по сети, Вы сможете видеть статистику пропускной способности по SERVER2, который является довольно хорошей оценкой фактической максимальной возможной пропускной способности между этими 2 серверами.
Копирование UDP (для предотвращения TCP наверху).
Копирование к из памяти (/dev/zero) на SERVER1 к памяти (/dev/null) на SERVER2, таким образом предотвращение диска ввод-вывод от становления узким местом.
При записи циклов на командной строке в ударе я часто префикс опасные команды с командой 'эха'.
for item in items; do echo something-risky; done
Таким образом, я добираюсь для наблюдения 'чего-то - опасный' полностью прежде, чем передать для выполнения его. Помогает, когда Ваша опасная команда включает переменные расширения и шарики. И 'набор-x' очень полезен при записи сценариев удара.
'набор-x' позволяет отладить. См. http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html для получения информации об отладке удара.
Использовать &&
вместо ;
при выполнении нескольких команд сразу. Это останавливается, когда ошибка происходит и не выполняет другие команды.
Классический пример:
./configure && make && make install
dosomething && echo "success" || echo "teh fail"
– Paused until further notice.
26 September 2009 в 18:04
Эта подсказка сделает Ваш CLI более удобным (по крайней мере, это делает для меня):
создайте ~/.inputrc файл со следующим содержанием:
"\e[A": history-search-backward
"\e[B": history-search-forward
Удар перезагрузки (например, путем ввода "должностного лица колотят"). Когда Вы введете префикс команды и нажимаете стрелку вверх, Вы просмотрите команды, запускающиеся с Вашего префикса, например, при вводе ssh, это покажет прежние соединения с удаленными оболочками. Если Ваша подсказка будет пуста затем, то стрелка вверх просмотрит историю нормальный путь.
man readline
и запомните, это - ярлыки
– SaveTheRbtz
6 July 2010 в 21:35
Когда я хочу удостовериться, что я использую фактическую команду и не псевдоним, я использую ведущую обратную косую черту:
\rm -rf ~/tmp
Иногда полезно оставить программу, работающую даже после того, как Вы вышли из системы. Я видел некоторые решения, которые используют nohup или даже экранируют с этой целью. Самое простое, о котором я знаю:
$ your_command_here & disown
Можно также отсоединить под управлением программу:
$ your_command_here
# Press <Control-Z> to stop the program and bring it to background:
$ bg
$ disown
Изучите Vim.
Это - (возможно) лучший редактор, но несомненно лучший редактор, доступный на пустом сервере Linux.
Нажмите Ctrl-R и начните вводить команду (или любая часть его) - это ищет историю команд. Удар Ctrl-R снова перейдет к следующему соответствию, войти, выполняет в настоящее время отображаемую команду, и стрелка вправо (по крайней мере), позволит Вам отредактировать его сначала.
$ (reverse-i-search)`svn': svn status
Я использовал Linux для чего-то как 7 лет как моя основная ОС прежде, чем узнать об этом, но теперь, когда я знаю это, это довольно удобно.
stty -ixon
сначала для выключения управления потоком XON/XOFF, означающего (это также делает Ctrl-Q доступным, по умолчанию it' s отображенный для совпадения с заключенным в кавычки Ctrl-V - вставляют, но можно изменить его на что-то еще). См. man stty
и man readline
для большей информации. Эти stty
команда может быть добавлена к Вашему ~/.bashrc
– Paused until further notice.
26 September 2009 в 17:58
Командная строка является забавной вещью. Я думаю, что можно только изучить так много самостоятельно, и остальные Вы изучаете случайно наблюдение кого-то еще использующего командную строку.
Я использовал оболочку в течение многих лет, кропотливо вводящих в именах каталогов вручную. Однажды я наблюдал, что друг бездельничал в системе, и он продолжал поражать клавишу Tab. Я спросил, "почему Вы поражаете вкладку?". Ответ: это пытается завершить каталог или имя файла. Кто предположил бы - заполнение клавишей Tab! Введите немного файл или каталог, поразите вкладку, и это попытается закончить то, что Вы ввели (поведение зависит от который оболочка хотя).
Однажды, сказал, что друг наблюдал за мной на командной строке и наблюдал, что я ввел что-то как:
coryking@cory ~/trunk/mozi $ pushd /etc
/etc ~/trunk/mozi
coryking@cory /etc $ popd
~/trunk/mozi
coryking@cory ~/trunk/mozi $
Кто предположил бы!? Он никогда не знал о popd
/ pushd
. Угадайте, что мы ровны...
sudo !!
Повторно выполните предыдущую команду как корень.
[Текущая главная команда на сайте http://www.commandlinefu.com, сайт, тематический вроде этого вопроса.]
Я недавно обнаружил pv
команда (передают средство просмотра по каналу), который похож на кошку, но с деталями передачи.
Таким образом вместо
$ gzip -c access.log > access.log.gz
Можно использовать
$ pv access.log | gzip > access.log.gz
611MB 0:00:11 [58.3MB/s] [=> ] 15% ETA 0:00:59
Таким образом вместо того, чтобы понятия не иметь, когда Ваша операция закончится, теперь Вы будете знать!
В ударе я использую! $ много. Это повторяет последний аргумент последней команды:
ls /really/long/command/argument/that/you/dont/want/to/repeat.txt
vi !$
Это выполнит ls, затем если Вы захотите отредактировать его, Вы не должны перепечатывать его, просто использовать! $. Это действительно полезно для длинного тракта. Кроме того! * повторяет аргументы всей предыдущей команды. Я не использую это как очень, но это выглядит полезным.
Я известный они были упомянуты, но я использую энергию, экран и CD - много.
Я забыл noclobber:
set -o noclobber
От удара человека:
Если установлено, удар не перезаписывает существующий файл с>,> и, и <> операторы перенаправления. Это может быть переопределено при создании выходных файлов при помощи оператора перенаправления> | вместо>.
Alt-.
также.
– Paused until further notice.
26 September 2009 в 18:26
Старая школа, перемещая дерево каталогов от одного места до другого, сохраняя символьные ссылки, полномочия и весь этот хороший материал:
tar cBf - . | (cd /destination; tar xvBpf -)
или по сети
tar cBf - . | rsh foo.com "cd /destination; tar xvBpf -)
Новая школа:
rsync -urltv . /destination
или по сети
rsync -urltv -e ssh . foo.com:/destination
tar xvBpf - -C /destination
== (cd /destination; tar xvBpf -)
Немного меньше ввода, и легче использовать по ssh.
– ephemient
2 March 2009 в 23:08
Требование: у Вас есть каталог, содержащий большой список файлов, которые требуется удалить. комната-r перестанет работать!
пример
find /var/spool/mqueue/ | wc -l
191545
rm -f /var/spool/mqueue/*
-bash: /bin/rm: Argument list too long
Решение:
find /var/spool/mqueue/ -xdev -exec command rm -f '{}' +
Объяснение:
Править: Фиксация объяснения после комментария @ephemient.
находка предоставит аргументы комнате максимальными позволенными аргументами. Это будет позволять комнате удалять файлы в пакетах, который является самой быстрой техникой, о которой я знаю, не используя - удаляют операцию самой находки. Это эквивалентно
find /var/spool/mqueue -xdev -print0 | xargs -0 rm -f
который можно найти полезным если Ваш find
не поддерживает -exec ... +
.
\;
с +
: затем find
сделает то, что xargs
делает по умолчанию, который является пакетом аргументы как можно больше (не работая на основе предела списка аргументов). Или просто используйте -delete
вместо этого -exec rm
(GNU Findutils, необходимый для обоих)
– ephemient
2 March 2009 в 23:09
find ... -delete
, если Ваша находка так обеспечена.
– David Wolever
13 September 2009 в 19:20
Мне нравится использовать
cd -
переключаться на предыдущий каталог. Очень полезный!
Замена Shell выполняется с ^
:
/home/eugene $ ls foo.txt
foo.txt
/home/eugene $ ^ls^rm
rm foo.txt
/home/eugene $ ls foo.txt
ls: cannot access foo.txt: No such file or directory
grep является моим другом. Серьезно.
Список .rb
файлы, которые содержат текст class foo
:
grep -l "class foo" .rb
Список .rb
файлы, которые не содержат текст class foo
:
grep -L "class foo" *.rb
Список .rb
файлы, которые не содержат нечто или панель (можно использовать любой regexp с-e, но необходимо выйти из операторов):
grep -L -e "foo\|bar" *.rb
Для оболочек как bash
и ksh
, можно заставить командную строку ответить на команды навигации как текстовый редактор:
set -o emacs
или
set -o vi
позволит Вам искать свою историю и перемещаться командная строка в способе, которым Вы привыкли делать в текстовых файлах (например, в vi режиме, нажимая ESC
затем ввод /string
будет искать Ваши предыдущие команды "строку" - можно использовать n
и N
перемещаться между соответствиями)
Большая часть пропущенной олдскульной команды: find
Вчера я восстановил грубую ошибку полномочий:
for u in nr dias simonpj; do
sudo -u $u find . -type d -exec chmod g+s '{}' ';'
done
chmod 644 $(find . -type f)
, chmod 755 $(find . -type d)
– David Wolever
13 September 2009 в 19:33
-perm
опция к find
для определения местоположения файлов, которые имеют полномочия, устанавливает определенный путь.
– Paused until further notice.
26 September 2009 в 19:07
Как использовать подверсию в Linux без справки необычных графических интерфейсов, которые не могут быть доступными.
svn co <repo-url> . # Checks out project into current folder
svn update # Get latest changes from server
svn status # Shows what files have changed locally
svn add <path/filename> # Add some file to the repo
svn commit # Commit your changes to the repo
Это сдерживает много разработчиков от использования Linux, странно достаточно.
Я использую это две подсказки так часто, что я думал, что это будет хорошая идея совместно использовать:
!foo
Запустит последнюю команду в файле истории, начинающемся с "нечто" (я часто использую его при компиляции, !gcc
например.)
Другой является сочетанием клавиш (Ctrl+O вместо Возврата), это выполнит команду И отобразит следующую команду в файле истории. Например, когда я компилирую и тестирую файл, я всегда делаю 3 или 4 команды, делаю, CD к dir теста, запускаю тест, CD к dir make-файла. Используя Ctrl+O это делает эту задачу намного легче :)
Надеюсь эта справка!
SSH!
SSH является командой бога - я думаю, что это - самая ценная полная команда для изучения. Опции могут быть довольно пугающими, но кажется, что я постоянно учусь использовать новые параметры командной строки для SSH, что я никогда не думал, будет необходимо. Я, возможно, использовал их всех в этой точке.
Чем больше Вы используете его, тем больше Вы узнаете об этом. Можно использовать его, чтобы сделать некоторые УДИВИТЕЛЬНЫЕ вещи.
Примечание: ВСЕ эти вещи являются выполнимыми удаленно без установки на Вашем сервере кроме иметь ssh выполнение сервера.
Смонтируйте файловую систему по Интернету
ищите сеть SSHFS
Направьте команды.
Протоколом SVN+SSH является Подверсия от удаленного клиента к серверу без работы DEAMON его! Команда SVN запускает сервер через оболочку ssh и передает информацию назад и вперед через существующий канал. rsync программа делает то же самое, выполнения против сервера без rsync deamon путем запуска один самого через SSH. Легко записать Ваши собственные файлы удара, чтобы сделать подобные приемы.
Цепочка для прохода через брандмауэры
Я использую это все время для перехода через мой сервер Linux дома к моему Mac.
Порты передачи:
Кажется только умеренно полезным, пока Вы не понимаете, что можно возвратиться через домашний брандмауэр и настроить маршрутизатор дома от работы, как будто Вы делали так из Вашей домашней сети).
Передайте X запросов:
Это - другой удивительный. С или без X-сервера, работающего на Вашей удаленной системе, можно запустить программу X-окон, и окно появится на локальном экране. Просто используйте переключатель-X, это - все!
Так как у Вас не должно быть X-сервера, работающего на Вашем удаленном сервере, влияние на ЦП на Вашем сервере минимально, у Вас может быть КРОШЕЧНЫЙ сервер Linux, который подает огромные приложения к Вашей мощной игре ПК, запускающий Windows и cygwin/X.
Конечно, VI и EMACS работают по SSH, но когда я работаю дома, иногда я хочу больше. Я использую ssh-X для запуска копии Eclipse! Если Ваш сервер более мощен, чем Ваш ноутбук, у Вас есть GUI, находящийся тут же на Вашем ноутбуке, но компиляции сделаны на Вашем сервере, не волнуйтесь о системной нагрузке.
Выполненный в пакетных файлах
(значение выполняет локальный пакетный файл, который "действительно наполняет" в других системах):
Две вещи объединение, чтобы заставить этого охладиться. Каждый - Вы, может устранить подсказки пароля при помощи (более безопасных) ключей шифрования. Второе является Вами, может указать команду на CLI SSH. Я использовал это некоторыми интересными способами - Как то, когда компиляция перестала работать на удаленном сервере, я имел бы это SSH в мой компьютер и играл бы звуковой файл).
Помните, что можно перенаправить вывод от удаленной команды и использовать его в локальном пакетном файле, таким образом, Вы могли также локально выслеживать компиляцию, работающую на Вашем сервере.
Встроенный к Mac
И сервер и клиент встроены и в Mac и в Linux. В случае Mac и Ubuntu, включая сервер так же просто как нахождение правильного флажка.
На cygwin установки ПК или cygwin/X (cygwin/X позволит Вам направлять свои выходные данные X-окна от Вашей машины Linux до Вашего Windows PC - это устанавливает X-сервер),
Важные Подсказки/файл конфигурации
Никогда не используйте порт 22 на Вашем брандмауэре. Вы получите много попыток взлома, это просто не стоит того. Просто имейте свой брандмауэр вперед другой порт к Вашему серверу.
Существуют обширные параметры конфигурации, которые позволяют Вам значительно упростить свои команды ssh. Вот мой пример на работе:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Когда я ввожу "ssh домой" (ничто иное), это действует, как будто я ввел:
ssh -p 12345 bill@billshome.hopto.org
и затем вперед мой локальный порт 1025 к моей системе "Mac" дома. Причина этого состоит в том, что у меня есть другая запись в моем файле:
Host mac
hostname localhost
port=1025
так, чтобы, после того как я сделал "ssh домой" и все еще имею открытое окно, я мог ввести "ssh Mac", и компьютер на работе здесь на самом деле попытается соединиться со своим собственным портом 1025, который был передан "mac:22" другой командой, таким образом, это соединится с моим Mac дома через брандмауэр.
Редактирование - охлаждает сценарий!
Я вскопал старый сценарий, который я просто люблю - должен был возвратиться и отправить его для любого здесь, кому могло бы быть интересно. Сценарий называют "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Если у Вас есть этот сценарий в Вашем корневом каталоге и существует хост, с которым можно соединиться (через ssh), то можно ввести "./authMe имя хоста".
При необходимости это создаст общедоступную/частную пару ключей для Вас, затем это будет ssh к другой машине и копировать Ваш открытый ключ по (команда ssh предложит Вам пароль...),
После этого команда SSH не должна больше просить Ваш пароль при присоединении к той удаленной системе, это будет использовать общедоступную/частную пару ключей.
Если Ваш удаленный компьютер не всегда безопасен, необходимо рассмотреть установку "пароля" при запросе.
Можно также хотеть настроить ssh сервер на дальнем конце для не разрешения текстовых паролей (только ключи) для дополнительной безопасности.
ssh-copy-id
, и it' s столь же простой как ssh-copy-id user@someserver
– JamesHannah
20 October 2009 в 18:20