方法一
其實沒有必要寫shell腳本,簡單一句話放在系統定時任務裏就行了。
比如你的日誌文件名叫a.log。路徑爲/tmp/a.log;
那麼你可以寫個定時任務,這樣做:crontab -e 進入定時任務器,然後把下面這段寫到裏面
00 02 * * * echo " " >/tmp/a.log
然後保存退出就可以了。這段內容意思是,每天凌晨2點自動清空a.log內容。你也可以自己定義多久清一次。比如想10分鐘清一次,就這麼寫*/10 * * * * echo " " >/tmp/a.log。
方法二
1、編寫腳本
假設在根目錄下編寫腳本auto_clear.sh,腳本內容:
#!/bin/bash
#描述:清除日誌
file=/auto_clear.sh
cat /dev/null > $file
2、讓腳本定時執行
在當前用戶下,開始編輯定時任務
crontab -e
按鍵 i 進入編輯模式
輸入下述命令每天凌晨一點執行
00 1 * * * sh /auto_clear.sh
然後按鍵 Esc 退出編輯模式,再輸入 wq 保存退出即可
備註:
編輯好定時任務文本後最好重啓下服務
[local_user lwp]#service crond restart
時間格式
分鐘 小時 日期 月份 周 命令
數字範圍 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log
特殊字符的含義
*(星號) 代表任何時刻都接受。
,(逗號) 代表分隔時段的意思。
-(減號) 代表一段時間範圍內。
/n(斜線) 那個 n 代表數字,每隔 n 單位間隔。
eg1: 每年的五月一日 10:5 執行一次
5 10 1 5 * command(要是執行網址(curl "http://網址"),或者執行其它的直接寫路徑)
eg2: 每天的三點,六點各執行一次
00 3,6 * * * command
eg3: 每天的8:20, 9:20,10:20,11:20各執行一次
20 8-11 * * * command
eg4: 每五分鐘執行一次
*/5 * * * * command
eg5: 每週一十點執行一次
00 10 * * 1 command