我已经搜索了一些答案,但似乎没有什么能澄清我的困惑。
我有一项任务我想每5分钟运行一次:
*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update我是把这个放在/etc/cron.day文件夹中,还是创建一个/etc/cron.详?
另外,我在这个文件夹中创建了什么样的文件?
发布于 2017-10-12 10:24:38
这方面的最佳解决方案可能是在crontab中添加一行。访问crontab文件的cron实现可能不同,因此我已经在官方的Arch repos中为这两个cron实现提供了命令。如果您想要一个不需要特定cron实现的解决方案,我已经编写了使用systemd/Timers的另一个答案。
crontab -e或其变体使用编辑器环境变量(默认为vi)。如果希望使用不同的编辑器,请将其导出到编辑器变量,如下所示:
export EDITOR=vim用你选择的编辑器代替vim。
用cronie编辑crontab:
crontab -e用fcron编辑crontab:
fcrontab -e将cron命令添加到文件中并保存:
*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update此文件中行的格式为
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.service或systemctl enable fcron.service
发布于 2017-10-12 09:40:19
Arch Linux内置的计时系统是系统d/计时器。Arch列出了几个使用它作为cron替代品的利弊。我要补充另一个专业:不需要安装cron实现。
总之,为了简单起见,我建议使用cronjob,但这是一个解决方案(理论上),应该适用于任何Arch安装;cron实现无关。
计时器中的实现(用计时器的名称替换TIMERNAME ):
定时器文件位置:/etc/systemd/system/TIMERNAME.timer
[Unit]
Description=Run TIMERNAME every five minutes
[Timer]
OnCalendar=*:0/15
Persistent=true
[Install]
WantedBy=timers.target计时器服务文件位置:/etc/systemd/system/TIMERNAME.service
[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要开始,请运行:
systemctl start TIMERNAME.timer启用(以便它在以后重新启动后继续工作):
systemctl enable TIMERNAME.timer停止和禁用遵循相同的格式。
https://unix.stackexchange.com/questions/397622
复制相似问题