linux 中 crond的使用

1. cron定時任務

linux 中用於定時執行某些特定能操作, 如定時備份文件, 定時更新/刪除文件, 都會使用到定時任務.

  • cron 是服務命令 crond 是用來執行執行服務的守護進程, crond 每分鐘會檢查是否有需要執行的任務.
  • crontab 則是crond 定時檢查的文件, 所有的定時任務都是寫在了 crontab 文件中,

2. 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
---------------------

# Example of job definition:
# .---------------- 分鐘, 設置每小時的第N分鐘
# |  .------------- 第 N 小時
# |  |  .---------- 第 N 天
# |  |  |  .------- 第 N 月
# |  |  |  |  .---- 每週的 第N天
# |  |  |  |  |
# *  *  *  *  * [用戶名]  需要執行的命令

## 上面的時間中
# *:    表示所有, 例如 * 1 * * * 表示每天的第一個小時 的每一分鐘
# ,:    分割可以指定多個如 1 1,2,3,4 * * *  : 表示每天的1,2,3,4 小時的第一分鐘執行
# -:    指定範圍, 如: 1 1 * * 1-5 :  表示每週1-5 的1點1分執行
# /:    指定間隔, 如  0 0 /5 * * :   表示每個5天 的零點執行1次


3. crontab 命令操作

  • 命令格式 crontab [-u user] file

  • 常用選項

-e:     編輯有個用戶的crontab , 如果不指定crontab 則編輯當前用戶的 crontab
-l:     顯示某個用戶的 crontab
-r:     刪除某個用戶的 crontab , 用戶的crontab 存儲在 /var/spool/cron 目錄中, 建議禁止使用該選項, 而是使用 crontab -e 之後從內部編輯刪除.
-i:     刪除時會讓用戶確認 

4. 示例

  • 每分鐘執行一次命令
[root@node10009 ~]# crontab -l
 * * * * * echo "hello world" > /root/1.txt

[root@node10009 ~]# ls
a  anaconda-ks.cfg
[root@node10009 ~]# date
Thu Nov 22 17:14:45 CST 2018
[root@node10009 ~]# date
Thu Nov 22 17:15:22 CST 2018
[root@node10009 ~]# ls
1.txt  a  anaconda-ks.cfg
[root@node10009 ~]# cat 1.txt 
hello world
[root@node10009 ~]#

5. 常用設置

0 3 * * * command       # 每天凌晨3點執行, 常用於備份,更新

0 9-18 * * 1-5 command    # 每週1 到週五 的 9點到下午6點 的小時執行一次

END

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