linux定時刪除
1.刪除文件命令:x0dx0afind 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;x0dx0a實例命令:x0dx0afind /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;x0dx0a說明:x0dx0a將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數說明如下:x0dx0afind:linux的查找命令,用戶查找指定條件的文件;x0dx0a/opt/soft/log/:想要進行清理的任意目錄;x0dx0a-mtime:標准語句寫法;x0dx0a+30:查找30天前的文件,這里用數字代表天數;x0dx0a"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;x0dx0a-exec:固定寫法;x0dx0arm -rf:強制刪除文件,包括目錄;x0dx0a{} \; :固定寫法,一對大括弧+空格+\+; x0dx0ax0dx0a2.計劃任務:x0dx0a若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本文件中,再設置cron調度執行,那就可以讓系統自動去清理相關文件。x0dx0ax0dx0a2.1創建shell:x0dx0atouch /opt/soft/bin/auto-del-30-days-ago-log.shx0dx0achmod +x auto-del-30-days-ago-log.shx0dx0a新建一個可執行文件auto-del-30-days-ago-log.sh,並分配可運行許可權x0dx0ax0dx0a2.2編輯shell腳本:x0dx0avi auto-del-30-days-ago-log.shx0dx0a編輯auto-del-30-days-ago-log.sh文件如下:x0dx0a#!/bin/shx0dx0afind /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;x0dx0aok,保存退出(:wq)。x0dx0ax0dx0a2.3計劃任務:x0dx0a#crontab -ex0dx0a將auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行x0dx0a輸入:x0dx0a10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1x0dx0a這里的設置是每天凌晨0點10分執行auto-del-7-days-ago-log.sh文件進行數據清理任務了。
⑵ 如何操作Linux 定時刪除指定目下N天前的文件
* 6 * * * find /root/home/zhang/* ctime 1 -exec rm -rf {} \;
表示每天早上六點刪除/root/home/zhang目錄下一天前創建的所有文件,不刪除文件夾zhang,如果這個文件夾也要刪除的話用 * 6 * * * find /root/home/zhang ctime 1 -exec rm -rf {} \;
* 6 * * * 第一個*號表示時間中的 分鍾 取值范圍:0-59
第二個*號表示時間中的 小時 取值范圍:0-23
第三個*號表示一個月中的第幾天,取值范圍:1-31
第四個*號表示一年中的第幾個月,取值范圍:1-12
第五個*號表示一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天
ctime 表示創建時間,1 表示一天前,其實Linux中不存在文件創建時間,只有訪問時間(atime)、修改時間(mtime)、狀態改動時間(ctime)
可以通過命令 stat + 文件路徑 查看時間
也可通過命令 touch -t 201212212359 aa (建立文件aa,時間是2012年12月21日23時59分)修改時間
⑶ Linux 定時刪除文件夾或文件
給你個思路,不懂問我,如果想要我幫你寫出來,你可以加點分啊
查找半年的文件可以用find命令
find
的-mtime
按更改時間
find
.
-mtime
-5
-print
-表示在5天之內更改過的
find
.
-mtime
+5
-print
+表示在5天之前更改過的
每周日刪除可以用到cronta(具體使用方法請網路)
無法是每個周日腳本運行一次,cd到指定文件夾,利用find命令找到對應的文件刪除就ok了
⑷ linux定時刪除一個目錄的腳本
可以使用find的 ctime 選項,
ctime的意思是最後修改的時間 +3 表示三天前,也就是在 /backup_100 目錄里 找到三天前的符合 abc*的文件及目錄並刪除。
find /backup_100 -name "abc*" -ctime +3 -exec rm {} \;
如果每天備份多次,
可以使用 NUM=`ls|wc -l`;DEL_NUM=$(($NUM-3)); for i in `ls -tr|head -$DEL_NUM`;do rm -rf $i;done
這樣,首先判斷當前備份了$NUM次,也就是/backup/abcxxx里有多少個文件夾,
然後NUM-3就是需要刪除的文件夾的個數,
然後使用循環,
ls -tr|head -$DEL_NUM 這樣通過按時間升序排列取前$DEL_NUM個目錄名並依次刪除,最後就只剩下了最新的三個目錄了。
然後把這樣的腳本添加到你的自動備份腳本的最後面就可以了
⑸ linux定時刪除前幾天日誌的定時任務
1. shell腳本文件dellog.sh
#!/bin/sh
echo "開始刪除額度系統前一天日誌" >> /app/removelog.log
time=`date +%T`
echo 該任務執行時間:`date +%Y-%m-%d` ${time} >> /app/removelog.log
#構造查詢日誌字元串
beginreg=`date -d "1 day ago" +%Y-%m-%d`
finalstr="*"${beginreg}"*.log"
echo "刪除日誌清單列表:" >> /app/removelog.log
find /app/ -name "${finalstr}" >> /app/removelog.log
#刪除昨天的日誌
find /app/ -name "${finalstr}" -exec rm -rf {} \;
echo "----------刪除成功!-----------" >> /app/removelog.log
2.刪除前一天的日誌.具體還可以設置刪除什麼時候的日誌.
用crontab -e命令編輯linux定時器.
⑹ linux 下如何編寫定時刪除某目錄下文件的腳本
自己編寫crontab設定計劃任務就是了,
那個服務就是做這些定時的,自動化的工作用的。要寫什麼腳本的,一個命令搞定。
給你個手冊頁自己看吧。
補充回答:
運行這個命令:
crontab
-e
此命令將打開一個文本編輯器以添加新任務。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用對應的文本編輯器命令保存退出(vi編輯器是按esc後打:wq)
如果你對這種方式不熟悉,也可以直接改/etc/crontab,我看到你是要刪除root文件夾內的目錄,假設你有root許可權(因為/etc/crontab所有者是root,並且只有以root身份執行刪除命令才能刪除root
home內的文件),用以下命令打開此文件:
vi
/etc/crontab
將游標移動至最後一行,按o鍵新開一行輸入以下內容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
給你解釋下此行的含義吧,前五個以4個空格分隔開的值依次表示:分、時、日、月、周,如果取所有值就是打*號,如果你想周期性的運行一個任務,crontab也接受范圍指定,比如說一天中的早8點到晚6點每隔一小時(就是每兩小時,將會在8,10,12,14,16,18執行)執行你這個刪除命令這樣寫:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一個欄位是分鍾,取值范圍:0-59
第二個欄位是小時。取值范圍:0-23
第三個欄位是一個月中的第幾天,取值范圍:1-31
第四個欄位是一年中的第幾個月,取值范圍:1-12
最後一個欄位是一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天。
下一個欄位是執行該命令的用戶身份,這里是root用戶,最後一個欄位就是定時運行的命令。
⑺ linux 定時任務,壓縮 日誌,並刪除掉 指定日期之前的 日誌
sh文件
只要定時任務中添加即可,注意 要是同時運行 ,多個腳本的壓縮命令。 不要在一個時間 進行 ,會導致 壓縮失敗
⑻ Linux如何使用命令定時刪除過期文件
在管理Linux下的文件時,我們通常會有定時刪除過期文件的這個需求。比如定時刪除超過指定時間的日誌文件,不然時長越久,你的日誌文件佔用的空間就越大,那離爆磁碟不遠了,還有也解決網站方便的需求,比如我們建立的淘寶客api的程序,為了提高商品頁的訪問速度,我們需要進行關鍵數據的緩存,也需要定時刪除過期的緩存文件,如果是使用PHP程序掃描刪除,那將得不償失。那麼如何在Linux下定時刪除過期文件?這里小編簡單介紹下,方便需要的朋友。 在linux下刪除過期文件,很簡單,用如下命令: 復制代碼代碼如下: find /var/www/ -type f -mtime +30 -exec rm -f '{} ;' 以上命令刪除30天以前的過期文件。 命令說明: /var/www/是查找文件的路徑。 -type f是指定文件類型為普通文件。 -mtime +30是指修改時間距離現在30天的文件。 -exec rm -f指執行刪除匹配出來的文件並且不提示,有的系統需要帶單引號,有的不需要。 將以上命令,添加到crontab中,即可實現定期刪除了。 比如,每天的1點30分鍾實現刪除,可以這樣: 復制代碼代碼如下: #crontab -e 30 1 * * * find /var/www/ -type f -mtime +30 -exec rm -f '{} ;'
⑼ Linux 定時刪除文件夾或文件
給個思路:
編寫自動刪除文件的腳本,關鍵部分是使用find命令查找到符合條件的文件並將其刪除;
加入crontab,每天23:00運行腳本
PS: 如果刪除的文件沒有備份或者對應路徑下有其他重要文件,則不建議這樣做,畢竟誰都不敢保證自動運行的東西不會抽風……自己考慮下要不要用吧
⑽ Linux定時刪除日誌文件/文件夾
1,新建腳本文件
touch /export/Shell/auto-del-log.sh
2,修改腳本文件許可權
chmod +x /export/Shell/auto-del-log.sh
3,腳本文件執行內容
#!/bin/sh
find /export/Instances/pplanT.jd.local/server1/logs -name "$(date "+%Y").*" -exec rm -rf {} \;
#!/bin/sh
find /export/Instances/pplanT.jd.local/server1/logs/* -type d -exec rm -rf {} \;
4,定時執行
crontab -e
*/1 * * * * sh /export/Shell/auto-del-log.sh once > /dev/null 2>&1 &
crontab -l
重載定時配置:service crond reload
重啟定時服務:service crond restart