Инструменты, которые администратор Unix не может жить без [закрыто]


33

После администрирования Unix или Unix-подобных серверов, какими инструментами (желательно из командной строки) вы не можете жить без них?

Ответы:



34

Некоторые я знаю, что я не могу жить без ...

  • tee - позволяет одновременно записывать в STDOUT (стандартный вывод) и файл. Отлично подходит для просмотра информации и записи ее на потом.

  • top - диспетчер задач UNIX, дает отличный обзор системы.

  • tail -f - позволяет просматривать добавленные данные по мере роста файла, отлично подходит для мониторинга файлов журналов на сервере.

  • grep - Global Regular Expression Print, отлично подходит для поиска в системе данных в файлах.

  • df - сообщает об использовании диском текущих файловых систем.

  • du - сообщает об использовании диска определенного файла / каталога.

  • меньше - нужно для просмотра страниц руководства! также полезно для просмотра вывода команд в легко доступной форме.

  • vim / Emacs / nano / pico / ed - какой бы текстовый редактор вы ни выбрали, понятно, зачем он нужен.


Для тех, кто не знает, «меньше» - это обновленная версия «больше». больше ограничивало, потому что вы могли перемещаться только вперед по файлу, тогда как меньше можно прокручивать и назад. Ах, юмор ... :-)
Iain Holder

8
Другая полезная, но малоизвестная особенность less - то, что вы всегда можете использовать команду 'v', чтобы начать редактирование файла, который вы просматриваете в данный момент. Мнемоника это «V» для «VI».
Dr-Jan

И если вам не нравится moreили less, вы всегда можете попробовать most.
Drybjed

Мой любимый PAGER сейчас на самом деле w3m. Он имеет все функции less и может работать как веб-браузер в текстовом режиме :-) Я также использовал функцию bash для использования vim в режиме только для чтения (таким образом, я получаю, например, разноцветные различия). Функция bash используется только для того, чтобы решить, следует ли указывать '-' (для чтения стандартного ввода) или нет (в случае, если мы выполняем подкачку файла). Работает как шарм, за исключением man-страниц, где nroff делает перебор ...
njsf

1
htopэто "лучшая" версия top.
Александр Берд

26

Lsof , чтобы определить , какие процессы используют файл или каталог (полезно при попытке выяснить , что мешает устройство от того umount'd)

netstat, чтобы определить, какие процессы используют сетевые подключения (особенно полезно при попытке выяснить, какой демон связан с определенным портом)


1
Если у вас есть lsof, вам не нужен netstat. Просто используйте Lsof -i
Vartec

lsof -n мой любимый призыв Я передаю это в grep, чтобы сократить его
Мэтт Симмонс

19

Изучите все основные инструменты, но изучите Perl.

Perl идеально подходит для манипулирования текстом, и поскольку операторы un * x работают с текстовыми файлами, каналами, вводом и выводом, Perl отлично подходит.

Дополнительным бонусом является то, что Perl является кроссплатформенным, и если вам нужно поработать над окном Windows, у вас есть легко устанавливаемый (просто перетащите каталог Perl на сервер) язык, который вы уже знаете.

И на этом ходу мыслей, возьми и Сигвина. Если вы не * x администратор и вам нужно работать на Windows-окне (даже на вашем рабочем столе) с ls, rm, grep, sed, tail и т. Д., Вы сэкономите много времени при переключении ОС.


18
  • СЭД
  • AWK

Забытые деды современных систем сценариев. Я знаю, что Perl получает большую часть любви (вместе со сценариями Bash, Python, Ruby и [вставьте ваш любимый язык сценариев здесь]), и не поймите меня неправильно, я люблю Perl. Я использую это почти ежедневно.

Но sed и awk не следует забывать, игнорировать или игнорировать. Для многих случаев sed и awk - лучшие инструменты для работы. Быстрые примеры: фильтрация в командной строке с помощью sed, а также быстрая и грязная обработка журналов с помощью awk. И то, и другое можно сделать в Perl, но это потребует больше работы и времени на разработку.


13

rsync, особенно в сотрудничестве с SSH. Это позволяет просто и эффективно копировать файлы с хоста на хост. Как мы справились без ssh и rsync? :-)


