我已经使用 Ubuntu 12.04 设置了一个 VPS,现在我想每天运行一次 cronjob。
命令行如下:
mono /root/Folder/Aplication.exe
我在网上找了好多资料,但似乎不明白该怎么做。例如,我想在午夜每 24 小时运行一次此命令。
提前感谢您阅读我的问题,当然也感谢您提供的所有答案。
答案1
因为@Guss 的回答和我的回答之间存在一些互补的差异,所以我将保留它。
这是关于的一个例子计划任务设置 (来源):
* * * * * 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点运行一个作业,你需要编辑用户的定时任务文件(位于
/var/spool/cron/crontabs/<user_name>
)。您可以通过命令执行此操作crontab -e
。(可能会出现一个对话框,您必须在其中选择默认终端文本编辑器。)在定时任务文件添加下一行: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
这部分将把输出重定向到一个日志文件,以防你想跟踪发生了什么计划任务。如果要保留前几天的日志数据,可以使用>>
而不是>
。2>&1
这部分将把错误信息放入日志文件中。
如果你想通过根,您必须编辑其定时任务文件:
sudo
crontab -e
并添加上面显示的行。此外,对于日常计划任务,您可以在文件夹中添加可执行文件
/etc/cron.daily
。要查找示例,请将一些现有文件签入此文件夹中。
答案2
您可以使用 cron 在 Ubuntu(和其他 Linux)中运行计划任务。关于 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(前两个字段)运行您的 Mono 应用程序。
现在,因为我看到您已将应用程序安装在 下,所以/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
- 查看Crontab大师满足您所有的 crontab 表达式需求。