欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年04月07日 14:26:41   作者:煎餅皮皮俠  
這篇文章主要介紹了linux注釋crontab文件及crontab執(zhí)行sh的坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

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

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

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

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

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í)行,一點(diǎn)問題都沒有。

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

Fri Jul  1 00:00:00 CST 2021

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

無奈執(zhí)行,我從另一臺機(jī)器,直接把腳本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編輯器進(jìn)行編輯。通過vi編輯器,可以很容易的在每一行的前面加上注釋符號'#',也很容易的使用vi編輯器,將每一行的已經(jīng)注釋的'#'去掉。

批量快速注釋及撤銷注釋

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

$ crontab -e

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

:%s/^/#/

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

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

$ crontab -e

使用如下編輯命令 

:%s/^#//

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

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論