ubuntu系統定時運行 crontab


1,crontab是個啥?

ubuntu系統自帶cron工具,cron是一個系統上的定時工具,用它的好處在於,不同的程序可以用同一個計時器,這樣就省得不同程序各自sleep了,另外它還支持比較多的個性化功能,比如每月1號執行一次,

2,crontab怎么用?

crontab是一個和當前用戶綁定的命令,一個用戶有一個用戶的定時配置文件,文件位置/var/spool/cron

crontab -l|-r|-e|-i 用戶名
#-l:顯示用戶定時文件的內容
#-r:刪除用戶定時文件
#-i:刪除用戶定時文件的時候給個提示,常用-ri
#-e:編輯用戶的crontab文件,第一次用可能讓你選擇編輯器,

登錄系統用戶,並且為用戶創建定時文件:

crontab -e
#打開一個配置文件,並且讓用戶輸入crontab命令

輸入命令並且保存:

* * * * * /usr/bin/python /home/center/temp/crontest/logout.py
#命令的意思是每隔一分鍾執行一次logout.py文件,ps:建議使用絕對命令

本人logout.py中的內容:

#!/usr/bin/python
import time
f=open("/home/center/temp/crontest/test.log","a")
t = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
str1 = '執行時間:' + t + '\n'
f.write(str1)
f.close()

crontab命令格式是這樣的:

接下來需要啟動cron服務

sudo service cron start 
sudo service cron restart    #重啟
sudo service cron stop    #關閉

啟動成功以后使用ps查看后台進程,就會多一個這樣的

root       948  0.0  0.0  30748  3272 ?        Ss   16:28   0:00 /usr/sbin/cron -f

那么問題來了,如果開啟了crontab服務的電腦重啟了以后,服務還有么?答案是,,還有的。本人親測

3,crontab定時格式詳解

占位符含義

每個字段代表的含義及取值范圍如下:
  Minute :分鍾(0-59),表示每個小時的第幾分鍾執行該任務
  Hour : 小時(1-23),表示每天的第幾個小時執行該任務
  Day : 日期(1-31),表示每月的第幾天執行該任務
  Month : 月份(1-12),表示每年的第幾個月執行該任務
  DayOfWeek : 星期(0-6,0代表星期天),表示每周的第幾天執行該任務

特殊符號含義

  “*” ,代表所有的取值范圍內的數字;
  “/” , 代表”每”(“*/5”,表示每5個單位);
  “-” , 代表從某個數字到某個數字(“1-4”,表示1-4個單位);
  “,” ,分開幾個離散的數字;

例子:

每分鍾執行 * * * * *
每五分鍾執行 */5 * * * *
每小時執行 0 * * * *
每天執行 0 0 * * *
每周執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *

5 * * * * ls /*指定每小時的第5分鍾執行一次ls命令*/ 
30 5 * * * ls /*指定每天的 5:30 執行ls命令*/ 
30 7 8 * * ls /*指定每月8號的7:30分執行ls命令*/ 
50 7 * * * root run-parts /etc/cron.daily /*每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件*/

*/2 8-20 * * * /usr/bin/backup   每天8點到晚上8點間隔2分鐘執行一次


免責聲明!

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



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