Linux裡cron的使用方法 zt

2021-04-27 18:59:27 字數 4240 閱讀 9347

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帳號和目錄 目錄是為了限制使用...