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, на которую я ссылался выше.

Заметки

  1. Не запускайте Ubuntu 12.04 - он супер устарел. Лучше попробуй 16.04
  2. Оформить заказ https://crontab.guru/ для всех ваших потребностей в выражениях crontab.
Другие вопросы по тегам