設置開機啓動服務知識:
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 &。
Linux知識二:設置開機啓動項、定時運行程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.