12

Netcat.

  • Проверьте, прослушивают ли службы TCP.
  • Выполняйте транзакции по протоколам открытого текста, таким как SMTP.
  • Быстрая небезопасная передача данных между машинами.
  • Эмуляция клиента Telnet

В сети швейцарский армейский нож, как говорится.


Я недавно начал использовать socat в качестве замены netcat, и я был поражен тем количеством опций, которые он вам дает. Определенно стоит проверить, несмотря на страшное количество переключателей и странный синтаксис.
Марцин

12

Признайте это - рано или поздно вы будете иметь дело и с сетью. mtr , tcpdump и tshark действительно полезны для наблюдения за происходящим.


9

Для быстрых сценариев, автоматизации и т. Д .:

  • удар
  • Perl

Чтобы подключиться к вашему * NIX серверу:

  • Откройте SSH (клиент Linux)
  • Замазка (клиент Windows)

+1 за ... ну все это правда, но Perl особенно. * nix, Windows или Mac, я не представляю, что бы я делал без него.
Джон Гарденье

9

Я использую большинство из перечисленных инструментов, но здесь еще никто не коснулся:

Puppet - система для автоматизации задач администрирования



6

Большинство стандартных включены в другие ответы, так что я пойду нестандартные:

  • htop - отлично подходит для управления процессами;
  • pinfo - lynx-подобный браузер для информационных и справочных страниц.

6

Несколько удобных инструментов, которые я еще не видел, упоминались:

  • dstat --nocolor (обзор использования процессора, диска, сети)
  • iftop (хороший динамический обзор сетевого трафика)
  • ccze (красиво цветовые файлы)
  • Туннели ssh (могут быть полезны время от времени; см. руководство; -R)
  • ожидать (автоматизировать интерактивные, диалоговые интерфейсы, приятно, если вы в затруднении)

+1 "tail -f <file> | ccze" = удивительный способ чтения лог-файлов.
Лин


+1 за дстат. Лучшая замена для vmstat, iostat и т. Д. Там.
Кристофер Кашелл

5

ClusterSSH

ClusterSSH управляет количеством окон xterm через одно окно графической консоли, что позволяет интерактивно запускать команды на нескольких серверах через соединение ssh.


... и поскольку ClusterSSH написан на Perl, возможно, вам следует изучить Perl.
Брэд Гилберт

В чем разница между ClusterSSH и экраном GNU? или это разные реализации одной концепции?
Александр Берд


4

pv: отображает ход выполнения длительных операций, которые можно перенаправить. http://www.ivarch.com/programs/pv.shtml

Полезно тогда, когда вы захотите отследить что-то, что уйдет на века, например, копирование / сжатие сырых блочных устройств по сети (именно так я делаю резервные копии паранойи моего 8-гигабайтного нетбука, прежде чем возиться с чем-то серьезным, например с настройкой файловой системы).

Также: я буду вторым голосом за ssh, rsync, screen, htop и netcat, как упомянуто людьми выше - все это важнее, чем pv, но pv еще не упоминался. На самом деле pv часто является полезным дополнением при передаче данных в или из netcat.


pvможет быть удобным инструментом, но остерегайтесь злоупотреблять им. Передача данных через него абсолютно влияет на производительность (все данные должны проходить через другую программу). На моей последней работе мы много занимались обработкой журналов. Один из парней решил начать использовать pv во всех сценариях обработки журналов, пока мы не обнаружили, что это добавило около 15% времени обработки для них. Теперь он используется только для заданий, которые занимают менее нескольких минут или имеют ограничения по существующим ресурсам (например, через медленное сетевое соединение).
Кристофер Кашелл

