中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2023-04-07 16:37:27 來源:億速云 閱讀:110 作者:iii 欄目:開發技術

這篇文章主要介紹“crontab腳本錯誤日志怎么正確的輸出寫入到文件”,在日常操作中,相信很多人在crontab腳本錯誤日志怎么正確的輸出寫入到文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”crontab腳本錯誤日志怎么正確的輸出寫入到文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

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

    因為該輸出內容會以郵件的形式發送給用戶,內容存儲在郵件文件

    /var/spool/mail/$user

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

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

    不輸出內容

    */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中,每個進程都和三個系統文件相關聯:標準輸入stdin,標準輸出stdout和標準錯誤stderr,三個系統文件的文件描述符分別為0,1和2。所以這里2>&1的意思就是將標準錯誤也輸出到標準輸出當中。

    > 就相當于 1> 也就是重定向標準輸出,不包括標準錯誤。

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

    如果只想重定向標準錯誤到文件中,則可以使用2> file。

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

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

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

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

    下面通過一個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

    到此,關于“crontab腳本錯誤日志怎么正確的輸出寫入到文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

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

    AI

    两当县| 丽江市| 尼木县| 大荔县| 曲靖市| 汨罗市| 宜春市| 英吉沙县| 徐汇区| 龙川县| 芮城县| 航空| 台州市| 黄龙县| 新巴尔虎右旗| 喀喇沁旗| 中宁县| 黑河市| 沙雅县| 利川市| 广东省| 甘洛县| 双江| 五家渠市| 昌吉市| 静宁县| 潞西市| 甘肃省| 丰原市| 信阳市| 高密市| 乐昌市| 上犹县| 同江市| 繁峙县| 长子县| 剑川县| 兰溪市| 墨脱县| 长岭县| 巴青县|