工作中常用到的,都是從網上蒐集的,記錄一下方便查找
語句寫法:
find 對應目錄-mtime +天數-name “文件名” -exec rm -rf {} ;
例1:
find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} ;
將/usr/local/backups目錄下所有10天前帶”.”的天前帶”.”的天前帶”。檔案刪除
find:linux的查找指令,使用者尋找指定條件的檔案
/usr/local/backups:想要進行清理的任意目錄
-mtime:標準語句寫法
+10:找出10天前的文件,這裡用數字代表天數,+30表示查找30天前的文件
“*.*”:希望查找的數據類型,”*.jpg”表示查找擴展名為jpg的所有文件,”*”表示查找所有文件,這個可以靈活運用,舉一反三
-exec:固定寫法
rm -rf:強制刪除文件,包括目錄
{} ; :固定寫法,一對大括號+空格++;
例2 :
1.#touch /usr/local/bin/clear
#chmod 777 clear
新建一個可執行檔clear
2.vi clear
# find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} ;ok,儲存退出3.#crontab -e
將clear檔案加入到系統計畫任務,到點自動執行
使用者所建立的Crontabs中,其檔案名稱與使用者名稱一致。
它的格式共分為六段,前五段為時間設定段,第六段為所要執行的命令段,
格式如下:* * * * *
23次31
第四段
代表月份
1—12
第五段
代表星期幾,0代表星期日
0—6
名稱:25
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
說明:crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。 -u user 是指設定指定 user 的時間表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時間表。如果不使用 -u user 的話,就是表示設定自己的時間表。
餐數:-e : 執行文字編輯器來設定時程表,內定的文字編輯器是VI,如果你想用別的文字編輯器,則請先設定VISUAL 環境變數來指定使用那個文字編輯器(比如說setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時程表的格式如下:
f1 f2 f3 f4 f5 program
其中f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾天,f4 表示月份,f5 表示一個星期中的第幾天。 program 表示要執行的程式。
當f1 為* 時表示每分鐘都要執行program,f2 為* 時表示每小時都要執行程序,其馀類推
當f1 為a-b 時表示從第a 分鐘到第b 分鐘這段時間內要執行,f2 為a-b 時表示從第a 到第b 小時都要執行,其馀類推
當f1 為*/n 時表示每n 分鐘個時間間隔執行一次,f2 為*/n 表示每n 小時個時間間隔執行一次,其馀類推
當f1 為a, b, c,… 表示第a, b, c,… 分鐘要執行,f2 為a, b, c,… 表示第a, b, c…個小時要執行,其馀類推
使用者也可以將所有的設定先存放在檔案file 中,用crontab file 的方式來設定時程表。
範例:
0 7 * * * /bin/ls
在12 月內, 每天的早上6 點到12 點中,每隔20分鐘執行一次/usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
週一到週五每天下午5:00 寄一封信給 alex@domain.name :
0 17 * * 1-5 mail -s “hi” alex@domain.name /dev/null 2>&1 即可
例:若使用者的Crontab檔案的內容為:29 19 * * * echo its dinner time,則系統每天的19:29顯示'its dinner time'
範例(建立一個cron全過程,每分鐘都會在test.txt裡輸入當前時間):
1. 以一般使用者登入linux系統(我用的是CentOS4.1)
2. $crontab –e
說明:系統預設的編輯器是VIM,如果不是請加上以下shell:
$
$export EDITOR
3. 輸入」*/1 * * * * date >> $HOME/test.txt”,save and exit VIM
4. $su rootin5. d
6. ./crond restart
下面看幾個特定的例子:
● 0 */2 * * * /sbin/service httpd restart 意思是每兩個小時重啟一次
7 * * * /sbin/service sshd start 意思是每天7:50開啟ssh服務● 50 22 * * * /sbin/service ssss stop 意思是每天22:50關閉ssh服務hd stop 意思是每天22:50關閉ssh服務hd 0 0 1,15 * * fsck /home 每月1號和15號檢查/home 磁碟● 1 * * * * /home/bruce/backup 每小時的第一分執行/home/bruce/backup這個檔案● 00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} ; 每週一至週五3點鐘,在目錄/home中,查找文件名為*.xxx的文件,並刪除4天前的文件。● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30執行一次ls指令