Запуск скрипта в определённое время (один раз) с помощью at
1. Синтаксис команды выглядит вот так
at [-V] [-q queue] [-f file] [-mMlv] timespec...
at [-V] [-q queue] [-f file] [-mMkv] [-t time]
at -c job [job...]
atq [-V] [-q queue]
at [-rd] job [job...]
atrm [-V] job [job...]
batch
at -b
2. Приведу основные функции
-V выводит номер версии на экран
-m отправить пользователю (запустившему задание) письмо, когда задание выполнено.
-M никогда не отправлять почту пользователю.
-f чтение задания из файла.
-t время в которое будет выполнено задание. Формат ГОДММДДччмм.сс (201712012200.00 - задание будет выполнено 01 декабря в 22:00:00 2017 года)
-l является псевдонимом для команды atq (просмотр списка созданных заданий)
-r является псевдонимом для команды atrm (удаление задания)
-d является псевдонимом для команды atrm (удаление задания)
3. Пример
3.1. Допустим нам нужно запустить скрипт, который будет изменять в таблице mysql ячейку.
3.2. Создаем два файла fix.sql и task-1.sh со следующим содержимым
fix.sql
UPDATE `alias` SET `goto` = 'address@domain.com, address2@domain.com' WHERE `alias`.`address` = 'address@domain.com';
task-1.sh
mysql -D'имя базы' < fix.sql ( если нужна авторизация в mysql добавьте параметры -u -p)
3.3. Теперь добавим наш скрипт на выполнение следующей командой
at -f task-1.sh -t 201712012200.00
4. Проверить список можно командой
atq
или
at -l
0 комментариев