Linux知識二:設置開機啓動項、定時運行程序

設置開機啓動服務知識:
chkconfig --level 35 服務名 on:設定開機時啓動的服務。
/etc/at.allow 與 /etc/at.deny 這兩個檔案來可以進行 at 的使用限制。希望有某些使用者使用 at 的話,將那個使用者的賬號寫入 /etc/at.deny 即可! 一個賬號寫一行。
at [-m] TIME,要讓 /var/spool/at 目錄底下的工作被實際運作,必須要啓動我們上面提到的 atd 那個服務,參數:
 -m   :當 at 的工作完成後,以 email 的方式通知使用者該工作已完成。
 TIME:時間格式,這裏可以定義出『什麼時候要進行 at 這項工作』的時間,格式有:
    HH:MM                     ex> 04:00
         在今日的 HH:MM 時刻進行,若該時刻已超過,則明天的 HH:MM 進行此工作。
 HH:MM YYYY-MM-DD             ex> 04:00 2005-12-03
         強制規定在某年某月的某一天的特殊時刻進行該工作!
 HH:MM[am|pm] [Month] [Date] ex> 04pm December 3
         也是一樣,強制在某年某月某日的某時刻進行!
 HH:MM[am|pm] + number [minutes|hours|days|weeks]
         ex> now + 5 minutes ex> 04pm + 3 days
         就是說,在某個時間點『再加幾個時間後』才進行。
 範例一:再過五分鐘後,將 /root/.bashrc 寄給 dmtsai 這個使用者
 [root@linux ~]# at now + 5 minutes
 at> /bin/mail dmtsai -s "testing at job" < /root/.bashrc
 at> <EOT>   <==這裏輸入 [ctrl] + d 就會出現 <EOF> 的字樣!代表結束!
 job 8 at 2005-09-07 10:47
 # 上面這行信息在說明,第 8 個 at 工作將在 2005/09/07 的 10:47 進行!
 範例二:由於機房預計於 2005/09/16 停電,我想要在 2005/09/15 23:00 關機?
 [root@linux ~]# at 23:00 2005-09-15
 at> /bin/sync
 at> /bin/sync
 at> /sbin/shutdown -h now
 at> <EOT>
 job 10 at 2005-09-15 23:00
 # 您瞧瞧! at 還可以在一個工作內輸入多個指令呢!不錯吧!
atq:查詢目前主機上面有多少的 at 工作排程。
atrm [jobnumber]:排除排程,先用atq查看排程的ID號,再用此命令排除排程。
chkconfig 命令用來更新和查詢不同運行級上的系統服務,語法爲:   
     chkconfig --list [name]
     chkconfig --add name
     chkconfig --del name
     chkconfig [--level levels] name
     chkconfig [--level levels] name。
chkconfig 有五項功能:添加服務,刪除服務,列表服務,改變啓動信息以及檢查特定服務的啓動狀態。
選項介紹:   
     --level levels  指定運行級,由數字 0 到 7 構成的字符串,如:   
     --level 35   表示指定運行級3 和5。     要在運行級別3、4、5中停運 nfs 服務,使用下面的命令:chkconfig --level 345 nfs off   
     --add name      這個選項增加一項新的服務,chkconfig 確保每個運行級有一項 啓動(S) 或者 殺死(K) 入口。如有缺少,則會從缺省的init 腳本自動      建立。   
     --del name      用來刪除服務,並把相關符號連接從 /etc/rc[0-6].d 刪除。   
     --list name     列表,如果指定了name 那麼只是顯示指定的服務名,否則,列出全部服務在不同運行級的狀態。
不同的運行級定義如下:
  # 0 - 停機(千萬不能把initdefault 設置爲0 )
  # 1 - 單用戶模式                                     # s   init s = init 1
  # 2 - 多用戶,沒有 NFS
  # 3 - 完全多用戶模式(標準的運行級)
  # 4 - 沒有用到
  # 5 - X11 多用戶圖形模式(xwindow)
  # 6 - 重新啓動 (千萬不要把initdefault 設置爲6 )
運行級文件,每個被chkconfig 管理的服務需要在對應的init.d 下的腳本加上兩行或者更多行的註釋。
      第一行告訴 chkconfig 缺省啓動的運行級以及啓動和停止的優先級。如果某服務缺省不在任何運行級啓動,那麼使用 - 代替運行級。
      第二行對服務進行描述,可以用 跨行註釋。
例如,random.init 包含三行:
     # chkconfig: 2345 20 80
     # description: Saves and restores system entropy pool for
     # higher quality random number generation.
     表明 random 腳本應該在運行級 2, 3, 4, 5 啓動,啓動優先權爲20,停止優先權爲 80。
實例:
1、在linux下安裝了apache服務(通過下載二進制文件經濟編譯安裝、而非rpm包)、apache服務啓動命令:/usr/local/apache/bin/apachectl start,讓apache服務運行在運行級別3下面。
命令如下: 
   1)touch /etc/rc.d/init.d/apache
      vi /etc/rc.d/init.d/apache
      chown -R root /etc/rc.d/init.d/apache
      chmod 700 /etc/rc.d/init.d/apache
      ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache  
 #S是start的簡寫、代表啓動、K是kill的簡寫、代表關閉。60數字代表啓動的順序(對於iptv系統而言、許多服務建立在數據庫啓動的前提下才能夠正常啓動的、可以通過該數字就行調整腳本的啓動順序)。    
      apache的內容:
      #!/bin/bash
      #Start httpd service
      /server/apache/bin/apachectl start。
  
定時運行知識:
crontab:使用者的設定,安全性的問題, 與 at 同樣的,我們可以限制使用 crontab 的使用者賬號,允許與禁止用法與at類似。當使用 crontab來建立工作排程之後,它就會被紀錄到 /var/spool/cron/ 裏。
crontab [-u username] [-l|-e|-r],參數:
 -u :只有 root 才能進行這個任務,亦即幫其它使用者建立/移除 crontab;
 -e :編輯 crontab 的工作內容
 -l :查閱 crontab 的工作內容
 -r :移除 crontab 的工作內容。
 範例一:用 dmtsai 在每天的 12:00 發信給自己
 [dmtsai@linux ~]$ crontab -e
 # 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。
 0   12  *  *  * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc。
 代表意義 分鐘   小時   日期   月份    周
 數字範圍 0-59 0-23 1-31 1-12 0-7。
 特殊字符                           代表意義
      代表任何時刻都接受的意思!舉例來說,上表的範例一,那個日、月、周都是 * , 就
   *
      代表着『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思!
      代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:
          0 3,6 * * * command
   ,
      還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用!
      代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工
   -  作:
          20 8-12 * * * command
    仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思!
    那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:
          */5 * * * * command
 /n
    很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思!
 定時運行PHP文件:0 6 * * * /usr/local/php/bin/php /usr/local/apache/htdocs/test/timer.php  >> /tmp/cron.log。
 後臺運行:/usr/local/php/bin/php CopyBaseToFile.inc.php &。
 終端關閉後繼續在後臺運行:nohup /usr/local/php/bin/php CopyBaseToFile.inc.php &。

發佈了53 篇原創文章 · 獲贊 0 · 訪問量 2634
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章