Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5761031
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类:

2006-06-08 18:22:48

由于系统的磁盘容量有限,需要定时清空一个用于交换文件的目录temp

打算每一周清空一次,清空一周没有访问的文件。
自己写了一个脚本
find $Dir -atime 7 -print0 | xargs -r0 rm--
加进crontab里面,由于是系统的计划任务,需要修改/etc/crontab文件
0 0 * * 0 command
这一句表示每一周的零点执行command命令。
关于crontab的一些详细的资料,我这里摘取鸟哥的文章,来说一下:


代表意義分鐘小時日期月份
數字範圍0-590-231-311-120-7
比較有趣的是那個『週』喔!當週為 0 或 7 時,都代表『星期天』的意思!另外, 還有一些輔助的字符,大概有底下這些:

特殊字符代表意義
*代表任何時刻都接受的意思!舉例來說,上表的範例一,那個日、月、週都是 * , 就代表著『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思!
,代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:
    0 3,6 * * * command
還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用!
-代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作:
    20 8-12 * * * command
仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思!
/n那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:
    */5 * * * * command
很簡單吧!用 * 與 /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) |
0

上一篇:sed的另一个问题

下一篇:"device is busy"问题

给主人留下些什么吧!~~