一、Crond簡介
Crond是一個守護進程,用於在後台運行Linux系統下的任務調度程序。它可以周期性(類似於Windows中的計劃任務)執行指定的系統指令或Shell腳本。通過Crond,可以非常方便地定期備份、清理數據、自動化測試等等,極大地提高了工作效率。在Linux上,所有的計劃任務都是由Crond負責調度執行。
二、基本語法
使用crontab命令可以編輯和管理當前用戶的定時任務列表,常用的語法格式如下:
crontab [-u user] [-l|-e|-r]
-u user
:表示指定要編輯的用戶,如果不指定,則表示當前用戶。-l
:表示列出當前用戶的計劃任務列表。-e
:表示編輯當前用戶的計劃任務列表,如果當前用戶沒有計劃任務列表,則會新建一個。-r
:表示刪除當前用戶的計劃任務列表。
三、時間格式
在Crond中,時間是以一個五部分組成的格式來表示的,格式為:
* * * * *
- 第一部分:分鐘數(0~59)
- 第二部分:小時數(0~23)
- 第三部分:日期(1~31)
- 第四部分:月份(1~12)
- 第五部分:星期幾(0~6,0為周日)
其中,如果想要表示所有可能的值,則用星號(*)代替;如果想要表示某個具體數值,就直接寫上這個數值;如果想要表示一段範圍,就用連字符(-)隔開兩個數,如果想要對多個數進行不連續的定義,則可以用逗號(,)將它們隔開。
四、常用的時間設置方式
在Crond中,有幾種常用的時間設置方式:
1. 每天定時執行任務
假設我們要在每天早上6點執行某個任務,則時間格式為:
0 6 * * *
表示每天0點執行,其中第一部分0表示定時任務將在0分鐘時運行,第二部分6表示定時任務將在6小時時運行,第三部分表示定時任務將在每月的所有日期都運行,第四部分表示定時任務將在每月的所有月份都運行,第五部分表示定時任務將在每周的所有天都運行。
2. 每周定時執行任務
如果需要在每周的特定某一天以及某個時間執行任務,則時間格式類似於:
0 6 * * 6
表示在每周的星期六早上6點執行任務,其中第五部分為星期幾,6表示星期六。
3. 每月定時執行任務
如果需要在每月的特定一天以及某個時間執行任務,則時間格式類似於:
0 6 1 * *
表示在每個月的1號早上6點執行任務,其中第三部分為月份日期。
4. 每個小時定時執行任務
如果需要在每個小時的特定分鐘數執行任務,則時間格式類似於:
0 * * * *
表示每個小時的0分時執行。
五、配置文件
在Linux中還存在一個全局的配置文件/etc/crontab
,我們可以在該文件中配置全局的定時任務。這個文件的語法格式和crontab命令是一樣的,只不過在這個文件中可以指定執行任務的用戶,格式如下:
* * * * * username command
其中,username表示指定的用戶;command表示命令或腳本的路徑。
六、實例
下面是一個簡單的實例,在每天20點執行腳本來備份網站數據到指定文件夾:
- 使用
crontab -e
編輯當前用戶的計劃任務列表: - 在編輯窗口中添加以下內容,保存並退出。
- 新建
backup.sh
腳本文件: - 編輯
backup.sh
腳本文件,在其中寫入備份腳本,保存並退出。
crontab -e
0 20 * * * /home/backup.sh
touch /home/backup.sh
chmod +x /home/backup.sh
#!/bin/bash
FILE_NAME=$(date +%Y-%m-%d)-backup.tar.gz
tar zcvf /data/backup/$FILE_NAME /var/www/html/
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160840.html