Linux下:定時任務——執行腳本


一、簡單介紹LInux下的定時任務服務:crond服務

  • crond是Linux系統用來定期執行命令或指定程序的服務的一種服務或軟件。

  • 一般情況下安裝完成Linux操作系統之后,默認便會啟動Crond任務調用服務。

  • Crond服務會定期(默認一分鍾檢查一次)檢查系統中是否有要執行的任務工作。如果有,便根據其預先設定的定時任務規則自動執行該定時任務工作。

二、設置定時任務,兩種方法

1、crontab命令

  • crontab -e 進入當前用戶的定時任務vim編輯模式

  • crontab -l 查看當前用戶的定時任務配置

  • crontab -u 用戶名 -l 查看指定用戶的定時任務設置

注:crontab { -l | -e } 實際上就是在操作/var/spool/cron/當前用戶這樣的文件,root用戶就是/var/spool/cron/root

2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的定時任務

注:crontab -e配置是針對當前用戶的定時任務,而編輯/etc/crontab是針對系統的定時任務

三、定時任務編寫規則說明

# 直接編輯/etc/crontab 文件

minute - 從0到59的整數 
hour - 從0到23的整數 
day - 從1到31的整數 (必須是指定月份的有效日期)
month - 從1到12的整數 (或如Jan或Feb簡寫的月份)
dayofweek - 從0到7的整數,0或7用來描述周日 (或用Sun或Mon簡寫來表示)
root - 表示以root用戶身份來運行
command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義腳本的命令) 

run-parts表示后面跟着的是一個文件夾,要執行的是該文件夾下的所有腳本
對於以上各語句,星號(*)表示所有可用的值。例如*在指代month時表示每月執行(需要符合其他限制條件)該命令。 
整數間的連字號(-)表示整數列,例如1-4意思是整數1,2,3,4
指定數值由逗號分開。如:3,4,6,8表示這四個指定整數。
符號“/”指定步進設置。“/<interger>”表示步進值。如0-59/2定義每兩分鍾執行一次。
# crontab -e 同上,只是不需要加用戶

四、其他

1、crontab 語法格式中特殊符號含義如下表

特殊符號	含義

*	*號,表示任意時間都,實際就是“每”的意思
-	減號表示分隔符,表示一個時間范圍,區間段,如17-19點,例如:每天的17,18,19點的00分執行任務。00 17-19 * * * cmd
,	逗號,表示分隔時段的意思例如每天的5點10點00分執行任務,00 5,10 * * * cmd
/n	n代表數字,即“每隔n單位時間”,例如:每10分鍾執行一次任務可以寫成/*10 * * * * cmd,其中,/10,的范圍是0-59,因此也可以寫成0-59/10

2、定時任務日志

# 不記錄日志,在每一行定時任務后面加上: 

> /dev/null 2>&1

# 日志記錄追加到指定文件

>> /path/mylog.log  2>&1

說明:
> /dev/null 將輸出重定向到/dev/null,這是個空設備,也就是忽略其輸出。 
2>&1  是將錯誤輸出到標准輸出,如果在控制台調試,也就是屏幕上,方便調試。
有3個默認的i/o,0是標准輸入,一般是鍵盤;1是標准輸出,一般是屏幕了;2是標准錯誤。


免責聲明!

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



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