1. 程式人生 > 其它 >ubuntu啟動crontab日誌生成

ubuntu啟動crontab日誌生成

前言:

crontab作為Ubuntu中自動執行指令的工具, 幾乎說是不可避免的會使用到

但其中的程式碼是否成功按照所期望的設定成功執行, 需要通過日誌檢視定位

Ubuntu中預設是沒有開啟crontab的日誌輸出的, 即在/var/log/目錄下沒有cron.log日誌檔案

啟動crontab日誌生成:

  1. 修改rsyslog:

    這裡使用vim編輯器

    sudo vim /etc/rsyslog.d/50-default.conf
    

    找到此條:

    cron.*              /var/log/cron.log #將cron前面的註釋符去掉 
    

    image-20210223131027078

  2. 重啟rsyslog & cron

    sudo  service
    rsyslog restart sudo service cron restart
  3. 進入日誌目錄檢視日誌:

    cd /var/log
    

    此時目錄中以存在cron.log:

    image-20210223131235234

No MTA installed, discarding output:

檢視日誌發現一個問題:

日誌中並沒有指令輸出, 而是

No MTA installed, discarding output

參考資料:

https://shipengliang.com/software-exp/no-mta-installed-discarding-output%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95.html

這裡是由於crontab執行指令碼時會以郵件的形式傳送至指定郵箱, 而並沒有直接輸出至日誌中
如果沒有安裝郵箱伺服器, 則就會顯示這條提示

解決的方法是在每條指令的末尾新增輸出重定向並加個2>&1, 如:

原指令 > /var/log/cron_output.log 2>&1

這樣就能在另外的檔案中獲取到指令輸出