В Linux демон cron запускает процессы через равные промежутки времени. Он проверяет определенные папки в системе на наличие сценариев, запускаемых в ряде папок, включая /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly. Также есть файл / etc / crontab.
Поместите сценарии в папки Cron
Поместите сценарии в соответствующие папки, чтобы они запускались через равные промежутки времени. Например, откройте окно терминала и выполните следующую команду ls :
ls / etc / cron *
Команда выводит список программ или сценариев, которые запускаются ежечасно, ежедневно, еженедельно и ежемесячно.
Эти папки расплывчаты. Например, ежедневно означает, что скрипт выполняется один раз в день, но вы не можете контролировать время, в течение которого скрипт запускается в этот день.
Вот где появляется файл crontab. Редактируя файл crontab, вы запускаете скрипт или программу в точную дату и время, когда вы хотите, чтобы он запускался.
права доступа
Команда crontab требует, чтобы у пользователя было разрешение на редактирование файла crontab. Есть два файла, которые управляют разрешениями crontab: /etc/cron.allow и /etc/cron.deny.
- Если файл /etc/cron.allow существует, пользователь, который хочет редактировать файл crontab, должен быть указан в этом файле.
- Если файл cron.allow не существует, но существует файл /etc/cron.deny, пользователь не должен существовать в этом файле.
- Если оба файла существуют, файл /etc/cron.allow заменяет файл /etc/cron.deny.
- Если ни один файл не существует, это зависит от конфигурации системы, может ли пользователь редактировать crontab.
Пользователь root всегда может редактировать файл crontab. Вы можете использовать команду su для переключения на пользователя root или команду sudo для запуска команды crontab.
Редактировать файл Crontab
Каждый пользователь, имеющий соответствующие разрешения, может создать файл crontab. Команда cron ищет все файлы crontab и проходит через каждый файл.
Чтобы проверить, есть ли у вас файл crontab, выполните следующую команду:
crontab -l
Если у вас нет файла crontab, появится сообщение crontab for no , в противном случае ваш файл crontab отобразится.
Эта функциональность отличается от системы к системе. Иногда он вообще ничего не отображает, а иногда он не редактирует этот файл .
Чтобы создать или отредактировать файл crontab, выполните следующую команду:
crontab -e
Файл, который открывается, содержит много информации, но ключевой частью является пример перед концом раздела комментариев (комментарии обозначаются строками, начинающимися с #).
# mh dom mon dow команда
0 5 * * 1 tar -zcf /var/backups/home.tgz / home /
В каждой строке файла crontab помещается шесть частей информации:
- Минута дня, когда команда должна выполнить (м).
- Час дня, когда команда должна бежать (ч).
- День месяца, когда команда должна выполнить (дом).
- Месяц выполнения команды (понедельник).
- День недели, когда команда должна бежать (Доу).
- Команда.
Для каждого элемента (кроме команды) вы можете указать подстановочный знак. Посмотрите на следующий пример строки crontab:
30 18 * * * tar -zcf /var/backups/home.tgz / home /
Через 30 минут, 18 часов, и любой день, месяц и день недели, это кронтаб запись будет пронестись и очернить домашний каталог в / вар / папку резервного копирования.
Чтобы команда запускалась через 30 минут после каждого часа, выполните следующую команду:
30 * * * * команда
Чтобы команда запускалась каждую минуту после 18:00, выполните следующую команду:
* 18 * * * команда
Поэтому вы должны быть осторожны при настройке команд crontab.
Например:
* * * 1 * команда
Эта команда выполняется каждую минуту каждого часа каждого дня каждой недели января.
Чтобы выполнить команду 1 января в 5 часов утра, введите в файл crontab следующую команду:
0 5 1 1 * команда
Как удалить файл Crontab
В большинстве случаев вы не захотите удалять файл crontab. Однако вы можете удалить некоторые строки из файла crontab.
Чтобы удалить файл crontab вашего пользователя, выполните следующую команду:
crontab -r
Более безопасный способ сделать это — запустить следующую команду:
crontab -i
Операционная система запрашивает подтверждение перед удалением файла crontab.