日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux之循环执行任务

發布時間:2025/3/20 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux之循环执行任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 簡介

    ? ?在linux下,crond服務是實現周期性計劃任務的工具之一,crond服務能在規定的時間去執行設置的命令、腳本,功能類似windows下的“計劃任務”。對一個多用戶多任務的linux系統中,每個用戶都可以設置自己的crontab,并且在/var/spool/cron/這個目錄下會創建一個與創建計劃任務用戶同名的檔案,檔案的內容就是此用戶使用“crontab -e”命令制作的計劃任務。而每一次計劃任務的執行,crond都會把執行的日志記錄到/var/log/cron這個日志檔案中,通過這個檔案就會知道在某個時間,crond程序執行了哪個指令。作為系統管理員可以限定crontab的使用者,/etc/cron.allow與/etc/cron.deny這兩個檔案就是來做權限的設定的,一般只保留一個檔案即可,假如只保留/etc/cron.deny這個檔案,檔案中的內容是一行一個用戶的用戶名,表示在這個檔案的用戶不能使用計劃任務的功能,而沒有在這個檔案內的其他用戶則可以使用計劃任務的功能。

  • 命令格式

? ?在制定計劃任務時,我們使用crontab這個工具來設定,crontab的常用選項是“-e”與“-l”。

? ? ? ?-e:edit,表示編輯計劃任務列表

? ? ? ?-l:list,表示列出計劃任務列表

[root@zhaochj ~]# crontab -e

計劃任務的設置會涉及到兩個要素:一是時間;二是指令。也就是在什么時間會執行什么樣的指令。

cron的語法格式:五個時間字段,一個指令字段

? ?分 時 日 月 周 ? ? 指令

時間的取值范圍:


? ? ? ? ? ? ?field ? ? ? ? ?allowed values

? ? ? ? ? ? ?----- ? ? ? ? ?--------------

? ? ? ? ? ? ?minute ? ? ? ? 0-59

? ? ? ? ? ? ?hour ? ? ? ? ? 0-23

? ? ? ? ? ? ?day of month ? 1-31

? ? ? ? ? ? ?month ? ? ? ? ?1-12 (or names, see below)

? ? ? ? ? ? ?day of week ? ?0-7 (0 or 7 is Sun, or use names)

在這五個時間字段時可以使用一些特殊的符號:

* :表示任何時刻

,:表示時間分割,比如在“分”這個字段里的值為“1,15”表示第一分,第15分兩個時刻

- :表示一個時間段,如在“時”這個字段里的值為“2-5”表示零晨2點到零晨5點這個時間范圍內

/n:n表示一個整數,如在“日”這個字段里的值為“*/1”表示每隔一天執行一次命令

  • 時間段的一些示例

    43 21 * * * ? ? ? ? ? ? ?21:43 執行

    15 05 * * * ? ? ? ? ? ? ?05:15 執行

    0 17 * * * ? ? ? ? ? ? ? 17:00 執行

    0 17 * * 1 ? ? ? ? ? ? ? 每周一的 17:00 執行

    0,10 17 * * 0,2,3 ? ? ? ?每周日,周二,周三的 17:00和 17:10 執行

    0-10 17 1 * * ? ? ? ? ? ?毎月1日從 17:00到17:10 毎隔1分鐘 執行

    0 0 1,15 * 1 ? ? ? ? ? ? 毎月1日和 15日和周一的 0:00 執行

    42 4 1 * *     ? ? ? ? 毎月1日的 4:42分 執行

    0 21 * * 1-6   ? ? ? ? 周一到周六 21:00 執行

    0,10,20,30,40,50 * * * * 每隔10分 執行

    */10 * * * *        每隔10分 執行

    * 1 * * *         從1:0到1:59 每隔1分鐘 執行

    0 1 * * * ? ? ? ? ? ? ? ? 零晨1:00 執行

    0 */1 * * *        毎時0分 每隔1小時 執行

    0 * * * *         毎時0分 每隔1小時 執行

    2 8-20/3 * * * ? ? ? ? ? ?8:02,11:02,14:02,17:02,20:02 執行

    30 5 1,15 * * ? ? ? ? ? ? 每月1日 和 15日的 5:30 執行

  • 一個備份腳本與cron結合達到自動備份的實例


備份腳本如下:

[root@zhaochj ~]# vim autoback.sh #!/bin/sh # #author: Jack.zhao #Date: 2013-11-29 #Email: 419775240@qq.com #Description: This script backup file DATE=$(/bin/date +%Y%m%d) BASENAME=$(basename $1) [ -d /backup ] || /bin/mkdir /backup /bin/tar -czf /backup/$BASENAME.$DATE.tar.gz $1 1> /dev/null 2>> /backup/$BASENAME.error.log if [ $? -eq 0 ]thenecho "$1 $DATE backup successfully" >> /backup/$BASENAME.success.logelseecho "ERROR:failure $1 $DATE backup!" >> /backup/$BASENAME.error.log fi[root@zhaochj ~]# chmod +x /root/autoback.sh

此腳本的使用方法:

[root@zhaochj ~]# ./autoback.sh /etc/fstabefsg

腳本準備好了,那來設置計劃任務,如果我們想對/home目錄做一個自動備份工作,要求是每個月的1號、15號的零晨3點15分做備份工作:

[root@zhaochj ~]# crontab -e 15 3 1,15 * * /root/autoback.sh /home




轉載于:https://blog.51cto.com/zhaochj/1333747

總結

以上是生活随笔為你收集整理的linux之循环执行任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。