溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

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

發(fā)布時(shí)間:2023-04-07 15:38:25 來(lái)源:億速云 閱讀:145 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“l(fā)inux注釋crontab文件及crontab執(zhí)行sh的坑怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“l(fā)inux注釋crontab文件及crontab執(zhí)行sh的坑怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

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

    原來(lái),在Linux下寫(xiě)了很多crontab,來(lái)定時(shí)執(zhí)行某些任務(wù),

    現(xiàn)在有以下需求:

    需求:是要注釋某些crontab任務(wù),

    方法:只要在所要取消的crontab任務(wù)前,加'#'即可。

    e.g.

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

    注釋?zhuān)?/strong>

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

    就這么簡(jiǎn)單。

    遇坑1

    看下面例子

    最近寫(xiě)了個(gè)腳本setdatetime.sh,手動(dòng)執(zhí)行的好好的,但是到了crontab中卻無(wú)法定時(shí)執(zhí)行,如下:

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

    乍一看,沒(méi)什么不對(duì)啊,什么情況!

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

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

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

    少一個(gè)sh,折騰大半天。

    坑2

    嗨,又遇1坑,老半天又沒(méi)了,寫(xiě)了一腳本,從baidu獲取時(shí)間,然后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í)行,一點(diǎn)問(wèn)題都沒(méi)有。

    但是放在crontab,又不行了,任務(wù)倒是執(zhí)行,但是結(jié)果不對(duì)啊。

    Fri Jul  1 00:00:00 CST 2021

    我明明在另一臺(tái)服務(wù)器上,用crontab執(zhí)行結(jié)果正確了啊,到這臺(tái)機(jī)器上,怎么又不正確了,氣人。

    無(wú)奈執(zhí)行,我從另一臺(tái)機(jī)器,直接把腳本copy過(guò)來(lái),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快速注釋及撤銷(xiāo)注釋

    我們知道一般情況下,編寫(xiě)crontab需要使用vi編輯器進(jìn)行編輯。通過(guò)vi編輯器,可以很容易的在每一行的前面加上注釋符號(hào)'#',也很容易的使用vi編輯器,將每一行的已經(jīng)注釋的'#'去掉。

    批量快速注釋及撤銷(xiāo)注釋

    先使用crontab -e進(jìn)行對(duì)crontab的編輯操作

    $ crontab -e

    然后使用vi的如下編輯命令

    :%s/^/#/

    就可以將定時(shí)執(zhí)行的任務(wù)前面都加上一個(gè)'#',進(jìn)行注釋掉。

    同樣等,某些操作完成后,也是,先進(jìn)行對(duì)crontab的編輯

    $ crontab -e

    使用如下編輯命令 

    :%s/^#//

    就可以講上次所有注釋的定時(shí)任務(wù),全部撤銷(xiāo)。

    讀到這里,這篇“l(fā)inux注釋crontab文件及crontab執(zhí)行sh的坑怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI