fdbs avatar

Crontab定時執行任務的20個例子

🕐 by fdbs

Linux crontab和Windows task schedules非常的相似。 Crontab可以用來在系統中定期的執行任務。 比如:寫了一個爬蟲需要每天早上八點執行,就可以用到Crontab; 安裝的Tomcat伺服器需要每天淩晨重啟一次,也可以使用到Crontab。 總之,幾乎所有的定時任務,我們都可以通過Crontab這個工具來完成。

安裝


1
yum install cronie`

Crontab在Linux上的結構


img

crontab結構.png

從左到右依次為: [分鐘] [小時] [每月的某一天] [每年的某一月] [每周的某一天] [執行的命令]注意:請留意每個選項的取值範圍。

如何 添加/編輯 Crontab


  • 添加或更新crontab中的命令

1
crontab -e

默認情況下,系統會編輯當前登錄使用者的crontab命令集合。 需要編輯其他使用者的命令集合,需要使用到如下的命令

1
crontab -u username -e

查看Crontab命令集合


  • 查看目前系統登錄使用者的Crontab命令集合

1
crontab -l

  • 查看其他使用者的Crontab命令集合

1
crontab -u username -l

20個超實用的Crontab使用實例


  1. 每天 02:00 執行任務

react:
1
0 2 * * * /bin/sh backup.sh

  1. 每天 5:00和17:00執行任務

react:
1
0 5,17 * * * /scripts/script.sh

  1. 每分鐘執行一次任務 通常情況下,我們並沒有每分鐘都需要執行的腳本(默默的想到了12306--)

react:
1
* * * * *  /scripts/script.sh

  1. 每周日 17:00 執行任務

1
0 17 * * sun  /scripts/script.sh

  1. 每 10min 執行一次任務

react:
1
*/10 * * * * /scripts/monitor.sh

  1. 在特定的某幾個月執行任務

react:
1
* * * jan,may,aug * /script/script.sh

  1. 在特定的某幾天執行任務

1
0 17 * * sun,fri /script/scripy.sh

在每週五、周日的17點執行任務

  1. 在某個月的第一個周日執行任務

react:
1
0 2 * * sun  [ $(date +%d) -le 07 ] && /script/script.sh

  1. 每四個小時執行一個任務

react:
1
0 */4 * * * /scripts/script.sh

  1. 每週一、周日執行任務

1
0 4,17 * * sun,mon /scripts/script.sh

  1. 每個30秒執行一次任務 我們沒有辦法直接通過上訴類似的例子去執行,因為最小的是1min。 但是我們可以通過如下的方法。

react:
1
2
* * * * * /scripts/script.sh
  * * * * *  sleep 30; /scripts/script.sh

  1. 多個任務在一條命令中配置

react:
1
* * * * * /scripts/script.sh; /scripts/scrit2.sh

  1. 每年執行一次任務

CSS:
1
@yearly /scripts/script.sh
@yearly 類似於"0 0 1 1 *"。 它會在每年的第一分鐘內執行,通常我們可以用這個發送新年的問候。

  1. 每月執行一次任務

CSS:
1
@yearly /scripts/script.sh

  1. 每周執行一次任務

CSS:
1
@yearly /scripts/script.sh

  1. 每天執行一次任務

CSS:
1
@yearly /scripts/script.sh

  1. 每分鐘執行一次任務

CSS:
1
@yearly /scripts/script.sh

  1. 系統重啟時執行

CSS:
1
@reboot /scripts/script.sh

  1. 將 Cron 結果重定向的特定 的帳戶 預設情況下,cron 只會將結果詳情發送給 cron 被制定的使用者。 如果需要發送給其他使用者,可以通過如下的方式:

Ruby:
1
2
3
# crontab -l
  MAIL=bob
  0 2 * * * /script/backup.sh

  1. 將所有的cron命令備份到文字文件當中 這是一個當我們丟失了cron命令後方便快速的一個恢復方式。 下面是利用這個方式恢復cron的一個小例子。 (看看就行~) 首先:檢查當前的cron

Ruby:
1
2
3
# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh

然后:备份cron到文件中

Ruby:
1
2
3
4
# crontab -l > cron-backup.txt
# cat cron-backup.txt
MAIL=rahul
0 2 * * * /script/backup.sh

接著:移除當前的cron

Bash:
1
2
3
# crontab -r
# crontab -l
no crontab for root

恢復:從text file中恢復

Ruby:
1
2
3
4
# crontab cron-backup.txt
# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh

💘 相关文章

写一条评论

Based on Golang + fastHTTP + sdb | go1.16.4 Processed in 0ms