Crontab - это инструмент в Linux, который позволяет планировать задачи на выполнение в автоматическом режиме, в указанное время. Чтобы использовать crontab, вам нужно знать синтаксис, который состоит из шести полей, каждое описывающее, когда и как часто нужно запустить задачу.
Чтобы открыть crontab для редактирования, введите в терминале следующую команду:
crontab -e
Если редактор по умолчанию, к примеру, vi или vim, вызывает ошибки, вы можете изменить редактор на nano, установив переменную окружения в своем .bashrc или .bash_profile:
export VISUAL=nano
export EDITOR="$VISUAL"
Или же просто выполните эти команды в терминале, что позволит вам разово избавиться от ошибки.
После этого вы можете отредактировать crontab, добавив строку с заданием для выполнения каждые 15 минут:
*/15 * * * * python3 /home/user/script.py
Сохраните изменения и выйдите из редактора. Ваш скрипт будет автоматически запускаться каждые 15 минут.
Посмотреть все задачи crontab, которые есть в системе можно командой:
crontab -l
Чтобы удалить все задачи, введите команду:
crontab -r
Здесь представлены команды для выставления времени срабатывания crontab:
Порядок: *минута *час *день *месяц *день_недели
1. * * * * * command: каждую минуту (звездочка означает 'все значения').
2. 0 * * * * command: каждый час, в начале часа.
3. 0 0 * * * command: каждый день, в полночь.
4. 0 0 * * 0 command: каждую неделю, в воскресенье в полночь.
5. 0 0 1 * * command: первый день каждого месяца, в полночь.
6. 0 0 1 1 * command: первый день каждого года, в полночь.
Вы можете изменять любой из пяти разделов * * * * * для получения желаемого времени. Например, вместо * * * * *, 0 * * * * означает, что команда будет запускаться каждый час в начале часа.
Заключение
Crontab - очень мощный инструмент для автоматизации многих процессов в Linux, таких как резервное копирование данных, очистка от временных файлов, обновление программного обеспечения, создание отчетов, и многое другое. Но будьте очень внимательны при редактировании и проверьте правильность настроек перед сохранением изменений в crontab.