简单的问题 - 对于我想在每周周六早上 8 点 05 分运行的命令,crontab 条目会是什么样子?
有什么作用
2 * * * *
Run Code Online (Sandbox Code Playgroud)
意味着在 crontab 上下文中?
我想每 2 分钟运行一次我的程序;那是 2 * * * * 的意思吗?
位于/etc/crontab的 crontab 和可以使用 编辑的 crontab 有什么区别crontab -e?
我想在每个月的第一个星期一 8.30 从 cron 运行一项工作。cron 维基百科页面说
而当时间/日期规范领域的所有匹配当前时间和日期执行正常的工作,有一个例外:如果“月日”和“星期几”的限制(而不是“*”),那么无论是“日期”字段 (3) 或“星期几”字段 (5) 必须与当前日期匹配。
(我的重点)
这是否意味着我不能在一个月的第一个星期一做,我只能在一个月的第一天(或其他任何一天)做?我想不出办法绕过它。
我有一个notify.sh看起来像的脚本:
notify-send "hi welcome"
Run Code Online (Sandbox Code Playgroud)
我下午 2 点的 crontab 通知:
0 14 * * * home/hacks/notify.sh
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。问题是什么?
有没有办法在 crontab 中的某个工作日的某个开始时间和某个结束时间之间指定每 5 分钟运行一次的作业?
更新 我认为我的开始和结束时间不是固定时间是相关的。因此,在小时列中指定 9-5 是不够的。我要 9:30-17:30。
我能说......么:
MYPATH=/root/scripts
MYSCRIPT=doit.sh
0 1 * * * $MYPATH/$MYSCRIPT
Run Code Online (Sandbox Code Playgroud)
在crontab -e?
是否可以在 中使用变量crontab -e?
我在几个不同的 linux 和 freebsd 系统上将它添加到 /etc/crontab 中:
# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * 2 root /sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud)
我想在每个月的第三个星期二重新启动。然而,所有系统都在本月的第三个星期三(19日)重新启动。
我究竟做错了什么?
更新:感谢 Ranon 在下面的回答,看起来下面的修订版会起作用,任何人都可以确认或者有更好的方法吗?
# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud) 我试图每分钟运行一个脚本(在运行 Ubuntu 16.04 的 Docker 容器上)。
在/etc/echo.sh简单地echo单词“喜”
cat /etc/crontab
* * * * * root /etc/echo.sh > /var/log/cron.log 2>&1
/etc/init.d/cron reload
* Reloading configuration files for periodic command scheduler cron [ OK ]
tail -f /var/log/cron.log
hi
Run Code Online (Sandbox Code Playgroud)
打印“hi”一次后,没有任何反应。
任何想法为什么?
49 18 * * * mpv ~/Musik/Donau.mp3
Run Code Online (Sandbox Code Playgroud)
Donau.mp3该命令将在下午 6:49 正好播放该文件。例如,我如何指定下午 6:49:50?