Cron 定時任務命令-配置文件詳解



定時任務

定時任務的作用


1.系統級別的定時任務

​ 臨時文件清理
​ 系統信息采集
​ 日志文件切割

2.用戶級別的定時任務

​ 定時向互聯網同步時間
​ 定時備份系統配置文件
​ 定時備份數據庫的數據

計划任務服務


# 定時任務,服務啟動和停止
# c6
/etc/init.d/crond start
/etc/init.d/rond/ stop

# c7
systemctl start crond
systemctl stop crond


相關配置文件


[root@gong ~]# cat /etc/crontab 
SHELL=/bin/bash				# 定時任務的shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin				# 環境變量
MAILTO=root				# 執行錯誤之后,會給root用戶發送mail

# For details see man 4 crontabs

# 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

tail -f /var/log/cron  # 記錄日志的位置

寫定時任務的時候需要注意:

	- 寫命令的時候需要使用絕對路徑,因為配置文件路徑的原因容易導致找不到命令。
	- 復雜命令給或者多個命令盡量寫到腳本中
	- 定時任務中所有的輸出內容全部放到/dev/null
	- 一般周和日不會共存
	- 編輯腳本的時候注意注釋,方便查看作用

FBI WARNING

PATH 出現的目錄,下面可執行文件,都可以不加路徑直接執行。注意執行腳本的時候腳本執行權限的影響。



定時任務的語法


# For details see man 4 crontabs
	
# 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

*	 *	  *	    *	*	command
分	時	日	月	周

分 0-59
時 0-23
日 0-31
月 1-12
周 0-6

# 每天凌晨2點執行ls命令
0 2 * * * ls

# 每個月1號執行凌晨兩點執行ls
0 2 1 * *  ls

# 每月1號和15號12點都執行一次ls命令
0 12 1,15 * * ls

# 每月1號到15號12點都執行一次ls命令
0 12 1-15 * * ls

# 每年的2月14日凌晨2點,執行ls命令
0 2 14 2 * ls

# 每周日凌晨2點執行ls命令
0 2 * * 7 ls

#  每年6月份周五凌晨2點執行ls命令
0 2 * 6 5 ls

# 每個月的14號並且是周日,凌晨兩點執行ls
0 2 14 * 7 

# 滿足每年的2月14日時候是周日的時候執行ls
0 2 14 2 7 ls

# 在每天凌晨2點這個時段,每10分鍾執行一次,在2:00這個時刻會執行。
*/10 2 * * * ls

# 沒分鍾執行一次ls
* * * * * ls
*/1 * * * * ls

# 每年2月14日凌晨00點,執行ls
0 0 14 2 * ls

# 每5min執行一次,至保存的時候開始
*/5 * * * * ls

# 每年的1月和5月和8月每天晚上凌晨2點執行ls
00 2 1,5,8 * ls

# 在每年1到7月和9-12月的每天凌晨2點執行ls
00 02 1-7,9-12 * ls

# 每個月的1-8號執行,凌晨2點執行ls
00 02 1-8 * * 

# 每個月的1號和10號和22號的凌晨4點45分執行ls命令   
45 04 1,10,22 * * ls

# 每個月的每2天的8點到11點的3分和15分執行ls命令   ---------跨月的時候
3,15 8-11 */2 * * /bin/ls
保存時間:2020年4月26日 11點35分

4月28號,8點03分 和 8點15分,9點03分 和9點15分 , 10點03分和10點15分,11點03分和11點15分執行ls命令
4月30號
5月1號
5月3號

# 每天的00點-7點的每個小時和23點-00點的每個小時都執行ls命令
0 23-7/1 * * * /bin/ls

# 每周一到周五的晚上21點15分執行ls命令
15 21 * * 1-5 /bin/ls



相關命令-crontab


-e			# edit 編輯配置文件/var/spool/cron/root
-l			# 查看當前定時任務,在讀取/var/spool/cron/root目錄下的配置文件
-r			# remove 刪除定時任務
-u			# 指定用戶

# 刪除指定用戶的定時任務
[root@gong ~]# crontab -r -u root

調試計划任務步驟


1.命令行,測試是否能執行成功

​ sh -x 調試腳本

2.加快定時的頻率,測試定時任務是否能執行成
3.修改時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM