crontab 定時刪除幾天以前的日誌(各種踩坑)

網上關於刪除多少天以前的日誌,日誌文件滿多少的日誌有很多了。

(可以參考:https://www.cnblogs.com/grimm/p/8794707.html

但是我在刪除的時候,使用sh 執行腳本都是正常的,但是

使用crontab -e 編輯後,一直沒有生效。

查看:tail -f /var/log/cron   

顯示:

(root) CMD (/opt/app/auto-del-15-days-ago-log.sh )
(root) MAIL (mailed 103 bytes of output but got status 0x004b#012)

我的crontab -e 本來是:

00 22 * * * sh opt/app/auto-del-15-days-ago-log.sh

後來改成:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
HOME=/

00 22 * * * sh opt/app/auto-del-15-days-ago-log.sh

後就可以了


刪除15天以前的日誌:auto-del-15-days-ago-log.sh

#!/bin/sh
find /opt/logs/sc_resource -mtime +15 -name "*.log" -exec rm -rf {} \;

crontab 的常見命令:

crontab -l  列出當前登錄用戶所有定時任務
crontab -l -u XXX  列出XXX用戶的所有定時任務,如有沒有會提示 no crontab for XXX
crontab -e  編輯當前用戶的定時任務
crontab -r  刪除當前用戶的定時任務
 
查看crontab的執行情況:  tail -f /var/log/cron
查看crontab的執行log:   vim /var/spool/mail/root

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章