首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每5分钟在拱门上运行一次cron作业

每5分钟在拱门上运行一次cron作业
EN

Unix & Linux用户
提问于 2017-10-12 04:21:49
回答 2查看 3.4K关注 0票数 4

我已经搜索了一些答案,但似乎没有什么能澄清我的困惑。

我有一项任务我想每5分钟运行一次:

代码语言:javascript
复制
*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update

我是把这个放在/etc/cron.day文件夹中,还是创建一个/etc/cron.详?

另外,我在这个文件夹中创建了什么样的文件?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-10-12 10:24:38

这方面的最佳解决方案可能是在crontab中添加一行。访问crontab文件的cron实现可能不同,因此我已经在官方的Arch repos中为这两个cron实现提供了命令。如果您想要一个不需要特定cron实现的解决方案,我已经编写了使用systemd/Timers的另一个答案

crontab -e或其变体使用编辑器环境变量(默认为vi)。如果希望使用不同的编辑器,请将其导出到编辑器变量,如下所示:

代码语言:javascript
复制
export EDITOR=vim

用你选择的编辑器代替vim。

用cronie编辑crontab:

代码语言:javascript
复制
crontab -e

用fcron编辑crontab:

代码语言:javascript
复制
fcrontab -e

将cron命令添加到文件中并保存:

代码语言:javascript
复制
*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update

此文件中行的格式为

代码语言:javascript
复制
minute hour day_of_month month day_of_week command

如果cron没有运行,请启动它的守护进程。

代表cronie:systemctl start cronie.service

用于fcron:systemctl start fcron.service

如果您希望crontab中的命令在重新启动后继续运行,请确保启用cron守护进程:

systemctl enable cronie.servicesystemctl enable fcron.service

票数 4
EN

Unix & Linux用户

发布于 2017-10-12 09:40:19

Arch Linux内置的计时系统是系统d/计时器。Arch列出了几个使用它作为cron替代品的利弊。我要补充另一个专业:不需要安装cron实现。

总之,为了简单起见,我建议使用cronjob,但这是一个解决方案(理论上),应该适用于任何Arch安装;cron实现无关。

计时器中的实现(用计时器的名称替换TIMERNAME ):

定时器文件位置:/etc/systemd/system/TIMERNAME.timer

代码语言:javascript
复制
[Unit]
Description=Run TIMERNAME every five minutes

[Timer]
OnCalendar=*:0/15
Persistent=true     

[Install]
WantedBy=timers.target

计时器服务文件位置:/etc/systemd/system/TIMERNAME.service

代码语言:javascript
复制
[Unit]
Description=Run some commands - for use with TIMERNAME.service

[Service]
ExecStart=cd /mnt/internal-storage/coindata && shell/command coins update
# Alternatively could be used to run a script with the above commands in it.
# If your script is located at /usr/local/bin, change the above command to:
#    ExecStart:/usr/local/bin/SCRIPTNAME

[Install]
WantedBy=multi-user.target

要开始,请运行:

代码语言:javascript
复制
systemctl start TIMERNAME.timer

启用(以便它在以后重新启动后继续工作):

代码语言:javascript
复制
systemctl enable TIMERNAME.timer

停止和禁用遵循相同的格式。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/397622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档