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:
sudocrontab -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.