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

Sysadmin-util: полезные инструменты для системных администраторов Linux

Sysadmin-util – это набор скриптов, который помогает  администраторам и пользователям выполнять различные задачи.

Sysadmin-util содержит следующие утилиты:

  1. ago
  2. chronic
  3. cidr2ip
  4. collapse
  5. dupes
  6. empty-dir
  7. expand-ipv6
  8. flush-firewall
  9. graphite_send
  10. ipaddr
  11. maybe
  12. mk-passwd-hash
  13. multi-ping
  14. mysql-slave-check
  15. pyhttpd
  16. randpass
  17. since
  18. splay
  19. ssh-auth-types
  20. ssh-test
  21. ssl-expiry-date
  22. timeout
  23. until-error
  24. until-success
  25. when-down
  26. when-up
  27. which-shell
  28. with-lock

Давайте посмотрим, как установить и использовать некоторые из этих инструментов с примерами.

Установка и использование

Как я уже сказал, установка всех инструментов, перечисленных здесь, тривиальна. Просто клонируйте репозиторий и начните использовать.

git clone https://github.com/skx/sysadmin-util.git

Приведенная выше команда копирует все содержимое репозитория Sysadmin-uti в свой каталог. Перейдите в него и запустите любую утилиту по вашему выбору. Рассмотрим вкратце основные из них.

ago

Данный инструмент выводит в удобочитаемом формате информацию, как давно файл или каталог были изменены.

Перейдем в каталог sysadmin-util:

$ cd sysadmin-util

Чтобы узнать, когда был изменен файл или каталог, просто укажите путь к нему, как показано ниже.

$ ./ago <path-to-file/directory

Примеры:

$ ./ago /home/ubuntu/sysadmin-util/
/home/ubuntu/sysadmin-util/ 5 hours ago
$ ./ago /etc/
/etc/ 2 days ago

Chronic

Cronic –  инструмент запускает команду тихо, пока не завершится неудачей, т.е. он запускает команду и скрывает STDOUT и STDERR, если она успешно завершается. Это полезно для заданий cron.

Пример:

При создании нового задания cron вместо использования следующей строки;

0 1 * * * backup >/dev/null 2>&1

мы можем использовать:

0 1 * * * chronic backup

cidr2ip

Он преобразует блоки CIDR в составляющие их IP-адреса.

Пример:

$ ./cidr2ip 192.168.45.0/24
192.168.45.0
192.168.45.1
192.168.45.2
192.168.45.3
192.168.45.4
[...]

collapse

Инструмент collapse удаляет пустые строки и строки, содержащие пробелы, из заданных файлов.

Пример:

$ 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

Инструмент dupes сообщит о идентичных файлах. Это поможет вам найти дубликаты файлов, которые содержат то же самое содержимое. Утилита сравнивает у файлов хэш SHA1 .

Пример:

$ ./dupes 

./.git/logs/HEAD
./.git/logs/refs/remotes/origin/HEAD
./.git/logs/refs/heads/master

empty-dir

Этот инструмент проверит, является ли данный каталог пустым или нет.

Пример:

В следующем примере показано, является ли данный каталог

/home/ubuntu/test1 пустым или нет.

$ if ./empty-dir /home/ubuntu/test1; then echo "It is empty" ; fi
It is empty

Если каталог не пустой, вы не увидите никаких выходных данных.

expand-ipv6

Этот инструмент расширяет указанные сокращенные / сжатые адреса IPv6 до их полной формы. Это может быть полезно при настройке DNS.

Пример:

$ ./expand-ipv6 fe80::a00:27ff:feff:d2e0<
fe80:0000:0000:0a00:27ff:feff:d2e0/code>

multi-ping

Это многопротокольная оболочка ping. Он используется для проверки подключения удаленного хоста независимо от того, является ли он хостом IPv6 или IPv4. Значение: если пульт использует IPv4, он вызывает команду ping для проверки возможности подключения. Если удаленный хост использует IPv6, он вызовет команду «ping6».

multi-ping требует Perl модуля Net :: DNS.

Пример:

$ ./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

pyhttpd

Это простой  HTTP-сервер на Python, который позволяет мгновенно настроить базовый web-сервер.

Примеры:

 $ ./pyhttpd 8080
Serving HTTP on 0.0.0.0 port 8080 ...

randpass

Утилита randpass используется для генерации случайного пароля из командной строки.

Примеры:

$ ./randpass
vekEnHAN

Чтобы сгенерировать пароль определенной длины, используйте флаг -n .

$ ./randpass -n 15
rcDYT7lanaEq9T6

since

Он показывает любой новый контент с момента последнего чтения файла. Это полезно для отслеживания файлов журнала.

Пример:

Удалите содержимое файла 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: ubuntu (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-expiry-date

Отображает дату истечения срока действия сертификата SSL данного домена или хоста.

$ ./ssl-expiry-date google.com
google.com
Expires: Mar 31 15:47:12 2020 GMT
Days: 63

Вы также можете указать несколько доменов с пробелами:

$ ./ssl-expiry-date google.com admin812.ru
google.com
Expires: Mar 31 15:47:12 2020 GMT
Days: 63
admin812.ru
Expires: Apr 3 17:20:23 2020 GMT
Days: 54

Чтобы отобразить только количество дней, оставшихся на сертификате, используйте параметр -d :

$ ./ssl-expiry-date -d google.com admin812.ru
google.com: 63
admin812.ru: 54

timeout

Это позволяет пользователю выполнить команду для определенного интервала и уничтожить ее.

Пример:

$ ./timeout -t 10:20 top

Данная команда  запускает процесс top и  убивает его через 10  минут 20 секунд.

Доступно еще несколько инструментов, таких как  until-error & until-success –  повторять команды до тех пор, пока не произойдет сбой или успешно выполнится, when-down & when-up – ждет, пока хост не упадет/ поднимется, mysql-slave-check – выяснить, является текущий хост – ведомым или нет, which-shell – определить оболочку, под которой мы работаем, и т. д.

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

Набор утилит Sysadmin-util

Одна мысль о “Набор утилит Sysadmin-util

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *