今天朋友跟我讨论了一个问题,crontab的语法是“分 时 日 月 周 command”,那我们如何实现在每个月的第一个周六来执行某个命令或脚本呢?
经过思考我个人想到一种解决方案
1、先做个每周六执行的计划;
2、计划里执行一个脚本,脚本的内容是判断data +%e的执行结果,如果小于7的话来执行你需要执行的命令或脚本。
每个月的第一个周六:
0 0 * * 6 运行你的脚本
脚本里内容是
===================================================================== #!/bin/bash t=$(date +%e) if [ "$t" -le 7 ]; then 你需要执行的命令; fi ======================================================================
又有朋友问,那如果是第二个周六如何,解决方法如下,我们修改脚本为
===================================================================== #!/bin/bash t=$(date +%e) if [ "$t" -ge 8 ] && [ "$t" -le 13 ]; then 你需要执行的命令; fi ======================================================================
精简了一下,也可以这样写
0 0 * * 6 [ "$\(date +\%e\)" -le 7 ]&&要执行的命令
转载于:https://blog.51cto.com/301ren/1618754