時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
1.開機(jī)啟動時自動運(yùn)行程序
Linux加載后, 它將初始化硬件和設(shè)備驅(qū)動, 然后運(yùn)行第一個進(jìn)程init。init根據(jù)配置文件繼續(xù)引導(dǎo)過程, 啟動其它進(jìn)程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件,可以使 init自動啟動其它程序。例如:編輯 /etc/rc.d/rc.local 文件,在文件最末加上一 行"xinit"或"startx",可以在開機(jī)啟動后直接進(jìn)入X-Window。
2.登錄時自動運(yùn)行程序
用戶登錄時,bash首先自動執(zhí)行系統(tǒng)管理員建立的全局登錄script :/ect/profile。然后bash在用戶起始 目錄下按順序查找三個特殊文件中的一個:/.bash_profile、/.bash_login、/.profile,但只執(zhí)行最先找到的 一個。
因此,只需根據(jù)實際需要在上述文件中加入命令就可以實現(xiàn)用戶登錄時自動運(yùn)行某些程序(類似于DOS下的 Autoexec.bat)。
3.退出登錄時自動運(yùn)行程序
退出登錄時,bash自動執(zhí)行個人的退出登錄腳本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",則在每次退出登錄時自動執(zhí)行 "tar" 命令備份 *.c 文件。
4.定期自動運(yùn)行程序
Linux有一個稱為crond的守護(hù)程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內(nèi) 容,并在設(shè)定的時間執(zhí)行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。
例如,建立文件crondFile,內(nèi)容為"00 9 23 Jan * HappyBirthday",運(yùn)行"crontab cronFile"命令 后,每當(dāng)元月23日上午9:00系統(tǒng)自動執(zhí)行"HappyBirthday"的程序("*"表示不管當(dāng)天是星期幾)。
5.定時自動運(yùn)行程序一次
定時執(zhí)行命令at 與crond 類似(但它只執(zhí)行一次):命令在給定的時間執(zhí)行,但不自動重復(fù)。at命令的一 般格式為:at [ -f file ] time ,在指定的時間執(zhí)行file文件中所給出的所有命令。也可直接從鍵盤輸入命 令:
$ at 12:00
at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00
2000-11-09 12:00時候自動發(fā)一標(biāo)題為"Have a lunch",內(nèi)容為plan.txt文件內(nèi)容的郵件給Roger。
定期運(yùn)行程序或者腳本是管理員要面臨一個很普遍的問題,
一、 使用crond監(jiān)控程序運(yùn)行程序
1. 使用cron來定期執(zhí)行任務(wù)
使用crond (cron監(jiān)控程序)來定期運(yùn)行一些任務(wù),比如備份日志、數(shù)據(jù)庫、把日志發(fā)送到自己郵箱等等操作都可以又定期運(yùn)行程序來完成。
crond是個腳本,每次Linux啟動的時候都自動起到該腳本,該腳本是 /etc/rc.d/init.d 下面的,每次系統(tǒng)啟動的時候就自動會啟動該目錄下
的腳本。
cron有兩個配置文件,一個/etc/crontab,是一個全局配置文件,一組是crontab命令生成生成的配置文件,是屬于用戶級的。
一般對管理員來說,只要使用全局配置的/etc/crontab就配置文件就可以了,我們?nèi)ゴ蜷_配置文件看看:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
我們稍微來分析一下這個文件:
/* 設(shè)置基于什么shell來運(yùn)行,我們這里是基于bash shell */
SHELL=/bin/bash
/* 指定目錄中有次文件的命令時,不需要完整目錄路經(jīng) */
PATH=/sbin:/bin:/usr/sbin:/usr/bin
/* 使用cron實際工作時,見通過郵件來同志root用戶 */
MAILTO=root
/* 與/etc/crontab配置文件相關(guān)的主目錄為根目錄 */
HOME=/
/* 好了,這里是關(guān)鍵是,下面的是要指定什么時間運(yùn)行什么目錄下的任務(wù),run-parts命令是運(yùn)行指定目錄下的每個腳本 */
# run-parts
/* 這一句是在每天每小時過后一分鐘運(yùn)行/etc/cron.hourly目錄中的每個腳本文件 */
01 * * * * root run-parts /etc/cron.hourly
/* 在每天凌晨4點(diǎn)2分運(yùn)行/etc/cron.daily目錄中的每個腳本文件 */
02 4 * * * root run-parts /etc/cron.daily
/* 在每個星期天凌晨4點(diǎn)22分運(yùn)行/etc/cron.weekly目錄中的每個腳本文件 */
22 4 * * 0 root run-parts /etc/cron.weekly
/* 在每個月的第一天凌晨4點(diǎn)42分運(yùn)行/etc/cron.monthly目錄中的每個腳本文件 */
42 4 1 * * root run-parts /etc/cron.monthly
大家看到里面的"*"一定覺得很奇怪,下面我們句稍微來了解一下cron的語法:
上面腳本中的時間是從左到右的,分別列出了五個字段,我們看下面的表:
------------------------------------------------
字段 取值范圍
------------------------------------------------
Minute 0 ~ 59
Hour 0 ~ 23,其中0是午夜,20是晚上8點(diǎn)
Day 1 ~ 31
Month 1 ~ 12
Day of week 0 ~ 7,其中0和7是表示星期天
------------------------------------------------
任何字段中的星號是通配符,例如,如果第一個字段包括星號,則特定若無其事在可能的每一分鐘運(yùn)行。如果要指定時間范圍,比如上午8點(diǎn)到
下午4點(diǎn),則可以見第二個字段設(shè)置為8~16。如果要隔一天運(yùn)行任務(wù),則可以將第三個字段設(shè)置為*/2?梢钥闯,如果五個字段(minute、hour
、day、month、day of week) 之后,cron中的每個字段就沒什么神秘之處了。
2. 用戶自己的cron
用戶也可以計劃用戶自己的cron任務(wù),比如他想要在半夜整理他的文件,然后發(fā)送郵件給自己,只要這個用戶他沒有在/etc/cron.deny表中,
就可以使用crontab -e命令來啟動自己的cron文件。
3. 對cron的訪問控制
默認(rèn)情況下,所有用戶都能訪問cron工具,要對cron進(jìn)行訪問控制,則可以生成/etc/cron.allow與/etc/cron.deny文件。
(1)這兩個文件都不存在時,每個用戶都可以訪問cron工具]
(2)存在/etc/cron.allow文件時,則只有cron.allow文件中允許的用戶才能訪問cron工具,如果也有/etc/cron.deny文件,則忽略cron.deny文
件
二、 使用at命令定期運(yùn)行程序
1. 使用cron運(yùn)行任務(wù)
cron任務(wù)的缺點(diǎn)是計劃要經(jīng)常運(yùn)行,假如我們只是想要讓特定任務(wù)運(yùn)行一次呢?那么,這時候就要用到at監(jiān)控程序了。
設(shè)置at命令很簡單,指示定運(yùn)行的時間,那么就會在哪個時候運(yùn)行。at類似打印進(jìn)程,會把任務(wù)放到/var/spool/at目錄中,到指定時間運(yùn)行它
。at命令相當(dāng)于另一個shell,運(yùn)行at time命令時,它發(fā)送一個個命令,可以輸入任意命令或者程序。at now + time命令可以在指示任務(wù)。
假設(shè)處理一個大型數(shù)據(jù)庫,要在別人不用系統(tǒng)時去處理數(shù)據(jù),比如凌晨2點(diǎn)5分。那么我們就應(yīng)該先建立/home/mj/airplane腳本管理數(shù)據(jù)庫,計
劃處理/home/mj/air-safe文件中的結(jié)果。正常方式是這樣啟動下列命令:
# at 2:05 tomorrow
at> /home/mj/airplane > /home/mj/air-safe
at> Ctrl+D
AT Time中的時間表示方法
-----------------------------------------------------------------------
時間 例子 說明
-----------------------------------------------------------------------
Minute at now + 5 minutes 任務(wù)在5分鐘后運(yùn)行
Hour at now + 1 hour 任務(wù)在1小時后運(yùn)行
Days at now + 3 days 任務(wù)在3天后運(yùn)行
Weeks at now + 2 weeks 任務(wù)在兩周后運(yùn)行
Fixed at midnight 任務(wù)在午夜運(yùn)行
Fixed &
關(guān)鍵詞標(biāo)簽:Linux
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會話GNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址linux tc實現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負(fù)載