1.刪除文件命令:
find 對(duì)應(yīng)目錄 -mtime +天數(shù) -name "文件名" -exec rm -rf {} \;
實(shí)例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數(shù)說明如下:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進(jìn)行清理的任意目錄;
-mtime:標(biāo)準(zhǔn)語句寫法;
+30:查找30天前的文件,這里用數(shù)字代表天數(shù);
"*.log":希望查找的數(shù)據(jù)類型,"*.jpg"表示查找擴(kuò)展名為jpg的所有文件,"*"表示查找所有文件,這個(gè)可以靈活運(yùn)用,舉一反三;
-exec:固定寫法;
rm -rf:強(qiáng)制刪除文件,包括目錄;
{} \; :固定寫法,一對(duì)大括號(hào)+空格+\+;
2.計(jì)劃任務(wù):
若嫌每次手動(dòng)執(zhí)行語句太麻煩,可以將這小語句寫到一個(gè)可執(zhí)行shell腳本文件中,再設(shè)置cron調(diào)度執(zhí)行,那就可以讓系統(tǒng)自動(dòng)去清理相關(guān)文件。
2.1創(chuàng)建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一個(gè)可執(zhí)行文件auto-del-30-days-ago-log.sh,并分配可運(yùn)行權(quán)限
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計(jì)劃任務(wù):
#crontab -e
將auto-del-30-days-ago-log.sh執(zhí)行腳本加入到系統(tǒng)計(jì)劃任務(wù),到點(diǎn)自動(dòng)執(zhí)行
輸入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
這里的設(shè)置是每天凌晨0點(diǎn)10分執(zhí)行auto-del-7-days-ago-log.sh文件進(jìn)行數(shù)據(jù)清理任務(wù)了。
完成以上三步,你就再也不每天惦記是否硬盤空間滿了,該清理日志文件了,再也不會(huì)受到服務(wù)器硬盤空間不足的報(bào)警信息了,放心的去看書喝咖啡去吧!
每次添加完任務(wù)后,一定記得重新啟動(dòng)crond服務(wù),不然不會(huì)生效
代碼如下:
service crond restart
創(chuàng)建你的第一個(gè)Shell腳本
1.寫一個(gè)腳本
a) 用touch命令創(chuàng)建一個(gè)文件:touch my_script
b) 用vim編輯器打開my_script文件:vi my_script
c) 用vim編輯器編輯my_script文件,內(nèi)容如下:
#!/bin/bash 告訴shell使用什么程序解釋腳本
#My first script
ls -l .*
2.允許Shell執(zhí)行它
chmod 755 my_script
3.執(zhí)行my_script腳本
./my_script
總結(jié)
以上所述是小編給大家介紹的Linux自動(dòng)刪除n天前日志,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!