linux cron 學習

$ crontab --help

Options:
-u <user> #指定用戶編輯或查看其定時任務,只有 root 用戶能使用
-e #編輯用戶的定時任務內容
-l #列出用戶的定時任務內容
-r #刪除用戶的定時任務內容
-i #刪除前確認,意義就是是否確認刪除。一個確認的過程
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging

/var/spool/cron/     #目錄裏存放的是每個用戶的 crontab 定時任務,以創建者的名字命名  

/etc/crontab #文件負責調度各種管理和維護任務
/etc/cron.d/ #目錄用來存放任何要執行的 crontab 文件或腳本
/etc/cron.deny #文件裏的用戶不允許編輯或查看 crontab 定時任務
/etc/cron.allow #僅允許文件裏的用戶編輯或查看 crontab 定時任務

# 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

*:   表示分鐘,範圍(0-59),* 代表每分鐘,*/5 代表每 5 分鐘, 1,3,5,7 代表第 1,3,5,7 分鐘的時候
*:   表示小時,範圍(0-23)
*:   表示日期,範圍(1-31)
*:   表示月份,範圍(1-12)
*:   表示周,範圍(0-6)星期中的天(day of week),取值 0-6,或採用星期單詞的英文簡寫

星號(*):代表全部的值,例如 day of month 字段如果是星號,則表示在滿足其它字段的制約條件後每天執行該任務
逗號(,):可以用逗號分隔開的值指定一個列表,例如,"1,2,5,7,8,9"
中槓(-):可以中槓表示一個範圍,例如 "2-6" 表示"2,3,4,5,6"
正斜線(/):可以用正斜線指定時間的間隔頻率,例如minute字段,"0-30/5"表示在0-30的範圍內每5分鐘執行一次;"*/5"表示每十分鐘執行一次。

command: 表示要執行的命令

示例

每隔 30 分鐘執行一次

*/30 * * * * /usr/bin/echo "test" >> /tmp/test.txt

每天早上 9 點執行一次

0 9 * * * /usr/bin/echo "It's nine o 'clock" >> /tmp/test.txt

每週六、週日 的 1 : 10 執行一次

10 1 * * 6,0 /usr/bin/echo "test" >> /tmp/test.txt

每月 1、10、20 日的 18:00 執行一次

00 18 1,10,20 * * /usr/bin/echo "test" >> /tmp/test.txt

每 1 小時執行一次

0 */1 * * * /usr/bin/echo "test" >> /tmp/test.txt

晚上 11 點到早上 8 點之間每兩個小時執行一次

0 23-7/2,8 * * * /usr/bin/echo "test" >> /tmp/test.txt

晚上11點到早上7點之間執行一次

  • 23-7/1 * * * /usr/bin/echo "test" >> /tmp/test.txt

每個月的 4號 和每個星期的週一到週三早上11` 點

0 11 4 * 1-3 command line

(3)一些Crontab定時任務例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart  #每晚的21:30 重啓apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart  #每月1、10、22日的4 : 45重啓apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart  #每週六、週日的1 : 10重啓apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart  #每天18 : 00至23 : 00之間每隔30分鐘重啓apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart  #每星期六的11 : 00 pm重啓apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart  #晚上11點到早上7點之間,每隔一小時重啓apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart  #每一小時重啓apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart  #每月的4號與每週一到週三的11點重啓apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart  #一月一號的4點重啓apache
 
*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org  #每半小時同步一下時間
0 */2 * * * /sbin/service httpd restart  #每兩個小時重啓一次apache 
50 7 * * * /sbin/service sshd start  #每天7:50開啓ssh服務 
50 22 * * * /sbin/service sshd stop  #每天22:50關閉ssh服務 
0 0 1,15 * * fsck /home  #每月1號和15號檢查/home 磁盤 
1 * * * * /home/bruce/backup  #每小時的第一分執行 /home/bruce/backup這個文件 
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  #每週一至週五3點鐘,在目錄/home中,查找文件名爲*.xxx的文件,並刪除4天前的文件。
30 6 */10 * * ls  #每月的1、11、21、31日是的6:30執行一次ls命令
	
https://blog.csdn.net/qq_51514930/article/details/124269555

https://blog.kjarbo.com/archives/856.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章