В сфере системного администрирования Linux есть множество задач, которые мы выполняем регулярно. Одна из таких задач — работа с crontab на удаленных серверах. Казалось бы, процесс прост: подключиться к серверу, открыть crontab, внести изменения. Но что, если я скажу вам, что этот процесс можно значительно упростить и ускорить? Обычно этот процесс требует нескольких шагов, но я нашел способ сделать его гораздо проще и быстрее. В статье покажу, как превратить рутинную операцию в элегантное решение.
Еще по теме: Лучшие инструменты сисадмина
Работа с crontab на удаленных серверах
Стандартный подход, который многие используют (хотя это и не самый лучший способ), заключается в том, чтобы сначала войти на удаленный сервер под root, а затем выполнить команду crontab -e. Но что, если я скажу вам, что есть способ сделать это одной командой?
Вот эта однострочная команда творит чудеса:
1 |
ssh -t root@x.x.x.x 'crontab -e' |
Здесь параметр -t выделяет терминал, необходимый для работы с vim, который используется для редактирования crontab. Но можно пойти еще дальше и создать функцию, которая сделает процесс еще удобнее.
Откройте файл .bashrc или .zshrc (в зависимости от используемой оболочки) и добавьте в конец следующую функцию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
rcron() { if [ $# -eq 0 ] || [ $# -gt 2 ]; then echo "Usage: rcront [username] " return 1 fi local username="root" local ip if [ $# -eq 1 ]; then ip="$1" else username="$1" ip="$2" fi ssh -t "${username}@${ip}" 'crontab -e' } |
После этого не забудьте перезагрузить файл конфигурации:
Для bash:
1 |
source ~/.bashrc |
Для zsh (обычно на Mac):
1 |
source ~/.zshrc |
Теперь использовать эту функцию очень просто. Например, чтобы отредактировать crontab пользователя root на сервере server01, достаточно ввести:
1 |
rcron server01 |
А если нужно отредактировать crontab пользователя user1 на том же сервере:
1 |
rcron user1 server01 |
Использование таких однострочных команд и функций может значительно упростить вашу ежедневную работу. Освоив их, вы не только сэкономите время, но и произведете впечатление на коллег-линуксоидов. А уж как удивятся администраторы Windows, когда увидят, насколько легче управлять серверами Linux!