場景描述:
如下圖所示:在日誌目錄下有以日期命令的目錄,目錄裡面有目錄與log日誌檔案。因為空間報警,所以需要刪除前面的資料。
解決方法:
當然我們可以使用rm命令乙個個地刪除,考濾運維的方便,我們寫個指令碼來實現最好了。如果是linux平台的話,其實很簡單:
find?~/log?-maxdepth?1?-mindepth?1?-type?d?-mtime?+149?|?xargs?rm?-rf用上面的命令就可以了。但是在aix平台下的find命令就不那麼友好了,因為它沒有 maxdepth 、mindepth引數。在找了幾圈後發現可以用如下的命令來解決:
#刪除~/log/目錄下日期目錄,保留365天資料
find?~/log/*?-prune?-type?d?-name?"20*"?-mtime?+365?-print?|?xargs?rm?-rf?
##?上面的命令也等同於:
find?~/log/?!?-name?"."?-prune?-type?-d?-name?"20*"?-mtime?+?365?-print?|?xargs?rm?-rf
裡面關鍵說明:
1、prune這個引數,它的含義是 當遇到目錄時,不進行遞迴查詢。
2、對於開始目錄的限定,「./*」與「./」與「./ -name "."」與「./.」這幾個目錄是不一樣的,"./*"是從當前目錄下的所有的目錄與檔案開始;而「./」從當前目錄開始;「./ -name "."」則是除了./目錄以為的所有內容,等同「./*」;「./.」還是當前目錄。
最後把上面的語句放到crontab裡就可以用定時任務天天刪數了。
參考:?
1、stackovernet上的問答《equivalent maxdepth for find in aix》
2、my熊貓眼 寫的《find命令-prune 引數引起的思考》
AIX下crontab不執行
aix的crontab不執行.有一台p570,aix5.3 的crontab非 常的怪 需要每週重啟一次機器,要不然所有使用者的cron 任務就 根本不執 行.使用者的環境變數沒有問題,若reboot後,不 做任何修改配 置,系統會自動去執行cr on,但3 5天後,系統又莫明 其妙的不執行cron...
巧用find命令刪除Linux下亂碼檔案及資料夾
在linux中,每個檔案都有乙個節點編號,我們可以利用此來搞定亂碼,首先檢視亂碼檔案的節點號 ls i 22413314 12 前面的就是節點號了,接下來使用find命令查詢並且刪除 find inum 22413314 delete inum指根據節點號查詢 delete顧名思義就是刪除操作了。這...
巧用find命令刪除Linux下亂碼檔案及資料夾
在linux中,每個檔案都有乙個節點編號,我們可以利用此來搞定亂碼,首先檢視亂碼檔案的節點號 ls i 22413314 12 前面的就是節點號了,接下來使用find命令查詢並且刪除 find inum 22413314 delete inum指根據節點號查詢 delete顧名思義就是刪除操作了。這...