linux定時(shí)任務(wù)進(jìn)程是否存在,并添加定時(shí)任務(wù)

      網(wǎng)友投稿 991 2022-05-29

      linux定時(shí)任務(wù)進(jìn)程是否存在,并添加定時(shí)任務(wù)

      轉(zhuǎn)載自:https://www.cnblogs.com/wanghuaijun/p/7954822.html

      一、定時(shí)任務(wù)簡(jiǎn)介

      在LINUX中,周期執(zhí)行的任務(wù)一般由cron這個(gè)守護(hù)進(jìn)程來(lái)處理[ps -ef|grep cron]。cron讀取一個(gè)或多個(gè)配置文件,這些配置文件中包含了命令行及其調(diào)用時(shí)間。

      cron的配置文件稱為“crontab”,是“cron table”的簡(jiǎn)寫(xiě)。

      下面簡(jiǎn)單說(shuō)一下crontab的相關(guān)內(nèi)容。

      Linux下的任務(wù)調(diào)度分為兩類:系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。

      系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫(xiě)緩存數(shù)據(jù)到硬盤(pán)、日志清理等。在/etc目錄下有一個(gè)crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。

      /etc/crontab文件包括下面幾行:

      SHELL=/bin/bash

      PATH=/sbin:/bin:/usr/sbin:/usr/bin

      MAILTO=""HOME=/

      # run-parts

      51 * * * * root run-parts /etc/cron.hourly

      24 7 * * * root run-parts /etc/cron.daily

      22 4 * * 0 root run-parts /etc/cron.weekly

      42 4 1 * * root run-parts /etc/cron.monthly

      -----------------------------------------------------------------------------------------------------

      前四行是用來(lái)配置crond任務(wù)運(yùn)行的環(huán)境變量,第一行SHELL變量指定了系統(tǒng)要使用哪個(gè)shell,這里是bash,第二行PATH變量指定了系統(tǒng)執(zhí)行命令的路徑,第三行MAILTO變量指定了crond的任務(wù)執(zhí)行信息將通過(guò)電子郵件發(fā)送給root用戶,如果MAILTO變量的值為空,則表示不發(fā)送任務(wù)執(zhí)行信息給用戶,第四行的HOME變量指定了在執(zhí)行命令或者腳本時(shí)使用的主目錄。

      用戶任務(wù)調(diào)度:用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。用戶可以使用 crontab 工具來(lái)定制自己的計(jì)劃任務(wù)。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄中。其文件名與用戶名一致,使用者權(quán)限文件如下:

      /etc/cron.deny 該文件中所列用戶不允許使用crontab命令

      /etc/cron.allow 該文件中所列用戶允許使用crontab命令

      /var/spool/cron/ 所有用戶crontab文件存放的目錄,以用戶名命名

      二、創(chuàng)建任務(wù)

      crontab -e,然后就會(huì)有個(gè)vi編輯界面,再輸入一定格式的內(nèi)容到里面 :wq 保存退出,即創(chuàng)建一個(gè)定時(shí)任務(wù)。

      該一定格式的內(nèi)容包括六個(gè)域,其中前五個(gè)域是指定命令被執(zhí)行的時(shí)間,最后一個(gè)域是要被執(zhí)行的命令。

      每個(gè)域之間使用空格或者制表符分隔。格式如下:

      minute hour day-of-month month-of-year day-of-week commands

      對(duì)應(yīng)的合法值 00-59, 00-23 ,01-31, 01-12 ,0-6 (0 is sunday), commands(代表要執(zhí)行的腳本)

      除了數(shù)字還有幾個(gè)特殊的符號(hào)就是星號(hào)"*"、斜杠"/"、中劃線"-"、逗號(hào)","。

      *代表所有的取值范圍內(nèi)的數(shù)字,

      /代表每的意思,/5表示每5個(gè)單位,

      -代表從某個(gè)數(shù)字到某個(gè)數(shù)字,

      ,分開(kāi)幾個(gè)離散的數(shù)字。

      比如:0 0 * * * sh /home/sh/monitor.sh,每天凌晨0點(diǎn)0分執(zhí)行monitor.sh這個(gè)腳本。

      三、crond服務(wù)相關(guān)命令

      /sbin/service crond start //啟動(dòng)服務(wù)

      /sbin/service crond stop //關(guān)閉服務(wù)

      /sbin/service crond restart //重啟服務(wù)

      /sbin/service crond reload //重新載入配置

      /sbin/service crond status //查看服務(wù)狀態(tài)

      查看crontab服務(wù)是否已設(shè)置為開(kāi)機(jī)啟動(dòng),執(zhí)行命令:ntsysv,此命令需要是root用戶。

      加入開(kāi)機(jī)自動(dòng)啟動(dòng):chkconfig --level 5 crond on

      之后查看:chkconfig --list|grep crond

      四、監(jiān)聽(tīng)服務(wù)是否存在

      上邊說(shuō)了定時(shí)任務(wù),每天固定時(shí)間執(zhí)行shell腳本,那么這個(gè)腳本我們可以寫(xiě)上監(jiān)聽(tīng)該服務(wù)進(jìn)程的內(nèi)容。

      monitor.sh

      這里以Taskctl相關(guān)服務(wù)為例:

      #!/bin/sh

      NOWTIME=$(date +%Y%m%d_%H%M%S)

      ps -fe|grep emnls|grep -v grep

      if [ $? -ne 0 ]

      then

      echo $NOWTIME" stopped.....">>/home/mars/checkprolog.txt

      eminit

      ctlinit

      ctlstart

      else

      echo $NOWTIME " running....." >>/home/mars/checkprolog.txt

      fi

      shell的if else 語(yǔ)法以及大于,小于等邏輯表達(dá)式:

      if ....

      then

      ....

      elif ....

      then

      ....

      else

      ....

      fi

      ------------------------------------------------------------------------

      大多數(shù)情況下,可以使用測(cè)試命令來(lái)對(duì)條件進(jìn)行測(cè)試。比如可以比較字符串、判斷文件是否存在及是否可讀等等… 通常用” [ ] “來(lái)表示條件測(cè)試。注意這里的空格很重要,要確保方括號(hào)的空格。

      [ -f "somefile" ]:判斷是否是一個(gè)文件

      [ -x "/bin/ls" ] :判斷/bin/ls是否存在并有可執(zhí)行權(quán)限

      [ -n "$var" ]:判斷$var變量是否有值

      [ "$a" = "$b" ] :判斷$a和$b是否相等

      對(duì)一個(gè)文件的判斷:

      -r file     用戶可讀為真

      -w file     用戶可寫(xiě)為真

      -x file     用戶可執(zhí)行為真

      -f file     文件為正規(guī)文件為真

      linux定時(shí)任務(wù)進(jìn)程是否存在,并添加定時(shí)任務(wù)

      -d file     文件為目錄為真 -c file     文件為字符特殊文件為真 -b file     文件為塊特殊文件為真 -s file     文件大小非0時(shí)為真 -t file     當(dāng)文件描述符(默認(rèn)為1)指定的設(shè)備為終端時(shí)為真

      對(duì)于不含變量的任務(wù)簡(jiǎn)單shell腳本一般能勝任。但在執(zhí)行一些決策任務(wù)時(shí),就需要包含if/then的條件判斷了。shell腳本編程支持此類運(yùn)算,包括比較運(yùn)算、判斷文件是否存在等?;镜膇f條件命令選項(xiàng)有: - eq —比較兩個(gè)參數(shù)是否相等(例如,if [ 2 –eq 5 ])

      -ne —比較兩個(gè)參數(shù)是否不相等

      -lt —參數(shù)1是否小于參數(shù)2

      -le —參數(shù)1是否小于等于參數(shù)2 -gt —參數(shù)1是否大于參數(shù)2 -ge —參數(shù)1是否大于等于參數(shù)2 -f — 檢查某文件是否存在(例如,if [ -f "filename" ]) -d — 檢查目錄是否存在

      幾乎所有的判斷都可以用這些比較運(yùn)算符實(shí)現(xiàn)。腳本中常用-f命令選項(xiàng)在執(zhí)行某一文件之前檢查它是否存在。

      Linux Unix 任務(wù)調(diào)度

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:shell-01-基礎(chǔ)知識(shí)
      下一篇:協(xié)同OA系統(tǒng)業(yè)務(wù)接待管理解決方案
      相關(guān)文章
      噜噜噜亚洲色成人网站∨| 亚洲精品无码久久久久久| 亚洲伦理一区二区| 色天使色婷婷在线影院亚洲| 亚洲一区二区成人| 亚洲黄黄黄网站在线观看| 亚洲精品国产福利片| 中文字幕亚洲一区二区va在线| 亚洲天堂2017无码中文| 亚洲人成电影福利在线播放| 久久国产亚洲观看| 亚洲AV无码成H人在线观看 | 91亚洲自偷手机在线观看| 亚洲AV无码一区二区三区DV| 亚洲国产精品一区二区九九| 亚洲第一黄色网址| 亚洲午夜精品第一区二区8050| 亚洲变态另类一区二区三区 | 亚洲精品成人无码中文毛片不卡| 国产亚洲男人的天堂在线观看| 亚洲入口无毒网址你懂的| 久久亚洲国产成人精品性色| 青青草原精品国产亚洲av| 97久久精品亚洲中文字幕无码| 亚洲韩国在线一卡二卡| 亚洲国产成人精品电影| 国产亚洲一区二区三区在线观看 | 浮力影院亚洲国产第一页| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲精品乱码久久久久久蜜桃图片| 日韩国产欧美亚洲v片| 亚洲人成77777在线观看网| 亚洲人片在线观看天堂无码| 亚洲中文字幕无码一去台湾 | 亚洲AV无码专区亚洲AV伊甸园| 亚洲伦另类中文字幕| 亚洲最大的视频网站| 1区1区3区4区产品亚洲| 亚洲二区在线视频| 亚洲欧洲在线播放| 亚洲人成图片网站|