溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux注釋crontab文件及crontab執(zhí)行sh的坑如何解決

發(fā)布時間:2023-05-16 14:07:18 來源:億速云 閱讀:93 作者:iii 欄目:建站服務器

這篇文章主要介紹了linux注釋crontab文件及crontab執(zhí)行sh的坑如何解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇linux注釋crontab文件及crontab執(zhí)行sh的坑如何解決文章都會有所收獲,下面我們一起來看看吧。

    linux注釋crontab文件及crontab執(zhí)行sh的坑

    原來,在Linux下寫了很多crontab,來定時執(zhí)行某些任務,

    現在有以下需求:

    需求:是要注釋某些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,手動執(zhí)行的好好的,但是到了crontab中卻無法定時執(zhí)行,如下:

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

    乍一看,沒什么不對啊,什么情況!

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

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

    如此,正常執(zhí)行。

    少一個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執(zhí)行,一點問題都沒有。

    但是放在crontab,又不行了,任務倒是執(zhí)行,但是結果不對啊。

    Fri Jul  1 00:00:00 CST 2021

    我明明在另一臺服務器上,用crontab執(zhí)行結果正確了啊,到這臺機器上,怎么又不正確了,氣人。

    無奈執(zhí)行,我從另一臺機器,直接把腳本copy過來,crontab執(zhí)行以下腳本就正確了。

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

    就可以將定時執(zhí)行的任務前面都加上一個'#',進行注釋掉。

    同樣等,某些操作完成后,也是,先進行對crontab的編輯

    $ crontab -e

    使用如下編輯命令

    :%s/^#//

    就可以講上次所有注釋的定時任務,全部撤銷。

    關于“l(fā)inux注釋crontab文件及crontab執(zhí)行sh的坑如何解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“l(fā)inux注釋crontab文件及crontab執(zhí)行sh的坑如何解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI