標題已經很明顯了,就是做定時任務的!!!!
cron是系統主要的排程程序,可以在非人工干預的情況下執行作業。crontab命令允許使用者提交、編輯或刪除相應的作業。簡單來說,當我們需要讓系統執行乙個定時任務時,我們就會用到它,比如定時重啟tomcat,或者定時呼叫乙個jar包來執行某項功能等。
1、/var/spool/cron/ 這個目錄下存放的是每個使用者包括root的crontab任務,每個任務以建立者的名字命名,比如tom建的crontab任務對應的檔案就是/var/spool/cron/tom。
一般乙個使用者最多只有乙個crontab檔案。
(這個是我目前用到的最重要的檔案)
2、/etc/crontab 這個檔案負責安排由系統管理員制定的維護系統以及其他任務的crontab。
3、/etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或指令碼。
4.這些子目錄裡存放了一些指令碼,到了crontab所指定的時間點,系統就會去執行這些子目錄裡的指令碼。
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
crontab 檔案中每個條目中各個域的意義和格式:
第一列 分鐘:1——59
第二列 小時:1——23(0表示子夜)
第三列 日 :1——31
第四列 月 :1——12
第五列 星期:星期0——6(0表示星期天,1表示星期
一、以此類推)
第六列 要執行的命令
我們暫且用c1、c2、c3、c4、c5、c6代表這六列,前面五列通過組合方式來決定執行指令碼的頻率,最小頻率為每分鐘執行一次,其中cn可以用、/n、t1-t2、a,b,c四種形式來表示:
當 c1 為 * 時表示每分鐘都要執行指令碼,c2 為 * 時表示每小時都要執行程式,依次類推…..
當 c1 為 t1-t2 時表示從第 t1 分鐘到第 t2 分鐘這段時間內要執行,c2 為 t1-t2 時表示從第 t1 到第 t2 小時都要執行,依次類推….
當 c1 為 /n 時表示每 n 分鐘的時間間隔執行一次,c2 為 /n 表示每隔n小時的間隔執行一次,依次類推…..
當 c1 為 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,c2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,依次類推….
1: 59
23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null
2>&1
# 表示每天23點59分執行指令碼/home/oracle/scripts/alert_log_archive.sh
2: */5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null
2>&1
表示每5分鐘執行一次指令碼/home/oracle/scripts/monitoring_alert_log.sh
3: 0
20 * * 1-5 mail -s "**********" [email protected] < /tmp/maildata
周一到周五每天下午 20:00 寄一封信給 [email protected]
#每晚的21:30重啟apache。
#每月1、10、22日
6:10
6 * * * date
#每天早上6點10分
7:0 */2 * * * date
#每兩個小時
8:023-7/2,8 * * * date
#晚上11點到早上8點之間每兩個小時,早上8點
9:011
4 * mon-wed date
#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
10:0
41 jan * date
#1月份日早上4點
很多時候,我們計畫任務需要精確到秒來執行,根據以下方法,可以很容易地以秒執行任務。
以下方法將每10秒執行一次
# crontab -e
* * *
* * /bin/date >>/tmp/date.txt
* * *
* * sleep 10; /bin/date >>/tmp/date.txt
* * *
* * sleep 20; /bin/date >>/tmp/date.txt
* * *
* * sleep 30; /bin/date >>/tmp/date.txt
* * *
* * sleep 40; /bin/date >>/tmp/date.txt
* * *
* * sleep 50; /bin/date >>/tmp/date.txt
/var/log/資料夾下有以cron開頭的檔案,一般我現在看到的是後面加日期的那種,就是相關的log,但是我目前測試的時候有的時候沒有相關日誌,這個問題以後在解決
cat /var/log/
cron不會自動啟動,需要通過以下命令來啟動、關閉這個服務:
crond start //啟動服務
crond stop //關閉服務
crond restart //重啟服務
crond reload //重新載入配置
crontab許可權問題到/var/adm/cron/下一看,檔案cron.allow和cron.deny是否存在
用法如下:
1、如果兩個檔案都不存在,則只有root使用者才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,則只有列在cron.allow檔案裡的使用者才能使用crontab命令,如果root使用者也不在裡面,則root使用者也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,則只有列在cron.deny檔案裡面的使用者不能使用crontab命令,其它使用者都能使用。
4、如果兩個檔案都存在,則列在cron.allow檔案中而且沒有列在cron.deny中的使用者可以使用crontab,如果兩個檔案中都有同乙個使用者,
以cron.allow檔案裡面是否有該使用者為準,如果cron.allow中有該使用者,則可以使用crontab命令。
# for details see man 4 crontabs
# example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) or jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
ubuntu系統建立定時任務之crontab
cron是乙個linux定時執行工具,可以在無需人工干預的情況下執行作業。在ubuntu server 下,cron是被預設安裝並啟動的。通過 etc crontab檔案,可以看到以下內容 ununtu 通過呼叫 run parts 命令,定時執行四個目錄下的所有指令碼。1 etc cron.hou...
Liunx系統定時任務時間設定Crontab的格式
第1列分鐘1 59 第2列小時1 23 0表示子夜 第3列日1 31 第4列月1 12 第5列星期0 6 0表示星期天 第6列要執行的命令 下面是crontab的格式 分 時 日 月 星期 要執行的命令 這裡有crontab檔案條目的一些例子 30 21 usr local apache bin a...
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...