• 當前位置:首頁 > IT技術 > 系統服務 > 正文

    Ubuntu下用crontab 部署定時任務
    2021-09-06 19:11:32

    crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。通俗來講就是執行定時任務的一個命令。

    1.crontab的安裝以及服務的開啟

    第一步:檢查你得服務器上是否安裝了crontab

    rpm -qa | grep crontab

    若沒有,首先就在服務器上安裝

     apt-get install cron

    第二步:開啟定時任務

    運行:crontab –e
    然后進入一個可編輯的文件,編寫定時任務:
    */1 * * * * /usr/bin/python /python/asch-check.py

    以上代碼的寓意為:表示1分鐘執行一次asch-check.py腳本

    第三步:啟動服務

    service cron start

    第四步:查看定時任務

    crontab -l #查看定時任務

    2.安裝日志服務rsyslog

    第一步:安裝 rsyslog

    apt-get install rsyslog

    第二步:啟動日志

    service rsyslog start

    第三步:編輯設置

    vi /etc/rsyslog.d/50-default.conf
    
    cron.*              /var/log/cron.log #將cron前面的注釋符去掉 

    第四步:重啟

    service rsyslog restart

    第五步:查看cron運行任務和日志:

    crontab -l #查看定時任務

    等到時間到了之后,發現定時任務未執行

    tail -f?/var/log/cron.log? 查看日志

    3.cron常用的命令

    crontab file [-u user]-用指定的文件替代目前的crontab。?
    crontab-[-u user]-用標準輸入替代目前的crontab.?
    crontab-1[user]-列出用戶目前的crontab.?
    crontab-e[user]-編輯用戶目前的crontab.?
    crontab-d[user]-刪除用戶目前的crontab.?
    crontab-c dir- 指定crontab的目錄。
    eg:
    service cron start     //啟動服務
    
    service cron stop      //關閉服務
    
    service cron restart   //重啟服務
    
    service cron reload    //重新載入配置
    
    service cron status    //查看crontab服務狀態
    
    crontab –l  //查看定時任務
    ?

    4.常用的周期格式

    
    每五分鐘執行 */5 * * * *
    
    每小時執行    0 * * * *
    
    每天執行        0 0 * * *
    
    每周執行       0 0 * * 0
    
    每月執行        0 0 1 * *
    
    每年執行       0 0 1 1 *
    
    每分鐘執行一次  * * * * * user command
    
    每隔2小時執行一次**/2 ** * user command (/表示頻率)
    
    每天8:30分執行一次308 * * * user command
    
    每小時的30和50分各執行一次   30,50 * * * * user command(,表示并列)
    
    每個月的3號到6號的8:30執行一次  30 8 3-6 * * user command (-表示范圍)
    
    每個星期一的 8:30 執行一次   30 8 * * 1 user command (周的范圍為0-7,0和7代表周日)

    eg:
    30 21 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? #每晚的21:30重啟apache。?
    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart ? #每月1、10、22日的4 : 45重啟apache。?
    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ?#每周六、周日的1 : 10重啟apache。?
    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart ? ?#每天18 : 00至23 : 00之間每隔30分鐘重啟apache。?
    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ?#每星期六的11 : 00 pm重啟apache。?
    0 */1 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ? #每一小時重啟apache?
    0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? #晚上11點到早上7點之間,每隔一小時重啟apache?
    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart ?#每月的4號與每周一到周三的11點重啟apache?
    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ? #一月一號的4點重啟apache?

    ?5.特殊字符的含義

    特殊字符:
    星號(*):代表’‘每’'的意思,例如month字段如果是星號,則表示每月都執行該命令。
    逗號(,):表示分隔時段的意思,例如,“1,3,5,7,9”。
    中杠(-):表示一個時間范圍,例如“2-6”表示“2,3,4,5,6”。
    正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

    ?

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码