linux 的計划任務 定時任務


linux的計划任務,也叫做定時任務

  1. 查看linux本機的定時任務

crontab -l #查看計划任務

  1. 編寫自己的計划任務

crontab -e #編輯計划任務

  1. 刪除任務調度工作
    crontab -r //刪除所有任務調度工作

  2. 學習計划任務的語法格式

    分 時 日 月 周 命令絕對路徑

    [root@mrcarzy-pc etc]# vim crontab

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    
    # 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
    
    

    minute: 表示分鍾,可以是從0到59之間的任何整數。

    hour:表示小時,可以是從0到23之間的任何整數。

    day:表示日期,可以是從1到31之間的任何整數。

    month:表示月份,可以是從1到12之間的任何整數。

    week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。

    command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

    特殊字符:
    • 星號(*):代表每的意思,例如month字段如果是星號,則表示每月都執行該命令操作。

    • 逗號(,):表示分隔時段的意思,例如,“1,3,5,7,9”。

    • 中杠(-):表示一個時間范圍,例如“2-6”表示“2,3,4,5,6”。

    • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鍾執行一次。

  • 每分鍾執行一次命令

    分 時 日 月 周 命令絕對路徑

    * * * * * 命令

  • 每小時的3,15分組執行命令

    分 時 日 月 周 命令絕對路徑
    3,15 * * * * 命令絕對路徑

#在下午8-11點的第3和第15分鍾執行
分      時     日 月 周  命令絕對路徑
3,15    20-23   *  *  *  

#每晚21:30執行命令
分     時  日 月 周  命令絕對路徑
30     21   *  *  *  

#每周六、日的下午1:30執行命令
分     時  日 月 周  命令絕對路徑
30    13   *  *  6,7 

#每周一到周五的凌晨1點整,清空/tmp目錄的所有文件
分     時  日 月 周  命令絕對路徑
0     1    *   *   1-5  /usr/bin/rm   -rf /tmp/*

#每晚的21:30重啟nginx
分     時  日 月 周  命令絕對路徑
30    21   *  3  *    命令絕對路徑

#每月的1,10,22日的4:45重啟nginx
分     時  日 月 周  命令絕對路徑
45   4    1,10,22  *   *  systemctl reload nginx 

#每個星期一的上午8點到11點的第3和15分鍾執行命令
分     時  日 月 周  命令絕對路徑
3,15   8-11  *  *  1

##每月每天凌晨3點30分和中午12點20分執行test.sh腳本
30 3,12 * * *  /home/test.sh           

##每月每天每隔6小時的每30分鍾執行test.sh腳本
30 */6 * * *  /home/test.sh

##每月每天早上8點到下午18點每隔2小時的每30分鍾執行test.sh腳本
30 8-18/2 * * * /etc/init.d/network restart

##每月每天晚上21點30分執行test.sh腳本
30 21 * * *  /etc/init.d/network restart

##每月1號、10號、22號凌晨4點45分執行test.sh腳本
45 4 1,10,22 * * /etc/init.d/network restart

##8月份周一、周日凌晨1點10分執行test.sh腳本
10 1 * 8 6,0 /etc/init.d/network restart

##每月每天每小時整點執行test.sh腳本
00 */1 * * *  /etc/init.d/network restart

linux系統服務管理命令

  • 系統服務(linux安裝的軟件名)

    只有通過yum安裝的軟件,才能用這個命令

    systemctl 這是centos7系類的命令

    service 這是centos6系統的服務管理命令

  • 實例:(只有yum安裝的才能使用這個命令)

    • 啟停管理nginx服務

    systemctl status/start/stop nginx

錯誤處理:

出現 there are stopped jobs 錯誤:

在shell中輸入命令jobs可以查看停止進程列表

obs -l 顯示停止進程的詳細列表

可以通過如下命令殺死或者激活停止的進程:

殺死:kill %1(%1是將要被殺死的job的進程號)

激活:fg %1(%1是將要被激活的job的進程號)

​ fg代表foreground(前台),可以喚醒被suspended(掛起)的進程


免責聲明!

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



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