摘要:本文通過實(shí)例詳細(xì)討論了windows 操作系統(tǒng)下實(shí)現(xiàn)定時(shí)自動(dòng)運(yùn)行指定程序的方法,同時(shí)對(duì)UNIX操作系統(tǒng)下定時(shí)自動(dòng)運(yùn)行指定程序的方法也進(jìn)行了介紹,該方法已經(jīng)在銀行網(wǎng)絡(luò)設(shè)備管理中得到實(shí)際應(yīng)用,取得很好效果。
關(guān)鍵詞:操作系統(tǒng) 定時(shí) 自動(dòng)運(yùn)行
在計(jì)算機(jī)中心機(jī)房中的計(jì)算機(jī)運(yùn)行管理中,經(jīng)常遇到日常每天需要在指定時(shí)間重復(fù)進(jìn)行某些操作,如何將這些操作自動(dòng)化,以減少計(jì)算機(jī)運(yùn)行管理的工作量,是計(jì)算機(jī)中心管理人員經(jīng)常遇到的問題,本文將主要對(duì)Windows 98操作系統(tǒng)列舉一些應(yīng)用實(shí)例,說明如何實(shí)現(xiàn)計(jì)算機(jī)管理的自動(dòng)化,另外對(duì)UNIX操作系統(tǒng)下各何實(shí)現(xiàn)計(jì)算機(jī)管理的自動(dòng)化也進(jìn)行了介紹,以起到拋磚引玉的作用。
一、文件的自動(dòng)傳輸
假如在計(jì)算機(jī)A中,每天會(huì)產(chǎn)生一些很重要的數(shù)據(jù)文件,為了預(yù)防計(jì)算機(jī)A由于系統(tǒng)崩潰造成這些重要數(shù)據(jù)文件的丟失,每天需要將這些重要數(shù)據(jù)文件傳輸?shù)搅硗庖慌_(tái)計(jì)算機(jī)B中進(jìn)行保存,做為備份。如果用人工方法進(jìn)行數(shù)據(jù)傳輸,不僅繁瑣而且工作量大,并且有時(shí)難免會(huì)忘記,采用文件自動(dòng)傳輸方法,可以很好解決這個(gè)問題,具體方法如下:
1、在計(jì)算機(jī)A的windows操作系統(tǒng)下,建立批處理程序文件ftpo.bat,該文件內(nèi)容如下:
ftp -n <
這里,16.73.81.20是計(jì)算機(jī)B的IP地址,backup是計(jì)算機(jī)B的FTP用戶名,cjy是計(jì)算機(jī)B的FTP密碼,ascii是文件傳輸方式,如果是傳輸二進(jìn)制文件,如exe(可執(zhí)行程序文件)、zip(壓縮文件)等,則ascii要換成binary,initlhrw.txt是要傳輸?shù)奈募?,cd cb2000是轉(zhuǎn)到計(jì)算機(jī)B中FTP用戶backup下的目錄。
通過在計(jì)劃任務(wù)程序中,將該批處理程序增加到計(jì)劃任務(wù)中,就可以實(shí)現(xiàn)文件的定時(shí)自動(dòng)傳輸。
小知識(shí):
在unix操作系統(tǒng)下,用ftp傳輸文件的方法如下:
編寫shell 文件ft.sh,內(nèi)容如下:
ftp -n <<!
open 16.73.81.20
user backup cjy
ascii
cd cb2000
get initlhrw.txt
bye
!
將該文件權(quán)限設(shè)置為可執(zhí)行,然后執(zhí)行ft.sh文件即可。
二、利用屏幕保護(hù)程序來實(shí)現(xiàn)定時(shí)自動(dòng)提示功能
在計(jì)算機(jī)中心機(jī)房的日常計(jì)算機(jī)運(yùn)行管理中,常常會(huì)遇到在某些特定的日期,需要或不需要進(jìn)行某些操作,由于運(yùn)行管理和操作人員可能不是一個(gè)人,而是幾個(gè)人輪流值班進(jìn)行管理和操作,這樣有可能會(huì)出現(xiàn)在這些特定日期運(yùn)行管理和操作人員會(huì)忘記這些特定的事項(xiàng),從而影響到業(yè)務(wù)的正常開展,采用計(jì)算機(jī)自動(dòng)提示的方法,可以很好地解決這個(gè)問題,具體方法如下:
1、在windows 98 的“開始”-----à“程序”------à“附件”-----à“系統(tǒng)工具”--------à“計(jì)劃任務(wù)”中添加下列任務(wù):
任務(wù)命令:c:\cjy\bat1.bat
bat1.bat批處理程序內(nèi)容如下:
@echo off
copy c:\windows\control1.ini c:\windows\control.ini > null
copy c:\windows\system1.ini c:\windows\system.ini > null
c:\windows\notepad.exe d:\cjy\note.txt
start c:\windows\system\滾動(dòng)字幕.scr
其中note.txt文件中就是要進(jìn)行自動(dòng)提示的內(nèi)容。
“滾動(dòng)字幕.scr”中的文字內(nèi)容也同此,文字內(nèi)容存放在c:\windows\control1.ini文件中。通過改變system.ini文件,可以改變屏幕保護(hù)所用的scr文件(條件是計(jì)算機(jī)的屏幕保護(hù)未設(shè)置為“無(wú)”)。
2、 設(shè)置平時(shí)計(jì)算機(jī)處于空閑(未操作)狀態(tài)后15分鐘進(jìn)入“黑屏”保護(hù)狀態(tài),并且設(shè)置計(jì)算機(jī)屏幕及硬盤為“從不”關(guān)閉。
3、 設(shè)定好計(jì)劃任務(wù)中的計(jì)劃任務(wù)的時(shí)間及日期,當(dāng)時(shí)間到了預(yù)定的時(shí)間,屏幕就會(huì)立即顯示給定的文字提示。
4、 再增加一個(gè)計(jì)劃任務(wù),執(zhí)行下列命令:ctrl1.bat,內(nèi)容為:
@echo off
copy c:\windows\systems.ini c:\windows\system.ini > null
start c:\windows\system\黑屏.scr
這個(gè)計(jì)劃任務(wù)的作用是將屏幕保護(hù)程序由“滾動(dòng)字幕”變?yōu)?#8220;黑屏”,從而達(dá)到當(dāng)時(shí)間過了自動(dòng)提示的時(shí)間后,取消提示內(nèi)容的顯示。
這里,system1.ini中有關(guān)屏幕保護(hù)程序的設(shè)置為:
SCRNSAVE.EXE=C:\WINDOWS\SYSTEM\滾動(dòng)字幕.SCR
systems.ini中有關(guān)屏幕保護(hù)程序的設(shè)置為:
SCRNSAVE.EXE=C:\WINDOWS\SYSTEM\黑屏.SCR
這里,control1.ini中有關(guān)自動(dòng)提示的文字內(nèi)容和顯示的字體、顏色、大小,顯示速度的設(shè)置為:
[屏幕保護(hù)程序。字幕]
Text=提示:今天是1日,要把O-yyyymmdd-1406-0000.zip文件從會(huì)計(jì)報(bào)表服務(wù)器郵箱中轉(zhuǎn)發(fā)給分行會(huì)計(jì)結(jié)算處,晚班人員晚上7:00要做電費(fèi)統(tǒng)計(jì)。安全員要通過NOTES發(fā)送安全報(bào)表
Font=宋體
Size=72
BackgroundColor=0 0 0
TextColor=255 0 0
Speed=60
Attributes=00011
CharSet=134
注意:如果在平時(shí)把計(jì)算機(jī)屏幕保護(hù)程序設(shè)置為“無(wú)”,則即使把systemn.ini用system1.ini來代替,也無(wú)法自動(dòng)把屏幕保護(hù)程序從“無(wú)”變?yōu)?#8220;滾動(dòng)字幕”。
三、計(jì)算機(jī)自動(dòng)校時(shí)
在計(jì)算機(jī)中心機(jī)房中,常常會(huì)有很多計(jì)算機(jī)工作站和服務(wù)器,隨著時(shí)間的推移,這么多計(jì)算機(jī)的系統(tǒng)時(shí)間與北京標(biāo)準(zhǔn)時(shí)間相比往往會(huì)出現(xiàn)差異,有的計(jì)算機(jī)系統(tǒng)時(shí)間會(huì)變快,有的計(jì)算機(jī)系統(tǒng)時(shí)間會(huì)變慢,如果靠人工定期進(jìn)行校準(zhǔn),不僅工作量大,而且不可能及時(shí)對(duì)每一臺(tái)計(jì)算機(jī)的系統(tǒng)時(shí)間進(jìn)行及時(shí)的校準(zhǔn),如果采用計(jì)算機(jī)自動(dòng)校時(shí),則可以解決這個(gè)問題,具體方法如下:
1、選一臺(tái)計(jì)算機(jī)(為敘述方便,設(shè)為計(jì)算機(jī)A,該計(jì)算機(jī)走時(shí)要相對(duì)準(zhǔn)確,在需要校時(shí)時(shí)必須是處于開機(jī)狀態(tài)),定期調(diào)準(zhǔn)時(shí)間,作為時(shí)間標(biāo)準(zhǔn);
2、在通過局域網(wǎng)與計(jì)算機(jī)A相連的其他計(jì)算機(jī)B上,建一個(gè)批處理程序time_ds.bat(該文件要放在windows操作系統(tǒng)的安裝目錄下),內(nèi)容為:
net time \servername /set /yes
其中,servername為計(jì)算機(jī)A的計(jì)算機(jī)名;
3、將time_ds.bat文件保存到windows目錄中,并對(duì)該程序?qū)傩栽O(shè)置為“最小化”和“退出時(shí)關(guān)閉”,這樣在相同目錄下,就會(huì)生成time_ds.pif文件,將該文件加入到啟動(dòng)組中。這樣可以保證計(jì)算機(jī)B在開機(jī)時(shí)自動(dòng)與計(jì)算機(jī)A校時(shí))。
4、通過在計(jì)劃任務(wù)程序中,將該批處理程序增加到計(jì)劃任務(wù)中,就可以實(shí)現(xiàn)計(jì)算機(jī)定時(shí)自動(dòng)校時(shí)。
用命令 net time \servrname /set /yes 不僅能夠?qū)r(shí)間進(jìn)行同步,而且也包括對(duì)日期(年、月、日)進(jìn)行同步。
四、文件的定時(shí)自動(dòng)壓縮
假如在計(jì)算機(jī)A中,每天會(huì)產(chǎn)生一些字節(jié)數(shù)很大的數(shù)據(jù)文件,占用大量的計(jì)算機(jī)硬盤空間,為了節(jié)約計(jì)算機(jī)的硬盤空間,需要每天對(duì)這些數(shù)據(jù)文件進(jìn)行壓縮,如果采用人工方法進(jìn)行處理,不僅繁瑣而且工作量大,有時(shí)由于忘記進(jìn)行壓縮,造成計(jì)算機(jī)硬盤空間不夠,使得計(jì)算機(jī)死機(jī)甚至崩潰,采用文件的自動(dòng)壓縮,可以很好解決這個(gè)問題,具體方法如下:
在計(jì)算機(jī)A的windows 98操作系統(tǒng)下,建立批處理程序文件job1.bat,該文件內(nèi)容如下:
d:\winrar\winrar.exe M e:\abp.zip c:\ptas\backup\backup\*.dmp
這里,abp.zip是壓縮后產(chǎn)生的文件,*.dmp是要進(jìn)行壓縮的文件,M表示將原文件移到e:\abp.zip進(jìn)行壓縮(即壓縮后自動(dòng)刪除原文件)。
通過在計(jì)劃任務(wù)程序中,將該批處理程序增加到計(jì)劃任務(wù)中,就可以實(shí)現(xiàn)文件的定時(shí)自動(dòng)壓縮。
五、業(yè)務(wù)終端的自動(dòng)激活和自動(dòng)終止
在銀行的大量業(yè)務(wù)網(wǎng)點(diǎn)中,有很多業(yè)務(wù)終端,這些終端由于所辦理的業(yè)務(wù)不同,其管理要求也不同,如果通過人工方法對(duì)這些終端進(jìn)行管理,不僅繁瑣而且工作量大,而且由于要管理的終端數(shù)量多,有時(shí)難免會(huì)忘記對(duì)某些終端及時(shí)進(jìn)行終止,從而存在安全隱患,如果對(duì)這些業(yè)務(wù)終端采用自動(dòng)激活和自動(dòng)終止的辦法進(jìn)行管理,則可以很好地解決這些問題。由于銀行網(wǎng)點(diǎn)所用的終端都是在UNIX操作系統(tǒng)下工作,在UNIX操作系統(tǒng)下,操作系統(tǒng)同樣也提供了定時(shí)自動(dòng)運(yùn)行指定程序的功能,下面就如何利用UNIX操作系統(tǒng)提供的這一功能,實(shí)現(xiàn)在UNIX操作系統(tǒng)下定時(shí)自動(dòng)激活和自動(dòng)終止指定終端的方法做一介紹。
首先,要用超級(jí)用戶登錄系統(tǒng),然后在/usr/spool/cron/crontabs目錄下,找到文件名為root的文件(在UNIX操作系統(tǒng)下,通常在該目錄下都會(huì)有該文件,如果沒有該文件,則可以創(chuàng)建一個(gè)),然后用vi編輯器,在該文件中,按照下面的格式,添加所要計(jì)劃運(yùn)行的任務(wù):
20 17 * 3,5 * /usr/cite/uptty_t.sh 4 tty67h
#30 18 * * * /usr/cite/shell/killtty.sh tty67h
0 16 * * 1-5 /usr/cite/shell/killtty.sh tty65h
上面的每一行代表一個(gè)任務(wù),每行有六個(gè)字段組成,每個(gè)字段間用空格分開,前5個(gè)字段由整數(shù)表示,為時(shí)間,最后一個(gè)字段為要運(yùn)行的程序,順序?yàn)椋?div style="height:15px;">
分鐘(0-59) 小時(shí)(0-23) 日(1-31) 月(1-12) 星期(0-6) 要運(yùn)行的程序
每個(gè)字段可用“-”號(hào)連接兩個(gè)數(shù)表示一個(gè)范圍,或用“,”分開幾個(gè)數(shù),表示任一數(shù)確定的時(shí)間;或用“*”表示該段省缺,即該字段所有有效值都合法。
每行最前面的#號(hào)表示該行是注釋行。星期字段中0代表星期天,6代表星期六。
添加完所要增加的計(jì)劃任務(wù)后,保存并退出vi編輯器。然后執(zhí)行下列命令:
crontab root
這個(gè)命令把root文件中的內(nèi)容復(fù)制到crontab文件中,一次只能有一個(gè)crontab文件。注意,root文件按要求輸入并保存好后,一定要執(zhí)行上面的命令,否則所添加的計(jì)劃任務(wù)不會(huì)按要求執(zhí)行。在某些系統(tǒng)中,并不是所有用戶都能使用crontab。目錄/etc/cron.d 或 /usr/lib/cron中的cron.allow文件列出了可以使用crontab的用戶登錄名,如果沒有這個(gè)文件,則文件/usr/lib/cron/cron.deny中列出了不可以使用crontab的用戶名。如果該文件存在,但文件是空的,則每個(gè)人都可以使用crontab。如果兩個(gè)文件都不存在,則只有系統(tǒng)超級(jí)用戶可以使用crontab。
在使用上面方法進(jìn)行定時(shí)自動(dòng)運(yùn)行指定程序的時(shí)候,要注意在被執(zhí)行的程序中,要用cd命令將工作目錄切換到指定目錄下,否則程序有可能運(yùn)行不正常。
六、過期文件的自動(dòng)刪除
假如每天要在18:30自動(dòng)刪除/usr/switch/BACKUP/DB/FULL目錄下的當(dāng)前計(jì)算機(jī)系統(tǒng)日期前2天產(chǎn)生的所有文件(包括該目錄下所有子目錄里前2天產(chǎn)生的所有文件),則要在/usr/spool/cron/crontabs/root文件中添加下列一行:
30 18 * * * /usr/spool/cron/crontabs/cj.sh
添加完上面一行后,保存退出vi編輯器,然后執(zhí)行下列命令:
crontab root
這樣每天18:30系統(tǒng)就會(huì)自動(dòng)刪除/usr/switch/BACKUP/DB/FULL目錄下的當(dāng)前計(jì)算機(jī)系統(tǒng)日期前2天產(chǎn)生的所有文件(包括該目錄下所有子目錄里前2天產(chǎn)生的所有文件)。
可執(zhí)行文件cj.sh存放在/usr/spool/cron/crontabs目錄下,注意該文件必須被賦予執(zhí)行權(quán)。該文件的內(nèi)容為:
cd /usr/switch/BACKUP/DB/FULL
find . -type d -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;
find . -type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;
cp /usr/spool/cron/crontabs/db_serio.dat .
cp /usr/spool/cron/crontabs/ftptmp .
cp /usr/spool/cron/crontabs/backuphead .
chmod 777 ftptmp
chmod 777 backuphead
chown switch *
chgrp informix *
注意:在該被執(zhí)行的程序cj.sh中,用cd /usr/switch/BACKUP/DB/FULL
命令將工作目錄切換到了指定目錄下,保證程序中第二行語(yǔ)句和第三行語(yǔ)句find . -type d -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;和find . –type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;能正確執(zhí)行。
在find . -type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null \;語(yǔ)句中,選項(xiàng)-atime +2是表示找出最近2天前訪問過的文件(日期從運(yùn)行可執(zhí)行程序cj.sh時(shí)的那個(gè)時(shí)間算起,從該時(shí)間起24小時(shí)以內(nèi)算當(dāng)天),該選項(xiàng)還可以有下列值:
-ctime n: 找出n天前、后或n天改變的文件,包括權(quán)限改變的文件;
-mtime n: 找出n天前、后h和當(dāng)天修改或?qū)懭氲奈募?div style="height:15px;">
選項(xiàng) –exec 命令 ‘{}’ \; 對(duì)每個(gè)匹配的文件運(yùn)行命令。指定的命令必須跟換義分號(hào)(\;)。在命令運(yùn)行時(shí), ‘{}’變?cè)鎿Q當(dāng)前文件名。該選項(xiàng)也可以用下列值:
命令 /bin/rm –r在這里是刪除指定目錄/usr/switch/BACKUP/DB/FULL下的文件或目錄(由選項(xiàng) –type f 或-type d來指定),如果是刪除普通文件(由選項(xiàng) –type f指定),則包括該目錄下所有子目錄里滿足指定時(shí)間的文件。
以上列舉了幾個(gè)應(yīng)用實(shí)例,說明了在計(jì)算機(jī)的運(yùn)行管理中,如何實(shí)現(xiàn)計(jì)算機(jī)運(yùn)行管理的自動(dòng)化。另外也可以利用計(jì)劃任務(wù)程序,實(shí)現(xiàn)諸如定時(shí)自動(dòng)整理、組織硬盤文件等,在此不一一列舉。