Автоматизация задач (cron, at)
Уроки курсаАвтоматизация задач (cron, at)
Автоматизация задач (cron, at)
Теперь, когда мы умеем управлять процессами здесь и сейчас, поговорим о запуске задач по расписанию. Bash-скрипты часто запускают автоматически в определённое время: ежедневно, еженедельно или один раз через час.
-
cron: это демон (фоновая служба) на UNIX-системах, который занимается запуском указанных задач по заданному расписанию. У каждого пользователя может быть свой список cron-задач (cron jobs). Редактировать его можно командой
crontab -e. Формат записей в crontab включает 5 первых полей, определяющих время запуска (минуты, часы, день месяца, месяц, день недели), и затем команду для выполнения. Например:0 6 * * * /home/user/backup.sh
Эта строка означает: каждый день в 6:00 утра выполнять скрипт /home/user/backup.sh. Символ
*означает "каждое возможное значение" в данном поле (в нашем примере: каждый день месяца, каждый месяц, любой день недели). Настроив cron, можно добиться полной автономности: задачи будут выполняться регулярно без вашего участия. Главное – убедиться, что скрипт работает как задумано, потому что ошибки в нём тоже будут происходить по расписанию! -
at: утилита для назначения однократного запуска задачи в определённое время. Формат использования:
at HH:MMили, например,at now + 30 minutes, после чего вы попадаете в режим ввода команд (печатаете, какие команды выполнить в это время, потом нажимаете Ctrl+D). Пример:$ at 23:00 at> echo "Полночь близко" > ~/late.txt at> <Ctrl+D> job 5 at Wed Mar 12 23:00:00 2025Это запланирует однократное выполнение команды в 23:00 сегодняшнего дня. С помощью
atqможно посмотреть очередь задач, аatrm– удалить запланированную задачу.atхорош, когда надо что-то сделать позже единожды (например, выключить компьютер через 2 часа:echo "shutdown -h now" | at now + 120 minutes), без возни с cron и отменой расписания вручную.
Используя cron и at, ты можешь поручить машине работу на будущее: будь то регулярная очистка папки загрузок каждую неделю, отправка отчёта каждое утро или одноразовое напоминание. В связке с умениями писать скрипты – это мощный инструмент ленивого (то есть эффективного!) администратора.
