Cronjob раз в день в Ubuntu 12.04 [дубликат]

Я установил VPS с Ubuntu 12.04 и теперь хочу запускать cronjob раз в день.

Командная строка выглядит следующим образом:

    mono /root/Folder/Aplication.exe

Я искал и искал в Интернете, но не могу понять, как это сделать. Я, например, хочу запускать эту команду каждые 24 часа в полночь .

Заранее благодарю вас за то, что прочитали мой вопрос и, конечно же, за все ответы.

1
задан 8 January 2017 в 20:52

2 ответа

Поскольку существуют некоторые дополнительные различия между @Guss и мой ответ, я оставлю его.

Вот, пожалуйста иллюстрация об установке 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 рекомендуется использовать полный путь для команды в Кроне. Для нахождения его, можно использовать sudo updatedb && sudo whereis mono.
    • > /var/log/mono.daily.log эта часть перенаправит вывод к файлу журнала, в случае, если Вы хотите проследить то, что, происходят с Вашим cronjob. Если Вы хотите сохранить данные логов с предыдущих дней, можно использовать >> вместо >.
    • 2>&1 эта часть поместит сообщения об ошибках в файл журнала.
  • Если Вы хотите выполнить задание корнем, необходимо отредактировать его crontab файл: sudocrontab -e и добавьте строку, показанную выше.

  • Кроме того, для ежедневной газеты cronjobs, можно добавить исполняемый файл в папке /etc/cron.daily. Для нахождения примера проверьте некоторые существующие файлы в эту папку.

1
ответ дан 7 December 2019 в 13:38

Вы запускаете запланированные задания в 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 AM (первые два поля).

Теперь, поскольку я вижу, что вы установили свое приложение в /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. Checkout Crontab.Guru для всех ваших потребностей в выражениях crontab.
1
ответ дан 7 December 2019 в 13:38

Другие вопросы по тегам:

Похожие вопросы: