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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux之循环执行任务

發(fā)布時(shí)間:2025/3/20 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux之循环执行任务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 簡(jiǎn)介

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

  • 命令格式

? ?在制定計(jì)劃任務(wù)時(shí),我們使用crontab這個(gè)工具來(lái)設(shè)定,crontab的常用選項(xiàng)是“-e”與“-l”。

? ? ? ?-e:edit,表示編輯計(jì)劃任務(wù)列表

? ? ? ?-l:list,表示列出計(jì)劃任務(wù)列表

[root@zhaochj ~]# crontab -e

計(jì)劃任務(wù)的設(shè)置會(huì)涉及到兩個(gè)要素:一是時(shí)間;二是指令。也就是在什么時(shí)間會(huì)執(zhí)行什么樣的指令。

cron的語(yǔ)法格式:五個(gè)時(shí)間字段,一個(gè)指令字段

? ?分 時(shí) 日 月 周 ? ? 指令

時(shí)間的取值范圍:


? ? ? ? ? ? ?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)

在這五個(gè)時(shí)間字段時(shí)可以使用一些特殊的符號(hào):

* :表示任何時(shí)刻

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

- :表示一個(gè)時(shí)間段,如在“時(shí)”這個(gè)字段里的值為“2-5”表示零晨2點(diǎn)到零晨5點(diǎn)這個(gè)時(shí)間范圍內(nèi)

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

  • 時(shí)間段的一些示例

    43 21 * * * ? ? ? ? ? ? ?21:43 執(zhí)行

    15 05 * * * ? ? ? ? ? ? ?05:15 執(zhí)行

    0 17 * * * ? ? ? ? ? ? ? 17:00 執(zhí)行

    0 17 * * 1 ? ? ? ? ? ? ? 每周一的 17:00 執(zhí)行

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

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

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

    42 4 1 * *     ? ? ? ? 毎月1日的 4:42分 執(zhí)行

    0 21 * * 1-6   ? ? ? ? 周一到周六 21:00 執(zhí)行

    0,10,20,30,40,50 * * * * 每隔10分 執(zhí)行

    */10 * * * *        每隔10分 執(zhí)行

    * 1 * * *         從1:0到1:59 每隔1分鐘 執(zhí)行

    0 1 * * * ? ? ? ? ? ? ? ? 零晨1:00 執(zhí)行

    0 */1 * * *        毎時(shí)0分 每隔1小時(shí) 執(zhí)行

    0 * * * *         毎時(shí)0分 每隔1小時(shí) 執(zhí)行

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

    30 5 1,15 * * ? ? ? ? ? ? 每月1日 和 15日的 5:30 執(zhí)行

  • 一個(gè)備份腳本與cron結(jié)合達(dá)到自動(dòng)備份的實(shí)例


備份腳本如下:

[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

腳本準(zhǔn)備好了,那來(lái)設(shè)置計(jì)劃任務(wù),如果我們想對(duì)/home目錄做一個(gè)自動(dòng)備份工作,要求是每個(gè)月的1號(hào)、15號(hào)的零晨3點(diǎn)15分做備份工作:

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




轉(zhuǎn)載于:https://blog.51cto.com/zhaochj/1333747

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。