星期五, 11月 25, 2011

Find 指令教學

如果要刪除某資料夾 /oradb/oradata/arch  底下的log :

先用-ok 選項(不執行) 
find /oradb/oradata/arch -mtime +3 -regex ".*.dbf" -user oracle -type f -ok rm -f {} \;

#delete *.arc before three days ago and user ownership is belong to oracle
再用-exec 實際執行
find /oradb/oradata/arch -mtime +3 -regex ".*.dbf" -user oracle -type f -exec rm -f {} \;

-mtime +3 保留昨天前天大前天的資料

-regex .*.dbf : regular expression ,所有.dbf結尾的檔案

-user oracle : 檔案owner 屬於oracle的檔案

-type f : 檔案屬性為file

-ok : 每找到一個檔案詢問一次,測試用

-exec : 直接執行

-
0 0 * * * /script.sh
0-59 0-23 1-31 1-12 0-6
-

find $ORACLE_HOME/rdbms/audit -mtime +21 -regex ".*.aud" -user oracle -type f -exec rm -f {} \;

-mtime +7 保留七天內檔案 (如只要保留至24hr前 則用-mtime + 1)

-regex .*.dbf : regular expression ,所有.dbf結尾的檔案

-user oracle : 檔案owner 屬於oracle的檔案

-type f : 檔案屬性為file

-ok : 每找到一個檔案詢問一次,測試用

-exec : 直接執行

-
-在比較舊的unix OS ,  find command  , 無法用regular expression
bash-2.05# cat del_aud.sh
find /oracle/rdbms/audit/ aud -mtime +7 -user oracle -type f -exec rm -f {} \;
-
刪除*.dmp , *.log
-找出哪些檔案裡面含有"test"的內容
find /wls11g  -print |xargs grep "test"


find /oracle/rdbms/audit \(-name '*.dmp' -o -name '*.log' \) -mtime 3 -type f -user oracle -exec rm {} \;

-
找出哪些檔案大小超過10M
#20480kblock (512byte/block) = 10MB
find / -type f -size +20480k  -exec ls -l {} \; | awk '{ print $9 "  " $5/1024/1024 " MB"  }'

@solaris OS
find / -type f -size +20480k  -exec ls -lh {} \;


這指令可以找出在 有那些檔案 size > 10MB 的檔案,並搬移到old 資料夾

-trc 檔案搬移之script
mkdir ./old

days="+3"
find ./ -type f -name '*.trc' -mtime $days | \
while read file
do
           mv $file ./old/.
done

#找出某目錄下所有的symbolic link  (包含sub-dir)
find ./ -type l -exec ls -l {} \;

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...