linux裡cron的使用方法(zt)
cron的相關配置檔案:
/etc/crontab 記錄環境變數(shell,path,mailto,home)和系統預先制定的cron任務(cron.hourly/daily/weekly/monthly). 當cron任務無法執行時, 可以檢查一下這裡的環境變數和命令路徑.
/etc/cron.deny 被記錄在此的使用者不能提交cron任務.
/etc/cron.allow 被記錄在此的使用者可以提交cron任務. 這兩個檔案不存在時, 只有root有提交cron任務的許可權.
/etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/, /cron.monthly/ 存放系統預先制定的cron任務.
/var/spool/cron/ 所有使用者的cron任務, 與使用者名稱相對應.
/var/log/cron cron的日誌資訊.
cron的配置檔案稱為crontab, 是"cron table"的簡寫. cron在三個地方查詢crontab檔案: /etc/crontab, /etc/cron.d/, /var/spool/cron.
crontab檔案的格式:
minute hour day month weekday [username] command
minute 分鐘 0-59
hour 小時 0-23
day 日期 1-31
month 月份 1-12
weekday 星期幾 0-6(0代表星期天)
這些和時間相關的字段由空格分隔, 每個字段必須指定乙個值:
*(星號), 意味著所有的允許值;
乙個整數, 精確匹配;
兩個被破折號分開的整數, 表示範圍;
多個被逗號分開的整數或範圍, 表示匹配列出的這些值;
/n 表示步長, 範圍/n
其中"天"由day和weekday確定, 都匹配;
其中: 星號可以匹配所有字元; 乙個整數必須精確匹配; 用短劃線隔開的兩個整數, 他們匹配的是值的範圍;
用逗號隔開的整數或者範圍, 匹配任何被列到的值.
例如:
45 10 * * 1-5 上午10:45從周一到周五
不要把星號放在第乙個字段, 除非你想這個命令每分鐘都執行.
weekday與day若同時指定, 則滿足二者之一即被執行.
例如:
0,30 * 13 * 5 星期五每半小時, 以及每月13號每半小時
30 2 * * 1 (cd /users/joe/project; make)
20 1 * * * find /tmp -atime +3 -exec rm -f ';'
每天凌晨1:20刪除/tmp目錄中的3天內未被訪問的所有檔案.
55 23 * * 0-3, 6 /staff/trent/bin/acct-script
除了星期四, 五外每天23:55 執行acct-script.
crontab命令:
crontab [-u user] [-l|-r|-e]
-l 列出使用者的cron任務
-r 刪除cron任務
-e 編輯cron任務
-i 刪除前提示
注: 不帶引數的crontab命令將試圖從標準輸入讀取crontab的內容. 在這個模式下, 如用control-d來退出的話, 會刪除整個crontab內容. 應使用control-c來退出.
crontab [-u user] filename 從檔案匯入crontab任務.
command就是要執行的sh命令, 可以是任意有效的shell命令, 並且不應該加引號. cron 認為command一直是到這一行的末尾, 它可以包含空格或製表符.
cron使用百分號(%)來表示command欄位的換行. 只有第乙個百分號前的文字才會包含在實際命令中, 其餘行則作為該命令的標準輸入.
例如:
echo the time is now `date` > /dev/console
write garth %hi garth % remember to get a job.
cd /etc; /bin/mail -s "password file" evi < passwd
管理crontab:
crontab filename 將filename安裝為crontab檔案, 它將替代crontab檔案以前版本.
crontab -e 檢出乙個crontab的乙個副本, 用編輯器開啟, 然後將其重新提交給crontab目錄(/var/spool/cron/'username').
crontab -l 將crontab中內容列在標準輸出上.
crontab -r 刪除crontab.
不帶命令列的crontab將試圖從他自己的標準輸出中讀取crontab內容. 如果意外進入, 不要試圖使用ctrl-d退出, 那樣會刪除整個crontab內容, 而要使用ctrl-c退出.
對於root, 有這樣的命令: crontab -u loki -r 刪除屬於loki的crontab檔案.
控制使用 crontab 命令:
/etc/cron.allow, /etc/cron.deny檔案控制哪乙個使用者可以使用 crontab 命令. root 使用者可以建立, 編輯或刪除這些檔案. 這些檔案的條目是使用者登入名稱, 每個名稱佔一行. 如果登入標識和多個的登入名稱相關聯, 這個crontab 命令採用第乙個在 /etc/passwd 檔案中的登入名稱, 而不管當前實際使用哪乙個登入名稱. 而且, 要允許使用者啟動 cron 作業, 應該使用 chuser 命令將 /etc/security/user 檔案中的守護程序屬性設定為 true.
以下關於 cron.allow 檔案的乙個示例:
root
nick
deesarah
如果 cron.allow 檔案存在, 只有在檔案中出現其登入名稱的使用者可以使用 crontab 命令. root 使用者的登入名必須出現在 cron.allow 檔案中, 如果這個檔案存在的話. 系統管理員可以明確的停止乙個使用者, 通過使用 crontab 命令, 同時在cron.deny 檔案中列出使用者的登入名. 如果只有 cron.deny 檔案存在, 任一名稱沒有出現在這個檔案中的使用者可以使用 crontab 命令.
如果以下乙個條件成立, 使用者將不能使用 crontab 命令:
cron.allow 檔案和 cron.deny 檔案不存在(只允許 root 使用者).
cron.allow 檔案存在, 但使用者的登入名並不列在其中.
cron.deny 檔案存在, 並且使用者的登入名列在其中.
預設情況下, 所有使用者都可向cron提交crontab檔案. 其預設的使用者配置檔案是空的/etc/cron.deny檔案. 如果沒有這兩個檔案的話, 只有root才能提交crontab.
重要的是, 訪問控制是由crontab而不是cron來實現的. 如果某使用者可通過其他方式把crontab秘密轉移到適合目錄中去, 那麼cron就會盲目地執行該檔案中的命令.
linux預安裝好的crontab項主要在/etc/cron.d下, 如果想使某項不起作用, 可以注釋掉.
另外, 還有/etc/cron.daily 每天執行一次的指令碼; /etc/weekly 每週執行一次的指令碼.
crond的管理:
service crond
/etc/init.d/crond
常見用途:
清理檔案系統:
find / -xdev -name core -atime +7 -exec rm -f ';'
刪除一星期都沒訪問過的core映象檔案(程式崩潰時產生的映象檔案).
find / -xdev -atime +3 '(' -name '#*' -o -name '#*' -o -name '*.ckp' -o -name '*~' -o -name '.nfs~' ')' -exec rm -f ';'
刪除以 #, .#或nfs開頭的, 或者是以 ~ 以及.ckp結尾的檔案, 還有3天未被訪問的檔案, 不同型別的臨時檔案和編輯器的備份檔案, 都是這一模式的典型代表.
cd /tmp ; find . ! -name . ! -name lost+found -type d -mtime +3 -exec /bin/rm -rf ';'
遞迴刪除/tmp下的72小時未修改的所有子目錄. /tmp下的普通檔案會在系統啟動時被系統啟動指令碼刪除, 但有些系統不會刪除目錄.
--end--
Redhat Linux裡cron的使用方法
在redhat etc crontab 記錄環境變數 shell,path,mailto,home 和系統預先制定的cron任務 cron.hourly daily weekly monthly 當cron任務無法執行時,可以檢查一下這裡的環境變數和命令路徑 etc cron.deny 被記錄在此的...
LINUX的vim使用方法
linux伺服器用vim來編輯配置檔案和程式設計還是很不錯的,現在已經習慣了這種文字編輯方式.一般拿到新的伺服器都需要自己配置一下vim的環境,要不覺得總是不是很順手.vim初始配置檔案位置 vimrc 一般vim會有乙個預設的配置檔案樣本.我一般會cp到使用者目錄中,然後再修改.cp usr sh...
linux的ftp使用方法
linux下常用ftp命令 1.連線ftp伺服器 以下是在伺服器為ubuntu環境下操作 1 首先需要安裝vsftp軟體,已經安裝的可跳過。1.更新軟體源 apt get update 2.安裝vsftp apt get install vsftpd y 3.新增ftp帳號和目錄 目錄是為了限制使用...