У каждого пользователя есть свое crontab
.
Чтобы увидеть это просто введите
crontab -l
и, да, вы видели это правильно, когда вы хотите добавить, а crontab
затем просто сделать
crontab -e
Впервые вас спросят о редакторе для использования crontab
. Поскольку вы новичок, как вы говорите, я бы порекомендовал использовать nano, это самый простой в использовании редактор.
Сам crontab работает так
MIN = Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW = Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line
Так, например, чтобы запускать работу каждые 15 минут только в понедельник, вы делаете это так
*/15 * * * mon /home/me/yourscript.sh
и ДА очень важно, чтобы вы поместили свой cronjob в crontab пользователя, у которого достаточно прав для его выполнения.
Так что если ваш скрипт должен быть пользователем root или специальным пользователем, убедитесь, что su для этого пользователя и добавьте туда cronjob.
Также очень важно!
Кронджоб тупой! Да, я сказал это. Обязательно вводите полный PATH для того, который application/command/script
вы используете, потому что crontab не будет работать с .bashrc
или подобным. Вы всегда должны убедиться, что сообщаете cron, где он может найти файлы и каталоги.
Чтобы ответить на остальные ваши вопросы:
Конечно, он будет работать сам по себе, вот для чего он. Но вы должны проверить, что cronjob действительно делает это, или если он что-то упустил. Например, войдите в файл журнала, чтобы увидеть, действительно ли он работает.
И НЕТ, перезагрузка не нужна. Перезагрузка с Linux обычно требуется только в том случае, если вы устанавливаете новое ядро. Чтобы использовать его, вам нужно перезагрузить компьютер. Почти все остальное можно сделать без перезагрузки в Linux. Конечно, есть исключения, но в целом это утверждение верно.
crontab -e
позволяет редактировать ваш пользовательский crontab без sudo. Пользовательские crontabs находятся в/var/spool/cron/crontabs
каталоге, к которому нельзя получить доступ без разрешения суперпользователя (но таким образом, что, когда cron откажется от привилегий, он все равно сможет его прочитать). Даже если вы используете sudo, чтобы попытаться отредактировать файл напрямую, вы увидите большое предупреждение вверху: «НЕ РЕДАКТИРОВАТЬ ЭТОТ ФАЙЛ» - файл предназначен для редактирования с помощьюcrontab
команды, которая использует временную копию/tmp
и затем устанавливает это после сохранения.