linux注释crontab文件及crontab执行sh的坑如何解决

2023年 8月 2日 42.8k 0

这篇文章主要介绍了linux注释crontab文件及crontab执行sh的坑如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux注释crontab文件及crontab执行sh的坑如何解决文章都会有所收获,下面我们一起来看看吧。

    linux注释crontab文件及crontab执行sh的坑

    原来,在Linux下写了很多crontab,来定时执行某些任务,

    现在有以下需求:

    需求:是要注释某些crontab任务,

    方法:只要在所要取消的crontab任务前,加'#'即可。

    e.g.

    5 4 * * sun echo "run at 5 after 4 every sunday"

    注释:

    #5 4 * * sun echo "run at 5 after 4 every sunday"

    就这么简单。

    遇坑1

    看下面例子

    最近写了个脚本setdatetime.sh,手动执行的好好的,但是到了crontab中却无法定时执行,如下:

    */1 * * * * /data/test/setdatetime.sh

    乍一看,没什么不对啊,什么情况!

    后来在其他地方看到,必须要加sh才可以,如下:

    */1 * * * * sh /data/test_tzb/setdatetime.sh

    如此,正常执行。

    少一个sh,折腾大半天。

    坑2

    嗨,又遇1坑,老半天又没了,写了一脚本,从baidu获取时间,然后date -s。

    #!/bin/bash
    sudo date -s "$(date --date="$(wget -S  "http://www.baidu.com/" 2>&1 | grep -E '^[[:space:]]*[dD]ate:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | head -1l | awk '{print $1, $3, $2,  $5 ,"GMT", $4 }' | sed 's/,//')")"

    用sh执行,一点问题都没有。

    但是放在crontab,又不行了,任务倒是执行,但是结果不对啊。

    Fri Jul  1 00:00:00 CST 2021

    我明明在另一台服务器上,用crontab执行结果正确了啊,到这台机器上,怎么又不正确了,气人。

    无奈执行,我从另一台机器,直接把脚本copy过来,crontab执行以下脚本就正确了。

    #!/bin/bash
    export LANG=en_US.UTF-8
    .  /etc/profile
    sudo date -s "$(date --date="$(wget -S  "http://www.baidu.com/" 2>&1 | grep -E '^[[:space:]]*[dD]ate:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | head -1l | awk '{print $1, $3, $2,  $5 ,"GMT", $4 }' | sed 's/,//')")"

    看出不同了么?

    .  /etc/profile 要加上。

    crontab快速注释及撤销注释

    我们知道一般情况下,编写crontab需要使用vi编辑器进行编辑。通过vi编辑器,可以很容易的在每一行的前面加上注释符号'#',也很容易的使用vi编辑器,将每一行的已经注释的'#'去掉。

    批量快速注释及撤销注释

    先使用crontab -e进行对crontab的编辑操作

    $ crontab -e

    然后使用vi的如下编辑命令

    :%s/^/#/

    就可以将定时执行的任务前面都加上一个'#',进行注释掉。

    同样等,某些操作完成后,也是,先进行对crontab的编辑

    $ crontab -e

    使用如下编辑命令

    :%s/^#//

    就可以讲上次所有注释的定时任务,全部撤销。

    关于“linux注释crontab文件及crontab执行sh的坑如何解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“linux注释crontab文件及crontab执行sh的坑如何解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注每日运维(www.mryunwei.com)行业资讯频道。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论