Назад | Перейти на главную страницу

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

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

Экран GNU - незаменим, когда вы управляете большим количеством систем и не хотите, чтобы дюжина окон терминала была открыта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • sed
  • awk

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

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

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

Признайтесь - рано или поздно вы столкнетесь и с сетью. mtr, tcpdump и цирк действительно полезны, чтобы увидеть, что происходит.

Netcat.

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

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

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

Кукольный - система автоматизации задач системного администрирования

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

  • трепать
  • Perl

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

  • Откройте SSH (клиент Linux)
  • Putty (клиент Windows)

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

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

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

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

Для сценариев:

ClusterSSH

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

ssh, Vim, htop, su, Python, ls, cd, screen, du, tar :)

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

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

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

vmstat 1

Дает отличный обзор поведения системы.

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

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

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

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

iotop - это программа типа top для мониторинга доступа к дискам ввода-вывода.

zsh как оболочка

Это особенно эффективно с Расширения / настройка grml.org.

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

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

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

Некоторые из них, о которых раньше не упоминалось:

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

sudo.

Если серьезно, tail -f является полезным.

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

man - читать справочные страницы.

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

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

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

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

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

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

Некоторые дополнительные ответы можно найти в этот похожий вопрос

  • vi
  • найти
  • ssh
  • AWK
  • sed
  • netcat
  • деготь
  • пс

  • Я люблю AWK так же, как "for" в командной строке.

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