Хороший вопрос, Кристофер, хотя я никогда не видел, чтобы это приводило к 15% -ному изменению производительности (опять же, большая часть того, что я использую, pvсвязана с дисковым или сетевым вводом-выводом, а не с процессором / памятью). Тот же аргумент является ключевым против чрезмерного использования catтоже (я иногда использую cat, когда на самом деле не нужен просто для того, чтобы вещи читались хорошо слева направо, но дополнительное копирование данных в памяти через канал и переключение контекста может иметь ощутимое влияние на производительность).
Дэвид Спиллетт

Да, я делаю то же самое. Большая часть моего чрезмерного catиспользования исходит от начала с cat fooпоследующим нажатием стрелки «вверх», а затем добавлением | [command]к моей предыдущей строке. Я знаю, что я получаю (небольшой) удар по производительности, удерживая кота там, но для того, чтобы оставить его, требуется меньше усилий, чем для переписывания / перепечатывания команды [command] < foo. Не заботится о (большей части) специальной командной строке, но не идеально подходит для сценариев ( pvя думаю, так же, как я себя чувствую ).
Кристофер Кашелл



3

Некоторые, которые не были упомянуты ранее:

  • голова / хвост
  • разница
  • pstree
  • деготь
  • GZIP / BZIP
  • смотреть

+1 pstree довольно мило.
Лин

3

смоляная труба!

Передача выходных данных tar другой утилите, tar, работающему на том же компьютере, или tar, работающему по SSH, - это мой любимый старый Unix-способ перемещения файлов из одного места в другое.

Это также дает вам возможность в стиле Windows копировать одну папку в другую и получать все файлы в исходном и целевом каталогах.




3

Большинство этих инструментов сделаны намного более мощными, используя «программируемое завершение» Bash - так что вы можете завершить такие элементы, как параметры командной строки, или произнести имя пакета с помощью «apt-get install». Это также ограничит то, что вы заполняете вкладками для соответствующих файлов - например, «распаковать» будет завершать только поддерживаемые архивные файлы.

Это действительно дураки - если вы никогда не пробовали, вам, вероятно, просто нужно возиться со своим .bashrc:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Конечно, это верно для Ubuntu и Debian. Возможно, вам понадобится получить пакет в некоторых дистрибутивах Linux.



2

Несколько вещей упущены из виду, я хотел упомянуть.

  • vim -d разделение экрана с разделением экрана, что позволяет очень легко увидеть различия в файле
  • pdsh позволяет вам легко запускать команды на любом количестве систем - последовательном или параллельном (я администратор кластера. Я не могу работать без него).
  • Nmon походит на вершину на трещине. Это дает вам отличное представление о том, что происходит в системе на одном экране. Вы можете видеть дисковый ввод-вывод, использование ЦП сетевого ввода-вывода и использование памяти в режиме реального времени. По крайней мере, очень забавно играть при профилировании системы.

О, и я забыл упомянуть, когда пишу сценарии, я считаю, что вы всегда должны использовать Korn. Я ненавижу Korn (не группу. Я люблю группу :-P), но это буквально везде. Вы можете взять скрипт и переместить его между Solaris, AIX и Linux, и вам не придется беспокоиться о том, хватит ли администратору установки Bash.


2

Один инструмент, иногда очень удобный - это nohup. Я использую его для запуска сценариев, которые длятся долго с использованием удаленных клиентов SSH.


2

man - читать страницы руководства.

elinks - проверить Google, потому что я уверен, что, черт возьми, не могу вспомнить все.

И внимание к деталям и упорство, потому что без них я просто трачу время.


+1 за внимание к деталям и упорство
cop1152

2

Экран является обязательным, особенно с хорошим файлом .screenrc. Я настроил его на визуальное отображение, в каком окне я нахожусь, и могу перемещаться между ними с помощью Ctrl + Arrow. Для одного сеанса SSH и нескольких оболочек это спасатель.



2

Я люблю AWK, а также «за» в командной строке.

Особенно, чтобы составить список команд, которые я хочу выполнить, а затем выполнить их все сразу.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.