需求
某個伺服器的日志檔案随着時間的增長越來越多,我不想自己一個個的删除,但是不删除的話,會很麻煩,萬一因為日志檔案導緻記憶體滿了就麻煩了!
實作步驟
1、寫好實作的腳本
我要查找>200M的日志檔案
find / -type f -size +200M -name "*.log"
2、删除腳本的指令
進入目錄 cd /dev
建立檔案夾 mkdir sh
進入檔案夾 cd sh
建立腳本檔案 touch delete_log.sh
編輯腳本檔案 vi delete_log.sh
内容如下
#!/bin/bash
for name in $(find / -type f -size +100M -name "*.log");do
rm -rf ${name}
done
在執行腳本之前,我們要看看是否有大小大于100M的日志檔案
sudo find / -type f -size +100M -name "*.log"
有三個符合的日志檔案;
現在我建立一個定時任務
這個是編輯定時任務
crontab -e
59 13 * * * /dev/sh/delete_log.sh
目前是13:58 我希望13:59執行一次
等一下把
判斷腳本是否有效,就是檢視日志檔案,剛才符合條件的有三個,如果13:59之後,三個變成0個,那麼說明腳本生效
這裡有一個插曲,怎麼也不起作用,後來發現執行./delete_log.sh
-bash: ./log.sh: Permission denied
我以為是名稱的問題,把delete_log.sh改成log.sh也不行,後來發現執行方式不對
sh ./log.sh
現在sh腳本起到效果了,哈哈哈哈哈