linux是一個很能自動產生檔案的系統,日志、郵件、備份等,雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情,不用你去每天惦記著是否需要清理日志,不用每天收到硬碟空間不足的報警短信,想好好休息的話,讓我們把這個事情交給機器定時去執行吧,
1.find 對應目錄 -mtime + 天數 -name “檔案名” -exec rm -rf {} \
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的檔案洗掉,具體引數說明如下:
find:linux的查找命令,用戶查找指定條件的檔案;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標準陳述句寫法;
+30:查找30天前的檔案,這里用數字代表天數;
"*.log":希望查找的資料型別,"*.jpg"表示查找擴展名為jpg的所有檔案,"*"表示查找所有檔案,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制洗掉檔案,包括目錄;
{} \; :固定寫法,一對大括號+空格+\+;
2.計劃任務:
若嫌每次手動執行陳述句太麻煩,可以將這小陳述句寫到一個可執行shell腳本檔案中,再設定cron調度執行,那就可以讓系統自動去清理相關檔案,
2.1創建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一個可執行檔案auto-del-30-days-ago-log.sh,并分配可運行權限
2.2編輯shell腳本:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh檔案如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,保存退出(:wq),
2.3計劃任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行
輸入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh
關于crontab請參考:https://blog.csdn.net/weixin_41594007/article/details/80636390
這里的設定是每天凌晨0點10分執行auto-del-7-days-ago-log.sh檔案進行資料清理任務了,
完成以上三步,你就再也不每天惦記是否硬碟空間滿了,該清理日志檔案了,再也不會受到服務器硬碟空間不足的報警資訊了,放心的去看書喝咖啡去吧!
轉載地址:https://www.cnblogs.com/grimm/p/8794707.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/145046.html
標籤:Linux
上一篇:Nginx模塊
下一篇:linux中find命令
