最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解讀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中,每個進程都和三個系統(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進程地址空間詳解

    Linux進程地址空間詳解

    在C語言編程中,內(nèi)存管理是一個重要的環(huán)節(jié),本文詳細(xì)解析了C語言中的內(nèi)存區(qū)域劃分,包括棧區(qū)、堆區(qū)、全局區(qū)等,并探討了fork函數(shù)的遺留問題,即如何出現(xiàn)一個變量同時等于0又大于0的情況,此外,文章還深入討論了進程地址空間的概念
    2024-10-10
  • LINUX啟動/重啟/停上MYSQL的命令(詳解)

    LINUX啟動/重啟/停上MYSQL的命令(詳解)

    下面小編就為大家?guī)硪黄狶INUX啟動/重啟/停上MYSQL的命令(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 在Linux里安裝和啟動nginx的方法

    在Linux里安裝和啟動nginx的方法

    本篇文章主要介紹了在Linux里安裝和啟動nginx的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • PHP程序員玩轉(zhuǎn)Linux系列 使用supervisor實現(xiàn)守護進程

    PHP程序員玩轉(zhuǎn)Linux系列 使用supervisor實現(xiàn)守護進程

    這篇文章主要為大家詳細(xì)介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,使用supervisor實現(xiàn)守護進程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • linux中批量添加文件前綴的操作方法

    linux中批量添加文件前綴的操作方法

    這篇文章主要介紹了linux中批量添加文件前綴的操作方法,給大家擴展介紹linux下批量改變文件前綴命令,需要的朋友可以參考下
    2019-12-12
  • Linux系統(tǒng)下為Nginx安裝多版本PHP

    Linux系統(tǒng)下為Nginx安裝多版本PHP

    本文為大家講解了如何在Linux,Nginx環(huán)境下安裝多版本PHP,并支持每個站點不同PHP版本的安裝配置方法
    2018-10-10
  • 在Linux服務(wù)器上部署War項目教程

    在Linux服務(wù)器上部署War項目教程

    文章講述了如何將War包上傳到Linux服務(wù)器上的步驟,包括使用FTP或SFTP上傳,確認(rèn)并安裝Java運行環(huán)境和Web服務(wù)器(如ApacheTomcat或Nginx),將War包復(fù)制到相應(yīng)的目錄,并重啟服務(wù)以確保部署成功,最后,通過瀏覽器訪問部署的應(yīng)用
    2025-02-02
  • 在CentOS 7下安裝Redis和MongoDB教程

    在CentOS 7下安裝Redis和MongoDB教程

    本篇文章主要介紹了在CentOS 7下安裝Redis和MongoDB教程,有需要的可以了解一下。
    2016-11-11
  • Linux中文件系統(tǒng)truncate.c詳解

    Linux中文件系統(tǒng)truncate.c詳解

    這篇文章主要介紹了Linux中文件系統(tǒng)truncate.c詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 淺談Linux下tar,jar壓縮,解壓的常用命令

    淺談Linux下tar,jar壓縮,解壓的常用命令

    下面小編就為大家?guī)硪黄獪\談Linux下tar,jar壓縮,解壓的常用命令。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12

最新評論

当阳市| 井冈山市| 嘉峪关市| 蓬莱市| 本溪市| 乌拉特后旗| 霍城县| 松阳县| 乌恰县| 昆山市| 丰镇市| 神农架林区| 和政县| 青田县| 察隅县| 铁岭市| 凌云县| 天津市| 讷河市| 湘乡市| 凤山市| 丰镇市| 苍山县| 宿州市| 义乌市| 博兴县| 山西省| 监利县| 门源| 策勒县| 望城县| 大关县| 崇礼县| 绥江县| 西乡县| 天气| 岳西县| 襄樊市| 财经| 民县| 繁峙县|