Cronjob один раз в день в Ubuntu 12.04
Я настроил VPS с Ubuntu 12.04, и теперь я хочу запускать cronjob один раз в день.
Командная строка выглядит следующим образом:
mono /root/Folder/Aplication.exe
Я посмотрел и посмотрел в Интернете, но не могу понять, как это сделать. Я, например, хочу запускать эту команду каждые 24 часа в полночь.
Заранее спасибо за чтение моего вопроса и, конечно, за все ответы.
2 ответа
Поскольку между @Guss's и моим ответом есть некоторые дополнительные различия, я оставлю это.
Вот иллюстрация о настройке cronjobs ( источник):
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
Если вы хотите запускать работу у своего $USER каждый день в 0:15, вам нужно отредактировать файл crontab пользователя (который находится в
/var/spool/cron/crontabs/<user_name>
). Вы можете сделать это командойcrontab -e
, (Возможно, появится диалоговое окно, в котором вы должны выбрать текстовый редактор терминала по умолчанию.) В конце файла crontab добавьте следующую строку:15 0 * * * /usr/bin/mono /root/Folder/Aplication.exe > /var/log/mono.daily.log 2>&1
/usr/bin/mono
Рекомендуется использовать полный путь к команде в Cron. Чтобы найти его, вы можете использоватьsudo updatedb && sudo whereis mono
,> /var/log/mono.daily.log
эта часть перенаправит вывод в файл журнала, если вы хотите отследить, что происходит с вашим cronjob. Если вы хотите сохранить данные журнала за предыдущие дни, вы можете использовать>>
вместо>
,2>&1
эта часть помещает сообщения об ошибках в файл журнала.
Если вы хотите запустить задание от имени пользователя root, вы должны отредактировать его файл crontab:
sudo
crontab -e
и добавьте строку, показанную выше.Также для ежедневных cronjobs вы можете добавить исполняемый файл в папку
/etc/cron.daily
, Чтобы найти пример, проверьте некоторые из существующих файлов в этой папке.
Вы запускаете запланированные задания в Ubuntu (и других Linux) с помощью cron. О cron важно помнить, что существуют "пользовательские таблицы cron" и "системные таблицы cron".
Если вы хотите, чтобы ваше приложение запускалось в контексте пользователя, то это относительно просто: войдите в систему как этот пользователь и запустите crontab -e
, Вы попадаете в редактор, где редактируете таблицу cron вручную.
Под пользовательской таблицей cron у вас есть 6 полей:
<minute> <hour> <day-of-month> <month> <day-of-week> <command ...>
Поле разделено пробелом кромеcommand
"который простирается до конца строки (с некоторыми оговорками). Читать man 5 crontab
для кровавых деталей.
Чтобы запускать что-либо каждый день, вы можете выбрать время, а затем запрограммировать его в первые два поля, оставив все остальные поля звездочкой (то есть "все идет"). Итак, выражение
1 2 * * * mono /root/Folder/Aplication.exe
Будет запускать ваше моно приложение каждый день (каждый день каждого месяца, независимо от дня недели - это 3 звездочки) в 2:01 утра (первые два поля).
Теперь, потому что я вижу, что вы установили приложение под /root
Я предполагаю, что вы, возможно, захотите запустить это приложение как системное приложение, что также имеет больше смысла при настройке сервера в VPS в любом случае. Системный crontab очень похож на пользовательский crontab за исключением того, что хранится в файле под /etc
каталог и имеет дополнительное поле, определяющее, под каким пользователем вы хотите его запустить - что, вероятно, будет root
, Таким образом, выражение может выглядеть так:
1 2 * * * root mono /root/Folder/Aplication.exe
и вы, вероятно, хотите поместить это в новый файл, который вы создаете под /etc/cron.d/
- может быть /etc/cron.d/myapp
(обратите внимание, что расширения нет - это специально). Под /etc/
Есть несколько других файлов и каталогов crontab, которые могут быть очень полезны для таких вещей, как ежедневные прогоны, такие как /etc/cron.daily
- прочтите их в справочной странице по файлам crontab, на которую я ссылался выше.
Заметки
- Не запускайте Ubuntu 12.04 - он супер устарел. Лучше попробуй 16.04
- Оформить заказ https://crontab.guru/ для всех ваших потребностей в выражениях crontab.