Некоторые полезные инструменты для системных администраторов Linux
В этом руководстве представлен список полезных инструментов для системных администраторов Linux. В этот список не входят сложные программы (такие как Ansible, Puppet), требующие длительного обучения для настройки и использования в производстве. Большинство представленных здесь инструментов представляют собой просто сценарии, их очень легко установить и использовать в режиме реального времени. Если вы начинающий системный администратор Linux/Unix с ограниченным опытом, воспользуйтесь этими программами, чтобы выполнить работу легко и быстро. Эти инструменты могут быть не всегда полезны, но некоторые из них могут помочь.
О утилите Sysadmin
Sysadmin-util — это набор скриптов, которые помогают начинающим системным администраторам и пользователям выполнять различные задачи.
Sysadmin-util состоит из следующих скриптов:
- назад
- хронический
- cidr2ip
- крах
- обманщики
- пустой каталог
- расширить-ipv6
- флеш-брандмауэр
- Graphite_send
- IPADDR
- может быть
- mk-passwd-хеш
- множественный пинг
- mysql-ведомая проверка
- pyhttpd
- Рандпасс
- с
- растягивать
- ssh-типы аутентификации
- ssh-тест
- дата истечения срока действия SSL
- тайм-аут
- до ошибки
- до успеха
- когда вниз
- когда закончится
- какая оболочка
- с замком
Давайте продолжим и посмотрим, как установить и использовать некоторые из этих инструментов на примерах.
Установите sysadmin-util в Linux
Как я уже сказал, установка всех перечисленных здесь инструментов тривиальна. На самом деле установка не требуется. Просто клонируйте его репозиторий и сразу же начните использовать инструменты.
git clone https://github.com/skx/sysadmin-util.git
Приведенная выше команда клонирует все содержимое репозитория Sysadmin-util в текущем каталоге. Перейдите в этот каталог и запустите любые инструменты по вашему выбору. Это так просто!
Sysadmin-util Предоставляет следующие полезные инструменты для системных администраторов Linux.
Назад
Этот инструмент поможет вам узнать, как давно файл или каталог был изменен в удобочитаемом формате.
Убедитесь, что вы находитесь в каталоге sysadmin-util:
cd sysadmin-util
Чтобы узнать, когда был изменен файл или каталог, просто укажите его путь, как показано ниже.
./ago <path-to-file/directory>
Примеры:
$ ./ago /home/sk/sysadmin-util/
/home/sk/sysadmin-util/ 23 hours ago
$ ./ago /etc/
/etc/ 3 days ago
Как вы можете видеть, /home/sk/sysadmin-util изменен 23 часа назад, а каталог /etc/ изменен 3 дней назад.
Связанное чтение:
- Как отслеживать изменения файлов с помощью fswatch в Linux
- Найти и отсортировать файлы по доступу, дате и времени изменения в Linux
Хронический
Инструмент Chronic выполняет команду незаметно, если она не дает сбоя, т. е. он запускает команду и скрывает STDOUT и STDERR в случае успешного завершения. Это полезно для заданий cron. Вместо того, чтобы пытаться заставить команду молчать и иметь дело с письмами, содержащими случайный вывод в случае успеха и недостаточно подробный вывод в случае неудачи, вы можете просто всегда запускать его многословно и использовать Chronic, чтобы скрыть успешный вывод.
Пример :
При создании нового задания cron вместо использования следующей строки:
0 1 * * * backup >/dev/null 2>&1
вы можете использовать:
0 1 * * * chronic backup
Сидр2ип
Он преобразует блоки CIDR в составляющие их IP-адреса.
Пример :
$ ./cidr2ip 192.168.225.0/24
192.168.225.0
192.168.225.1
192.168.225.2
192.168.225.3
192.168.225.4
192.168.225.5
[...]
Крах
Инструмент свертывания удаляет из заданных файлов пустые строки и строки, содержащие пробелы.
Пример :
$ echo -e "Linux is not an OS.\n It is a Kernel. \n\nGnu/Linux is the OS.\n\n\n\n" | ./collapse
Linux is not an OS.
It is a Kernel.
Gnu/Linux is the OS.
Дубликаты
Инструмент dupes сообщит об идентичных файлах. Это помогает вам рекурсивно находить дубликаты файлов, которые содержат одно и то же содержимое, с помощью хэша SHA1.
Пример :
$ ./dupes
./.git/logs/HEAD
./.git/logs/refs/remotes/origin/HEAD
./.git/logs/refs/heads/master
Связанное чтение:
- Как найти и удалить повторяющиеся файлы в Linux
Пустой каталог
Этот инструмент проверит, пуст ли данный каталог или нет.
Пример :
В следующем примере показано, пуст ли данный каталог /home/sk/ostechnix.
$ if ./empty-dir /home/sk/ostechnix; then echo "It is empty" ; fi
It is empty
Если каталог не пуст, вы не увидите никаких результатов.
Развернуть-ipv6
Этот инструмент расширяет данные сокращенные/сжатые адреса IPv6 до их полной формы. Это может быть полезно при настройке записей DNS.
Пример :
$ ./expand-ipv6 fe80::a00:27ff:feff:d2e0
fe80:0000:0000:0a00:27ff:feff:d2e0
Мульти-пинг
Это многопротокольная оболочка ping. Он используется для проверки возможности подключения удаленного хоста, независимо от того, является ли он хостом IPv6 или IPv4. Это означает: если пульт использует IPv4, он вызывает команду «ping» для проверки соединения. Если удаленный хост использует IPv6, он вызовет команду «ping6».
Для утилиты multi-ping требуется модуль Perl Net::DNS. Если вы еще не установили его, обратитесь к следующему руководству.
- Как установить модули Perl в Linux
Теперь пропингуйте любой домен с помощью инструмента multi-ping, как показано ниже.
Пример :
$ ./multi-ping google.com
Host google.com - 216.239.36.117 - alive
Host google.com - 216.239.32.117 - alive
Host google.com - 216.239.38.117 - alive
Host google.com - 216.239.34.117 - alive
Host google.com - 2001:4860:4802:34:0:0:0:75 - alive
Связанное чтение:
- Как проверить связь с несколькими хостами одновременно в Linux
- Пропинговать несколько серверов и отобразить результат в текстовом интерфейсе, напоминающем верхнюю часть
- Предварительная типизация: сделайте вывод команды Ping более красивым и удобным для чтения
Pyhttpd
Это простой HTTP-сервер Python, который позволяет мгновенно настроить базовый файловый сервер.
Примеры:
$ ./pyhttpd 8080
Serving HTTP on 0.0.0.0 port 8080 ...
Если вы хотите, чтобы сервер был привязан только к локальному хосту, а не прослушивал все интерфейсы, запустите:
$ ./pyhttpd 127.0.0.1:8080
Serving HTTP on 127.0.0.1 port 8080 ...
Связанное чтение:
- Как настроить базовый файловый сервер с помощью simpleHTTPserver
Рандпасс
Как следует из названия, утилита randpass используется для генерации случайного пароля из командной строки.
Примеры:
$ ./randpass
Gb39KTBu
Чтобы сгенерировать пароль определенной длины, используйте флаг -n.
$ ./randpass -n 15
Xa7ZMA38tfOt7O2
Связанное чтение:
- Различные способы создания надежного пароля в Linux
С
Он показывает любое новое содержимое с момента последнего чтения файла. Это полезно для отслеживания файлов журналов.
Пример :
Удалите содержимое файла apt History.log:
./since /var/log/apt/history.log >/dev/null
Теперь установите или удалите любые приложения. Я удаляю редактор Vim:
sudo apt remove vim
Теперь проверьте содержимое файла History.log:
$ ./since /var/log/apt/history.log
Start-Date: 2020-01-28 11:52:59
Commandline: apt remove vim
Requested-By: sk (1000)
Remove: ubuntu-server:amd64 (1.417.3), vim:amd64 (2:8.0.1453-1ubuntu1.1)
End-Date: 2020-01-28 11:53:05
Инструмент «Since» отображает только новое содержимое файла, добавленное с момента его последнего выполнения. Если содержимое не добавлено, этот сценарий завершается автоматически, и вы не увидите никаких результатов.
Срок действия SSL
Он отображает дату истечения срока действия SSL-сертификата данного домена или хоста.
Примеры:
$ ./ssl-expiry-date google.com
google.com
Expires: Mar 31 15:47:12 2020 GMT
Days: 63
Вы также можете указать несколько доменов, разделенных пробелами:
$ ./ssl-expiry-date google.com ostechnix.com
google.com
Expires: Mar 31 15:47:12 2020 GMT
Days: 63
ostechnix.com
Expires: Oct 9 12:00:00 2020 GMT
Days: 254
Чтобы отобразить только количество дней, оставшихся в сертификате, используйте опцию -d:
$ ./ssl-expiry-date -d google.com ostechnix.com
google.com: 63
ostechnix.com: 254
Тайм-аут
Это позволяет пользователю запускать команду в течение определенного интервала и уничтожать ее.
Пример :
./timeout -t 10 top
Как видите, приведенная выше команда убивает команду «top» через 10 секунд.
Убейте команду через 10 минут и 10 секунд:
./timeout -t 10:10 top
Убейте команду через 10 часов, 10 минут и 10 секунд:
./timeout -t 10:10:10 top
Обратите внимание, что утилита timeout также доступна по умолчанию как часть пакета GNU coreutils. Поэтому, вероятно, не понадобится программа таймаута из пакета sysadmin-uti.
Связанное чтение:
- Как запустить команду в определенное время в Linux
- Как узнать время выполнения команды или процесса в Linux
- Как запускать команды Linux каждые X секунд и всегда
- Как добавить команды Linux в очередь и выполнять их одну за другой
Доступно еще несколько инструментов, таких как До ошибки & До успеха — повторять команды до тех пор, пока не произойдет сбой/успех, когда не будет & When-up — ждет, пока хост отключится/включится, mysql-slave-check — определяет, является ли текущий хост подчиненным или нет, what-shell< — найти оболочку, под которой мы работаем, и т. д.
Посетите страницу проекта на GitHub, чтобы узнать больше обо всех инструментах.
- Репозиторий GitHub для системного администратора
Другие полезные инструменты для системных администраторов Linux и новичков.
Помимо Sysadmin-util, существует множество других инструментов, которые могут быть полезны системным администраторам Linux/Unix, а также новичкам. Мы уже рассмотрели некоторые из них.
1. Cockpit — веб-инструмент для мониторинга системы.
Cockpit — это бесплатный инструмент администрирования серверов с открытым исходным кодом, который позволяет легко отслеживать и администрировать серверы Linux (одиночные или несколько) через веб-браузер. Он помогает системным администраторам выполнять простые задачи администрирования, такие как запуск контейнеров, администрирование хранилища, настройка сети, проверка журналов и т. д. Перейдите по следующей ссылке, чтобы установить и использовать Cockpit в Linux.
- Cockpit – мониторинг и администрирование серверов Linux через веб-браузер
2. Netutils-linux — инструменты устранения неполадок сети и настройки производительности для Linux
Netutils-linux — это набор полезных утилит, написанных на Python, которые можно использовать для упрощения устранения неполадок в сети Linux и настройки производительности. Чтобы узнать больше об этих инструментах, обратитесь к следующему руководству.
- Набор утилит для упрощения устранения неполадок сети Linux и настройки производительности
3. Moreutils — еще больше полезных утилит Unix.
Если вы системный администратор Linux, вы наверняка слышали о основных утилитах GNU. Он предустановлен во всех дистрибутивах Linux. А как насчет Moreutils? Moreutils — это набор полезных утилит Unix, которые по умолчанию не включены в Unix-подобные операционные системы. Эти утилиты часто помогают легко и быстро выполнять различные операции на вашем сервере Linux. Более подробную информацию можно найти по ссылке ниже.
- Moreutils – коллекция более полезных утилит для Unix
4. Bash-Snippets — полезные сценарии BASH для опытных пользователей командной строки
Bash-Snippets — это набор полезных сценариев BASH для активных пользователей командной строки, которые целый день проводят в Терминале. Хотите узнать погоду в том месте, где вы живете? Есть скрипт для быстрой проверки. Хотите знать, какова конкретная цена акций? Для этого тоже есть скрипт. Скучно? Вы можете посмотреть несколько видеороликов на YouTube. Все из командной строки!! Вам не нужно устанавливать какие-либо тяжелые, ресурсоемкие приложения с графическим интерфейсом. Нажмите на следующую ссылку, чтобы узнать, как использовать эти сценарии.
- Коллекция полезных сценариев BASH для опытных пользователей командной строки
5. Debian-goodies — инструменты командной строки для Debian и производных.
Debian-goodies — это еще одна коллекция полезных утилит для систем на базе DEB. Как и moreutils, Debian-goodies также предоставляет некоторые дополнительные полезные команды, которые недоступны по умолчанию. Используя эти инструменты, системные администраторы могут выполнять множество задач, таких как;
- какие программы занимают больше места на диске,
- какие службы необходимо перезапустить после обновления системы,
- поиск файла, соответствующего шаблону в пакете,
- список установленных пакетов на основе строки поиска и многое другое.
Перейдите по следующей ссылке, чтобы узнать больше об этих вкусностях.
- Debian-goodies — набор полезных утилит для пользователей Debian и Ubuntu
6. Несколько хороших альтернатив справочным страницам
Справочные страницы великолепны! В этом нет никаких сомнений. Однако многие страницы руководства являются исчерпывающими и не содержат полезных примеров. Возможно, вам придется просмотреть всю справочную страницу, чтобы найти подробную информацию об определенной опции или флаге. Это действительно трудоемкая задача, если вы хотите изучить практический пример конкретной команды Unix, используя справочные страницы. Уже нет! Я знаю несколько хороших альтернатив справочным страницам, которые сосредоточены в основном на примерах, пропуская все остальные подробные текстовые части. Прочтите ссылку ниже, чтобы узнать о них.
- Хорошие альтернативы man-страницам, которые должен знать каждый пользователь Linux
7. Cli-fyi — инструмент командной строки для получения информации об IP, электронной почте, домене и многом другом.
Cli.Fyi — это инструмент запроса командной строки для получения информации об IP-адресах, электронных письмах, доменах, криптовалютах, медиа/url, дате/времени UTC, стране, языке программирования и т. д. Вы можете получить все эти сведения. либо из командной строки, либо из браузера, как описано в следующей ссылке.
- Cli.Fyi — инструмент CLI для получения информации об IP-адресах, электронных письмах, доменах и многом другом
8. ExploreShell — веб-инструмент, объясняющий каждый аргумент команды Linux.
ОбъяснениеShell — отличный ресурс для тех, кто хочет быстро и легко изучить аргументы и параметры командной строки Linux, не обращаясь к справочным страницам. Он разбивает данную команду и объясняет, что делает каждая часть команды Linux. Все, что вам нужно сделать, это просто скопировать и вставить команду Linux на веб-сайт объясненияShell, и он мгновенно отобразит, что означает каждая часть команды Linux.
- ExplainShell: узнайте, что делает каждая часть команды Linux
9. Kmdr — получите объяснение команд CLI в своем терминале.
Kmdr похож на объяснениеShell, но имеет некоторые дополнительные функции. ОбъяснениеShell поможет вам изучить только команды Linux. Но что, если вы хотите изучить другие команды CLI, например Python? Вы не найдете объяснений команд Python в объяснениях Shell. Здесь на помощь приходит Kmdr. Kmdr предоставляет объяснение многих команд CLI, включая ansible, conda, docker, git, go , kubectl, mongo, mysql, npm, Ruby Gems , vagrant и сотни других программ, в том числе встроенных в bash. Звучит отлично? Большой! Перейдите по следующей ссылке, чтобы научиться использовать Kmdr.
- Kmdr – отображение пояснений к командам CLI в терминале
Как я уже сказал, все вышеупомянутые инструменты могут оказаться не всегда полезными. Попробуйте по одному и определите, поможет ли это каким-либо образом в вашей повседневной работе.
Эти инструменты предназначены не только для системных администраторов, но и для всех, кто хочет улучшить свои навыки работы с командной строкой Linux в целом. Я буду продолжать добавлять в этот список больше полезных инструментов и приложений. Если вы считаете, что в этот список следует добавить какой-либо другой инструмент, дайте мне знать об этом в разделе комментариев ниже. Я проверю и обновлю список соответствующим образом.