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
ago
Этот инструмент поможет вам узнать, как давно файл или каталог были изменены в удобочитаемом формате.
Убедитесь, что вы находитесь в каталоге sysadmin-util.
$ cd sysadmin-util
Чтобы узнать, когда был изменен файл или каталог, просто укажите его путь, как показано ниже.
$ ./ago <path-to-file/directory>
Пример:
$ ./ago /home/itsecforu/sysadmin-util/ /home/itsecforu/sysadmin-util/ 23 hours ago
$ ./ago /etc/ /etc/ 3 days ago
Chronic
Пример:
При создании нового задания cron вы можете использовать:
0 1 * * * chronic backup
0 1 * * * backup >/dev/null 2>&1
cidr2ip
Он преобразует блоки 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 [...]
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.
Как найти повторяющиеся файлы в Linux и удалить их
Пример:
$ ./dupes ./.git/logs/HEAD ./.git/logs/refs/remotes/origin/HEAD ./.git/logs/refs/heads/master
см. также:
⌛ Как найти самые популярные команды в Linux
empty-dir
Этот инструмент проверит, является ли данный каталог пустым или нет.
Пример:
Чтобы проверить эту утилиту, создайте пустой каталог и протестируйте.
В следующем примере показано, является ли данный каталог /home/itsecforu пустым:
$ if ./empty-dir /home/itsecforu; then echo "ОН ПУСТОЙ" ; fi Он пустой
expand-ipv6
Этот инструмент расширяет указанные сокращенные / сжатые адреса IPv6 до их полной формы.
Это может быть полезно при настройке DNS.
Пример:
$ ./expand-ipv6 fe80::a00:27ff:feff:d2e0 fe80:0000:0000:0a00:27ff:feff:d2e0
multi-ping
Это многопротокольная оболочка ping.
Она используется для проверки подключения удаленного хоста независимо от того, является ли он хостом IPv6 или IPv4.
Значение: если пульт использует IPv4, он вызывает команду «ping» для проверки возможности подключения.
Если удаленный хост использует IPv6, он вызовет команду «ping6».
Пример:
$ ./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, который позволяет мгновенно настроить базовый файловый сервер.
Примеры:
$ ./pyhttpd 8080 Serving HTTP on 0.0.0.0 port 8080 ...
Если вы хотите разрешить серверу быть привязанным только к localhost, а не прослушивать все интерфейсы, выполните:
$ ./pyhttpd 127.0.0.1:8080 Serving HTTP on 127.0.0.1 port 8080 ...
randpass
Как видно из названия, утилита randpass используется для генерации случайного пароля из командной строки.
Примеры:
$ ./randpass Gb39KTBu
$ ./randpass -n 15 Xa7ZMA38tfOt7O2
🧙♀️ Как установить сложность пароля в Linux👨
since
Он показывает любой новый контент с момента последнего чтения файла.
Это полезно для отслеживания логов.
Пример:
Удалите содержимое файла apt history.log:
$ ./since /var/log/apt/history.log >/dev/null
$ 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-expiry-date
$ ./ssl-expiry-date google.com google.com Expires: Mar 31 15:47:12 2020 GMT Days: 63
$ ./ssl-expiry-date google.com itsecforu.ru google.com Expires: Mar 31 15:47:12 2020 GMT Days: 63 itsecforu.ru Expires: Oct 9 12:00:00 2020 GMT Days: 254
$ ./ssl-expiry-date -d google.com itsecforu.ru google.com: 63 itsecforu.ru: 254
timeout
Он позволяет пользователю выполнить команду для определенного интервала и уничтожить ее.
Пример:
$ ./timeout -t 10 top
Приведенная выше команда убьет команду «top» через 10 секунд.
Убить команду через 10 минут и 10 секунд:
$ ./timeout -t 10:10 top
$ ./timeout -t 10:10:10 top
Попробуйте все инструменты и выберите, какой из них будет вам полезен.
Эти инструменты предназначены не только для системных администраторов, но и для тех, кто хочет улучшить свои навыки командной строки Linux в целом.