Использование at для отложенного выполнения команд
Если вы когда-либо задумывались о том, как отложить выполнение команды в Linux, и не хотите морочить себе голову с cron, то знакомьтесь — at. Этот инструмент стал моим верным спутником в мире запланированных задач. В отличие от cron, который ждет для вас новую минуту, чтобы выполнить команду, at позволяет запланировать запуск команды на конкретное время. Это как если бы вы пригласили своих друзей на вечеринку, но не хотите, чтобы они все пришли одновременно — просто дайте каждому разное время!
Начнем с основ. Чтобы использовать at, сначала вам нужно убедиться, что он установлен в вашей системе. Просто выполните команду:
which at
Если вы видите путь, это значит, что at у вас уже завелся. Если нет — займитесь установкой:
sudo apt install at # Для Ubuntu/Debian
sudo yum install at # Для CentOS/RHEL
Теперь, когда at установлен, давайте попробуем запланировать что-нибудь. Допустим, мы хотим запустить скрипт backup.sh в 15:30. Просто введите:
echo "/path/to/backup.sh" | at 15:30
Это как говорить своему компьютеру: «Эй, не забудь сделать резервную копию, но только в 15:30, ладно?» Убедитесь, что ваш скрипт действительно рабочий, иначе в 15:30 ваш компьютер просто посмотрит на вас и скажет: «Ну что, а ты что хотел?»
Вы также можете указать время выполнения в формате «через X минут». Например, если вы хотите запустить команду в 10 минут:
echo "echo 'Hello, World!'" | at now + 10 minutes
Как вы видите, это как если бы вы задали своему другу вопрос «На кой черт мне это нужно?», и он сказал: «Ты просто подожди 10 минут!»
Для проверки запланированных задач используйте команду:
atq
Это даст вам список всех запланированных задач. Если вы решите, что ваша «вечеринка» отменяется, и хотите отменить запланированное задание, используйте:
atrm <номер задания>
Не забывайте, что at работает на уровнях пользователя, так что если вы хотите, чтобы ваша команда запускалась от имени другого пользователя, просто войдите как этот пользователь или используйте sudo:
echo "/path/to/script.sh" | sudo at 02:00
Родной мур, в этом смысле at намного проще, чем cron. Конечно, у cron есть свои плюсы, например, когда вы хотите, чтобы задача запускалась каждую минуту, но давайте будем честными, иногда лучше использовать инструмент, который не требует от вас изучения языков программирования типа «кронического»!
Так что следующий раз, когда вам понадобится отложить выполнение команды, помните, at всегда к вашим услугам. Это не только эффективно, но и существенно сэкономит ваши нервы и время. Теперь, если у нас будет возможность задержать выполнение задач, может, скоро появится возможность задержать и выполнение понедельников? Мы работаем над этим!