Linux計劃任務Crontab及簡單實例

Linux計劃任務Crontab及簡單實例

Crontab可以用來在系統中定期的執行任務。比如:寫了一個腳本需要每天早上八點執行,就可以用到Crontab;數據庫需要每天凌晨備份一次,也可以使用到Crontab。

本文參考其他文章(鏈接在文章末尾),在這裏分享一下

安裝

$ yum install crontabs
$ systemctl status  crond.service  #查看crontab服務狀態
$ systemctl start   crond.service  #啓動服務
$ systemctl restart crond.service  #重啓服務
$ systemctl reload  crond.service  #重新載入配置

使用

crontab -e 查看任務列表

任務列表每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分爲六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute hour day month week command

其中:

minute: 表示分鐘,可以是從0到59之間的任何整數。

hour:表示小時,可以是從0到23之間的任何整數。

day:表示日期,可以是從1到31之間的任何整數。

month:表示月份,可以是從1到12之間的任何整數。

week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。

command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

實例

1.每天 01:00 執行任務

0 1 * * * /bin/sh backup.sh

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

0 5,17 * * * curl http://***

3.每分鐘執行一次任務

* * * * *  curl http://***

4.每週日 01:00 執行任務

0 1 * * sun  curl http://***

5.每 10min 執行一次任務

*/10 * * * * /scripts/monitor.sh

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

* * * jan,may,aug * /script/script.sh

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

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

8.在某個月的第一個週日執行任務

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

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

0 */4 * * * /scripts/script.sh

10.每週一、週日執行任務

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

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

* * * * * /scripts/script.sh
* * * * *  sleep 30; /scripts/script.sh

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

* * * * * /scripts/script.sh; /scripts/scrit2.sh

13.每年執行一次任務

@yearly 類似於“0 0 1 1 *”。它會在每年的第一分鐘內執行,通常我們可以用這個發送新年的問候。

@yearly /scripts/script.sh

14.每月執行一次任務

@yearly /scripts/script.sh

15.每週執行一次任務

@yearly /scripts/script.sh

16.每天執行一次任務

@yearly /scripts/script.sh

17.每分鐘執行一次任務

@yearly /scripts/script.sh

18.系統重啓時執行

@reboot /scripts/script.sh

19.將 Cron 結果重定向的特定的賬戶

默認情況下,cron 只會將結果詳情發送給 cron 被制定的用戶。如果需要發送給其他用戶,可以通過如下的方式:

# crontab -l
  MAIL=bob
  0 2 * * * /script/backup.sh

20.將所有的 cron 命令備份到文本文件當中

這是一個當我們丟失了cron命令後方便快速的一個恢復方式。下面是利用這個方式恢復cron的一個小例子。(看看就行~)

首先:檢查當前的cron

# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh

然後:備份cron到文件中

# crontab -l > cron-backup.txt
# cat cron-backup.txt
MAIL=rahul
0 2 * * * /script/backup.sh

接着:移除當前的cron

# crontab -r
# crontab -l
no crontab for root

恢復:從text file中恢復

# crontab cron-backup.txt
# crontab -l
MAIL=rahul
0 2 * * * /script/backup.sh

原文鏈接

https://www.jianshu.com/p/d93e2b177814

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