由于系统的磁盘容量有限,需要定时清空一个用于交换文件的目录temp
打算每一周清空一次,清空一周没有访问的文件。
自己写了一个脚本
find $Dir -atime 7 -print0 | xargs -r0 rm--
加进crontab里面,由于是系统的计划任务,需要修改/etc/crontab文件
0 0 * * 0 command
这一句表示每一周的零点执行command命令。
关于crontab的一些详细的资料,我这里摘取鸟哥的文章,来说一下:
代表意義 | 分鐘 | 小時 | 日期 | 月份 | 週 |
數字範圍 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
比較有趣的是那個『週』喔!當週為 0 或 7 時,都代表『星期天』的意思!另外,
還有一些輔助的字符,大概有底下這些:
特殊字符 | 代表意義 |
* | 代表任何時刻都接受的意思!舉例來說,上表的範例一,那個日、月、週都是 * ,
就代表著『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思! |
, | 代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:
還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用! |
- | 代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作:
仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思! |
/n | 那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:
很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思! |
几个例子:
( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
- 今天假設我有一個指令程式,名稱為: ping.sh 這個檔名!我想要讓系統每三分鐘執行這個檔案一次,
但是偏偏這個檔案會有很多的訊息顯示出來,所以我的
root 帳號每天都會收到差不多四百多封的信件,光是收信就差不多快要瘋掉了!
那麼請問應該怎麼設定比較好呢?
這個涉及命令重導向的問題,我們可以將他導入檔案或者直接丟棄!如果該訊息不重要的話,
那麼就予以丟棄,如果訊息很重要的話,才將他保留下來!假設今天這個命令不重要,
所以將他丟棄掉!因此,可以這樣寫:
*/5 * * * * root /usr/local/ping.sh > /dev/null 2>&1
- 您預計要在 2006 年的 2 月 14 日寄出一封給 kiki ,只有該年才寄出!該如何下達指令?
at 1am 2006-02-14
- 下達 crontab -e 之後,如果輸入這一行,代表什麼意思?
* 15 * * 1-5 /usr/local/bin/tea_time.sh
在每星期的 1~5 ,下午 3 點的每分鐘,共進行 60 次 /usr/local/bin/tea_time.sh 這個檔案。
要特別注意的是,每個星期 1~5 的 3 點都會進行 60 次ㄟ!很麻煩吧~是錯誤的寫法啦~
應該是要寫成:
30 15 * * 1-5 /usr/local/bin/tea_time.sh
- 我用 vi 編輯 /etc/crontab 這個檔案,我編輯的那一行是這樣的:
25 00 * * 0 /usr/local/bin/backup.sh
這一行代表的意義是什麼?
這一行代表......沒有任何意義!因為語法錯誤!您必須要瞭解,在 /etc/crontab
當中每一行都必須要有使用者才行!所以,應該要將原本那行改成:
25 00 * * 0 root /usr/local/bin/backup.sh
- 請問,您的系統每天、每週、每個月各有進行什麼工作?
因為 FC4 系統預設的例行性命令都放置在 /etc/cron.* 裡面,所以,你可以自行去:
/etc/cron.daily/, /etc/cron.week/, /etc/cron.monthly/ 這三個目錄內看一看,
就知道啦! ^_^
- 每個星期六凌晨三點去系統搜尋一下內有 SUID/SGID 的任何檔案!並將結果輸出到 /tmp/uidgid.files
vi /etc/crontab
0 3 * * 6 root find / -perm +6000 > /tmp/uidgid.files
另外,可以使用一些命令来完成删除temp目录下文件的功能,tmpwatch、tmpreaper都可以。
tmpreaper 7d $Dir
tmpreaper默认使用--atime选项,即访问时间。
--mtime修改时间。
加进crontab中,OK
阅读(992) | 评论(0) | 转发(0) |