我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

目录
  • linux注释crontab文件及crontab执行sh的坑
    • 遇坑1
    • 坑2
  • crontab快速注释及撤销注释
    • 批量快速注释及撤销注释
  • 总结

    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/^#//

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

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

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

    目录linux注释crontab文件及crontab执行sh的坑遇坑1坑2crontab快速注释及撤销注释批量快速注释及撤销注释总结linux注释crontab文件及crontab执行sh的坑 原来,在Linux下写了很多crontab,来
    2023-04-07

    linux注释crontab文件及crontab执行sh的坑怎么解决

    本文小编为大家详细介绍“linux注释crontab文件及crontab执行sh的坑怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux注释crontab文件及crontab执行sh的坑怎么解决”文章能帮助大家解决疑惑,下面跟
    2023-07-05

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

    这篇文章主要介绍了linux注释crontab文件及crontab执行sh的坑如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux注释crontab文件及crontab执行sh的坑如何解决文章都会有
    2023-07-06

    编程热搜

    目录