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

解讀crontab腳本錯誤日志和正確的輸出寫入到文件

 更新時間:2023年04月07日 15:40:34   作者:o王o  
這篇文章主要介紹了解讀crontab腳本錯誤日志和正確的輸出寫入到文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

crontab腳本錯誤日志和正確的輸出寫入到文件

如果crontab不重定向輸出,并且crontab所執(zhí)行的命令有輸出內(nèi)容的話,是一件非常危險的事情。

因為該輸出內(nèi)容會以郵件的形式發(fā)送給用戶,內(nèi)容存儲在郵件文件

/var/spool/mail/$user

如果命令執(zhí)行比較頻繁(如每分鐘一次),或者命令輸出內(nèi)容較多,會使這個郵件文件不斷追加內(nèi)容,文件越來越大。

而郵件文件一般存放在根分區(qū),根分區(qū)一般相對較小,所以會造成根分區(qū)寫滿而無法登錄服務(wù)器。

不輸出內(nèi)容

*/5 * * * * /root/XXXX.sh &>/dev/null 2>&1?

將正確和錯誤日志都輸出到 /tmp/load.log

*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1 &

只輸出正確日志到 /tmp/load.log

*/1 * * * * /root/XXXX.sh > /tmp/load.log & ?等同于 ? */1 * * * * /root/XXXX.sh 1>/tmp/load.log &

只輸出錯誤日志到 /tmp/load.log

*/1 * * * * /root/XXXX.sh 2> /tmp/load.log &?

名詞解釋

在shell中,每個進(jìn)程都和三個系統(tǒng)文件相關(guān)聯(lián):標(biāo)準(zhǔn)輸入stdin,標(biāo)準(zhǔn)輸出stdout和標(biāo)準(zhǔn)錯誤stderr,三個系統(tǒng)文件的文件描述符分別為0,1和2。所以這里2>&1的意思就是將標(biāo)準(zhǔn)錯誤也輸出到標(biāo)準(zhǔn)輸出當(dāng)中。

> 就相當(dāng)于 1> 也就是重定向標(biāo)準(zhǔn)輸出,不包括標(biāo)準(zhǔn)錯誤。

通過2>&1,就將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出了(stderr已作為stdout的副本),那么再使用>重定向就會將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤信息一同重定向了。

如果只想重定向標(biāo)準(zhǔn)錯誤到文件中,則可以使用2> file。

crontab重定向錯誤日志 加上時間

在開發(fā)中,我們避免不了寫crontab腳本來異步執(zhí)行一些東西,一般設(shè)置crontab用下面的方法

*/1 * * * * commond > /tmp/t.log 2>&1

后面的 2>&1 代表把標(biāo)準(zhǔn)錯誤輸出指向標(biāo)準(zhǔn)輸出,意思是當(dāng)commond異常退出時,把異常退出時的日志也寫到 /tmp/t.log 下面,這時記錄的日志是沒有時間信息的,就是說日志里的數(shù)據(jù)沒有辦法知道是什么時候打印出來的。

下面通過一個shell來解決這件事,代碼如下

#!/bin/bash


if [ $# -gt 1 ]; then
?? ?istring=''
?? ?#去掉回車
?? ?date=`date | tr -s ["\n"]`
?? ?for (( i = 2; i <= $#; i++ ))
?? ?do
?? ??? ?string=$string" "${!i}
?? ?done?? ?
?? ?c=$date": "$string
?? ?echo "" >> $1
?? ?echo $c >> $1
fi

把上面的代碼放到根目錄下,保存為 datecrontalog.sh

然后在crontab -e用下面的腳本代替

*/1 * * * * ?commond 2>&1 | xargs $HOME/datecrontalog.sh /tmp/t.log

總結(jié)

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

相關(guān)文章

  • linux中expect的介紹與使用示例

    linux中expect的介紹與使用示例

    expect是一種自動交互語言,能實現(xiàn)在shell腳本中為scp和ssh等自動輸入密碼自動登錄。下面這篇文章主要介紹了linux中使用expect的方法示例,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • ubuntu19.04安裝教程(圖文步驟)

    ubuntu19.04安裝教程(圖文步驟)

    這篇文章主要介紹了ubuntu19.04安裝教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-10-10
  • Apache后綴名解析漏洞分析和防御方法

    Apache后綴名解析漏洞分析和防御方法

    這篇文章主要介紹了Apache后綴名解析漏洞分析和防御方法,后綴解析漏洞通常通過偽造PHP后輟,來上傳文件到服務(wù)器中,很致命的一漏洞,需要的朋友可以參考下
    2014-08-08
  • Apache控制是否顯示站點目錄(推薦)

    Apache控制是否顯示站點目錄(推薦)

    這篇文章主要介紹了Apache控制是否顯示站點目錄(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • CentOS服務(wù)器平臺搭建mysql主從復(fù)制與讀寫分離的方法

    CentOS服務(wù)器平臺搭建mysql主從復(fù)制與讀寫分離的方法

    這篇文章主要介紹了CentOS服務(wù)器平臺搭建mysql主從復(fù)制與讀寫分離的方法,結(jié)合實例形式較為詳細(xì)的分析了CentOS平臺搭建mysql主從復(fù)制與讀寫分離的步驟、設(shè)置方法、相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-04-04
  • Linux里L(fēng)VM磁盤擴(kuò)容詳細(xì)步驟

    Linux里L(fēng)VM磁盤擴(kuò)容詳細(xì)步驟

    大家好,本篇文章主要講的是Linux里L(fēng)VM磁盤擴(kuò)容詳細(xì)步驟,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下哦,方便下次瀏覽
    2021-11-11
  • 關(guān)于CentOs系統(tǒng)自帶python和yum卸載后的解決辦法

    關(guān)于CentOs系統(tǒng)自帶python和yum卸載后的解決辦法

    前幾天因項目需要,在服務(wù)器上搭建python-mysql模塊,結(jié)果沒安裝好,于是乎想卸載重裝,遂在網(wǎng)上查詢卸載python的方法,結(jié)果一不小心直接把系統(tǒng)的python刪了個干凈,怎么處理呢,看看小編給大家?guī)淼谋酒坛贪?/div> 2018-11-11
  • 淺談Linux文件目錄介紹及文件顏色區(qū)別

    淺談Linux文件目錄介紹及文件顏色區(qū)別

    這篇文章主要介紹了淺談Linux文件目錄介紹及文件顏色區(qū)別,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 在Linux中限制root用戶SSH遠(yuǎn)程登錄的流程詳解

    在Linux中限制root用戶SSH遠(yuǎn)程登錄的流程詳解

    在Linux系統(tǒng)中,root用戶擁有最高權(quán)限,因此為了增強(qiáng)系統(tǒng)安全性,我們通常會限制root用戶通過SSH遠(yuǎn)程登錄,本文將介紹如何在Linux系統(tǒng)中限制root用戶的SSH遠(yuǎn)程登錄,需要的朋友可以參考下
    2024-03-03
  • linux IPC之socket解析及實例代碼

    linux IPC之socket解析及實例代碼

    這篇文章主要介紹了linux IPC之socket解析及實例代碼,分享了服務(wù)端和客戶端兩端的實例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論