Большинство инструментов, представленных здесь, являются просто сценариями и очень просты в установке и использовании.
Sysadmin-util: полезные инструменты для системных администраторов Linux
Sysadmin-util – это набор скриптов, который помогает администраторам и пользователям выполнять различные задачи.
Sysadmin-util содержит следующие утилиты:
- ago
- chronic
- cidr2ip
- collapse
- dupes
- empty-dir
- expand-ipv6
- flush-firewall
- graphite_send
- ipaddr
- maybe
- mk-passwd-hash
- multi-ping
- mysql-slave-check
- pyhttpd
- randpass
- since
- splay
- ssh-auth-types
- ssh-test
- ssl-expiry-date
- timeout
- until-error
- until-success
- when-down
- when-up
- which-shell
- 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, чтобы узнать больше обо всех инструментах.
спасибо, пригодилось.