Вот ничего нового не придумаю просто для себя запишу и все. Никогда не использовал в винде планировщик задач, а вот в никсах он мне почему то стал полезен, прям не знаю почему)
Утилита cron работает в фоновом режиме и постоянно проверяет файл /etc/crontab. Утилита cron проверяет также каталог /var/cron/tabs в поиске новых файлов crontab. Файлы crontab содержат информацию об определенных функциях, которые cron выполняет в указанное время.
Утилита cron использует два разных типа конфигурационных файлов, системный и пользовательский. Все различие между этими двумя форматами заключается в шестом поле. В системном файле шестое поля это имя пользователя, с правами которого будет запущена команда. Это позволяет запускать команды из системного crontab от любого пользователя. В пользовательском файле шестое поле указывает запускаемую команду, и все команды запускаются от пользователя, который создал crontab; это важно для безопасности.
# комментарий решеткой # определяем переменные окружения # Если переменная для оболочки не задана, cron использует оболочку по умолчанию, sh. # Если не задана переменная PATH, значение по умолчанию не устанавливается и пути # к файлам должны быть полными. Если не задана переменная HOME, cron будет использовать # домашний каталог соответствующего пользователя. SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour mday month wday who command # # */5 * * * * root /usr/libexec/atrun #Для рандомизации, используется в криптографических механизмах - SSH, SSL. */11 * * * * operator /usr/libexec/save-entropy # Ротация лог-файлов каждый час, если это необходимо. 0 * * * * root newsyslog # Cодержимое каталога /etc/periodic/daily будет запускаться каждых 3 часа на первой минуте часа. 1 3 * * * root periodic daily # Cодержимое каталога /etc/periodic/weekly будет запускаться каждую суботу на 15'ой минуте 4'го часа. 15 4 * * 6 root periodic weekly # Содержимое каталога /etc/periodic/monthly будет запускаться каждый первый день месяца на 30'ой минуте 5'го часа. 30 5 1 * * root periodic monthly #Установите часовой пояс, если часы CMOS настроены по местному времени, в отличие от UTC времени 1,31 0-5 * * * root adjkerntz -a
Как же описывается само задание:
В строке всего семь полей. Их значения minute, hour, mday, month, wday, who (кто), и command.
minute это время в минутах, когда будет запущена команда.
hour означает то же самое для часов.
mday означает день месяца. month, это то же самое, что час и минута, но для месяцев.
wday это день недели.
Все эти поля должны быть в числовом формате, время в 24формате.
Поле who имеет специальное значение, и присутствует только в файле /etc/crontab. Это поле определяет пользователя, с правами которого должна быть запущена команда. Когда пользователь устанавливает собственный файл crontab, он не указывает этот параметр. Последний параметр command. Он указывает команду, которая должна быть запущена.
Пример:
Здесь задано значение */5, и несколько символов *. Эти символы * означают все(каждый). Таким образом, для этой строки соответствующая команда atrun вызывается под пользователем root каждые пять минут независимо от дня или месяца.
Команды могут принимать любое количество параметров; однако команды, состоящие из нескольких строк, должны быть объединены символом \
Этот формат одинаков для каждого файла crontab, за исключением одной детали. Шестое поле, где указано имя пользователя, присутствует только в файле /etc/crontab. Это поле должно быть исключено из crontab файлов пользователей.
Кроме того есть специальные временные метки:
@reboot Запускается 1 раз при старте крона.
@yearly Запускается раз в год, “0 0 1 1 *”.
@annually (аналогично @yearly)
@monthly Запускается раз в месяц, “0 0 1 * *”.
@weekly Запускается раз в неделю, “0 0 * * 0”.
@daily Запускается раз день, “0 0 * * *”.
@midnight (аналогично @daily)
@hourly запускается раз в час, “0 * * * *”.
После правки системного крона, нужно лишь подождать, система все сделает сама)
Для установки пользовательского crona
% crontab crontab-file
crontab -l просмотр установленных файлов
crontab -e открывает пустой файл, Вы его редактируете, сохраняете и система сразу же его применяет.
crontab -r удалить cron файл.
!Не забывайте, что файлы которые мы будем запускать должны быть с правами на выполнение!!!