本文主要介绍linux注释crontab文件的相关知识以及如何解决crontab执行sh的陷阱。内容详实易懂,操作简单快捷,具有一定的参考价值。相信大家看完这篇关于linux注解crontab文件以及如何解决crontab执行sh的坑的文章后都会有所收获。让我们一起来看看吧。
Linux注释crontab文件和crontab执行sh的pit。最初,许多crontabs是在Linux下编写的,用于定期执行某些任务。
现在有以下需求:
需求:要注释一些crontab任务,
方法:只需添加& # 39;在crontab任务被取消之前。#'去做吧。
例如
5 4 * *孙附和& quot每周日4点5分跑步& quot注意事项:
#5 4 * *孙附和& quot每周日4点5分跑步& quot就这么简单。
坑1见下面的例子。
最近,我编写了一个脚本setdatetime.sh,它可以很好地手动执行,但不能在crontab中定期执行,如下所示:
*/1 * * */data/test/setdatetime . sh乍一看没毛病,什么情况!
后来我在别的地方看到你必须加sh,如下:
*/1 * * * * sh/data/test _ tzb/setdatetime . sh所以,正常执行。
没有sh,需要很长时间。
第二个坑嗨,我又遇到了一个坑,而且很久都没有了。我写了一个脚本从百度获取时间,然后进行日期排序。
#!/bin/bash
sudo日期$(date-date = & quot;$(wget-S & quot;http://www.baidu.com/" 2》& amp1 | grep-E & # 39;^[[:space:]]*[dd]ate:';| sed & # 39s/^[[:space:]]*[dd]ate:[[:space:]]*//';| head-1l | awk & # 39;{打印$1、$3、$2、$5、& quotGMT & quot, $4 }'| sed & # 39s//,//& # 39;)& quot)& quot用sh执行它,完全没有问题。
但是把它放在crontab中,它就不会再工作了。任务执行了,但结果是错误的。
Fri 2021年7月1日00:00:00中部时间
我显然在另一个服务器上,使用crontab的结果是正确的。在这台机器上,它又不正确,这很气人。
无奈,我直接从另一台机器上复制脚本,crontab正确执行了以下脚本。
#!/bin/bash
export LANG=en_US。UTF-8
。/etc/profile
sudo日期$(date-date = & quot;$(wget-S & quot;http://www.baidu.com/" 2》& amp1 | grep-E & # 39;^[[:space:]]*[dd]ate:';| sed & # 39s/^[[:space:]]*[dd]ate:[[:space:]]*//';| head-1l | awk & # 39;{打印$1、$3、$2、$5、& quotGMT & quot, $4 }'| sed & # 39s//,//& # 39;)& quot)& quot看出区别了吗?
。应该添加/etc/profile。
Crontab快速注释和撤销注释我们知道,一般情况下,编写crontab需要使用vi编辑器进行编辑。通过vi编辑器,您可以轻松地在每一行前面添加注释符号& # 39;#',也很容易使用vi编辑器,每一行都有注释& # 39;#'移除。
批量快速注释和注释取消首先使用crontab -e编辑crontab。
$ crontab -e然后使用vi的以下编辑命令。
:% s//#/您可以添加& # 39;#',要注释掉。
同样,在一些操作完成后,应该首先编辑crontab。
$ crontab -e使用以下编辑命令
:% s/#/您可以取消最后一条评论的所有计划任务。
评论前必须登录!
注册