李炳勝
在Windows平臺(tái)上,相信大家都聽說或使用過“任務(wù)計(jì)劃”程序。對(duì)一些如數(shù)據(jù)備份、磁盤整理等需要定期執(zhí)行的任務(wù),人們?yōu)榱吮苊庵貜?fù)勞動(dòng),經(jīng)常通過創(chuàng)建計(jì)劃任務(wù),由系統(tǒng)自動(dòng)執(zhí)行相應(yīng)的操作。
在Linux平臺(tái)上,計(jì)劃任務(wù)分為反復(fù)執(zhí)行的任務(wù)和一次性執(zhí)行的任務(wù),這兩類任務(wù)的創(chuàng)建與管理分別通過crontab命令和at命令來完成,而計(jì)劃任務(wù)的執(zhí)行是由稱為crond的守護(hù)進(jìn)程來完成的。雖然crontab和at命令功能很強(qiáng)大,但對(duì)于普通用戶而言,操作起來仍很不方便。
那么在Linux平臺(tái)上有沒有像Windows的“任務(wù)計(jì)劃”那樣的程序呢?答案是肯定的,那就是GnomeSchedule(GNOME任務(wù)計(jì)劃)。Gnome Schedule是基于Python語言并使用pygt,(庫開發(fā)的用于計(jì)劃任務(wù)管理的圖形界面程序,使用它,Linux用戶可以輕松地完成兩類計(jì)劃任務(wù)的創(chuàng)建、編輯、刪除等工作。這里我們就以Linux發(fā)行版Ubuntu desktop 8.04(集成桌面環(huán)境為GNOME)為例,介紹一下該功能。
安裝gnome-schedule
Ubuntu系統(tǒng)默認(rèn)沒有安裝GnomeSchedule,我們可以直接在線從軟件源中下載并安裝該軟件。在GNOME集成桌面環(huán)境中,打開一個(gè)X-Window終端窗口,輸入以下命令來進(jìn)行安裝:
sudo apt-get install gnome-schedule
Gnome Schedule的當(dāng)前版本為2.0.2。有時(shí)軟件源中的軟件包不是最新的,為了獲取最新的軟件包,我們也可以從站點(diǎn)http://gnome-schedule.sourceforge.net下載tar.gz格式的安裝文件,安裝時(shí)首先使用tar命令解壓縮安裝包:
tar-ZXVf gnome-schedule-2.0.2.tar.gz
命令執(zhí)行后,將在當(dāng)前目錄下生成gnome-schedule-2.0.2子目錄,進(jìn)到該目錄中,執(zhí)行./configure命令進(jìn)行系統(tǒng)環(huán)境檢查,然后輸入命令make進(jìn)行編譯,編譯成功后,輸入命令makeinstall進(jìn)行安裝。安裝好后,在菜單“系統(tǒng)”/“首選項(xiàng)”下可以找到“Scheduledtasks”(計(jì)劃任務(wù))項(xiàng)。
創(chuàng)建計(jì)劃任務(wù)實(shí)戰(zhàn)
在Linux系統(tǒng)中,與使用命令行工具創(chuàng)建和管理計(jì)劃任務(wù)相比,使用GnomeSchedule圖形界面程序執(zhí)行類似操作更加直觀、方便。需要指出的是,當(dāng)以普通用戶身份運(yùn)行Gnome Schedule時(shí),通過程序創(chuàng)建的計(jì)劃任務(wù)屬于該用戶,而不同的登錄用戶均可以使用GnomeSchedule創(chuàng)建屬于自己的計(jì)劃任務(wù)。
1創(chuàng)建反復(fù)執(zhí)行的任務(wù)
反復(fù)執(zhí)行的任務(wù)也稱周期性任務(wù)或重復(fù)性任務(wù),為了確認(rèn)用Gnome Schedule創(chuàng)建的計(jì)劃任務(wù)確實(shí)是反復(fù)執(zhí)行的,我們讓創(chuàng)建的任務(wù)每分鐘執(zhí)行一次,每執(zhí)行一次則在用戶本戶目錄下(/home/lbs)生成一個(gè)文本文件,文件名格式為“年月日時(shí)分秒.txt”,其中年份為四位年份,文件擴(kuò)展名為“.txt”,使用touch命令創(chuàng)建這樣的文件。我們將命令放到腳本文件mysh.sh中,腳本文件內(nèi)容如下:
#/bin/sh
touch /home/1bs/'date+%Y%m%d%H%M%S'.txt
腳本文件創(chuàng)建好后,放置在用戶本戶目錄下。使用命令:chmod U+Xmysh.sh使腳本文件成為可執(zhí)行文件??蓤?zhí)行腳本文件mysh.sh也就是我們需要反復(fù)執(zhí)行的命令?,F(xiàn)在我們使用GnomeSchedule創(chuàng)建一個(gè)計(jì)劃任務(wù),用來執(zhí)行該文件。在菜單“系統(tǒng)”/“首選項(xiàng)”下找到“Scheduledtasks”(計(jì)劃任務(wù))項(xiàng),點(diǎn)擊該項(xiàng)則運(yùn)行程序。我們也可以直接在X-Window終端窗口中輸入命令:gnome-schedule來運(yùn)行該程序。
點(diǎn)擊Gnome Schedule程序主界面工具欄上的“新建”按鈕,出現(xiàn)計(jì)劃任務(wù)類型選擇對(duì)話框(見圖1),在該對(duì)話框中列出了創(chuàng)建計(jì)劃任務(wù)的三種方式:創(chuàng)建反復(fù)執(zhí)行的任務(wù),創(chuàng)建一次性執(zhí)行的任務(wù)及從預(yù)定義模板中創(chuàng)建任務(wù)。因是新建反復(fù)執(zhí)行的計(jì)劃任務(wù),因而我們點(diǎn)擊對(duì)話框的第一個(gè)命令按鈕“A taskthat launches recurrently”(反復(fù)執(zhí)行任務(wù)),接著出現(xiàn)反復(fù)執(zhí)行計(jì)劃任務(wù)創(chuàng)建窗口(見圖2)。
反復(fù)執(zhí)行計(jì)劃任務(wù)窗口大致分為三個(gè)部分:命令、日期時(shí)間設(shè)定及操作命令按鈕區(qū)。在“命令”區(qū)的“description”(任務(wù)描述)欄填入任務(wù)的描述信息,如“test”,在“command”欄輸入命令的完全路徑,這里我們輸入可執(zhí)行腳本文件的完全路徑,如“/home/1bs/mysh.sh”,在“command”欄下方有一復(fù)選框,勾選上則表示如果命令在控制臺(tái)有輸出信息時(shí)則強(qiáng)制其不顯示,否則正常顯示出來。用戶可根據(jù)需要決定是否勾選該項(xiàng)。計(jì)劃任務(wù)的“命令”設(shè)定好后,接下來是設(shè)定在什么時(shí)間執(zhí)行該項(xiàng)任務(wù),日期時(shí)間設(shè)置分為基本設(shè)置與高級(jí)設(shè)置?!盎尽睘槟J(rèn)項(xiàng),基本設(shè)置以下拉列表框的形式列出是每分鐘、每小時(shí)、每天、每月、每周還是在系統(tǒng)重啟時(shí)執(zhí)行該計(jì)劃任務(wù)。而如果要精確設(shè)置計(jì)劃任務(wù)的執(zhí)行時(shí)間,則點(diǎn)選“高級(jí)”項(xiàng),通過點(diǎn)擊分、時(shí)、天、月、周日之后的編輯按鈕可以對(duì)每一項(xiàng)進(jìn)行更詳細(xì)的設(shè)定。針對(duì)創(chuàng)建的反復(fù)執(zhí)行任務(wù),我們選擇“高級(jí)”項(xiàng),在“Minute”(分鐘)欄填上“1”,其余欄為“*。值得指出的是,無論是基本設(shè)定還是高級(jí)設(shè)定,設(shè)定后的時(shí)間均可在預(yù)覽區(qū)顯示出來,非常直觀方便。
任務(wù)創(chuàng)建完畢后,點(diǎn)擊窗口下方的“Add as template”(添加為模板)按鈕,我們可以將該任務(wù)添加到計(jì)劃任務(wù)模板中,供下次創(chuàng)建計(jì)劃任務(wù)時(shí)調(diào)用。點(diǎn)擊“應(yīng)用”按鈕,則創(chuàng)建計(jì)劃任務(wù)并顯示在Gnome Schedule程序主窗口的計(jì)劃任務(wù)列表中。選中列表中的該項(xiàng)任務(wù)后,點(diǎn)擊工具欄上的“Run task”(運(yùn)行任務(wù))按鈕,則無需等到設(shè)定的時(shí)間,就可以運(yùn)行該任務(wù)了。當(dāng)然,我們也可以讓系統(tǒng)的crond守護(hù)進(jìn)程為我們自動(dòng)執(zhí)行該項(xiàng)任務(wù)。
2創(chuàng)建一次性任務(wù)
有時(shí),我們會(huì)碰到一些只需執(zhí)行一次的管理任務(wù),如執(zhí)行完某個(gè)操作后關(guān)機(jī)等。利用GnomeSchedule,我們可以很容易地創(chuàng)建這種一次性計(jì)劃任務(wù)。下面我們就來創(chuàng)建這樣的任務(wù),任務(wù)內(nèi)容為獲取當(dāng)前系統(tǒng)的內(nèi)存使用情況,并轉(zhuǎn)存到用戶本戶目錄下的文件mem.txt中。
點(diǎn)擊程序工具欄上的“新建”按鈕,在計(jì)劃任務(wù)類型選擇窗口,點(diǎn)擊第二個(gè)命令按鈕“A task that launchcs onetime”(一次性任務(wù)),則出現(xiàn)創(chuàng)建一
次性計(jì)劃任務(wù)窗口(見圖3)。在“TaskDescription”(任務(wù)描述)欄輸入計(jì)劃任務(wù)的描述信息。如“testmem”,然后是設(shè)定命令的執(zhí)行日期和時(shí)間。設(shè)定日期時(shí),我們既可以手動(dòng)輸入日期,也可以通過微調(diào)按鈕設(shè)定日期或通過點(diǎn)擊“Calendar”(日歷)按鈕,從彈出的日歷中選擇日期。日期時(shí)間設(shè)定好后,接著是設(shè)定一次性任務(wù)所要執(zhí)行的命令(也可以是可執(zhí)行腳本文件),這里我們?cè)凇癟ask”框內(nèi)輸入命令“free-m>/home/1bs/mem.txt”。與創(chuàng)建反復(fù)執(zhí)行的任務(wù)一樣,我們也可以點(diǎn)擊窗口下方的“Add as template”(添加為模板)按鈕來將該一次性任務(wù)添加到計(jì)劃任務(wù)模板中,供下次創(chuàng)建一次性計(jì)劃任務(wù)時(shí)調(diào)用。點(diǎn)擊“應(yīng)用”按鈕,則創(chuàng)建一次性計(jì)劃任務(wù)并顯示在GnomeSchedule程序主窗口的計(jì)劃任務(wù)列表中。選中該項(xiàng)任務(wù)后,點(diǎn)擊工具欄上的“Runtask”(運(yùn)行任務(wù))按鈕,則無需等到設(shè)定的時(shí)間,就可以運(yùn)行一次性任務(wù)了。
3通過命令行查看或編輯創(chuàng)建的計(jì)劃任務(wù)
通過Gnome Schedule創(chuàng)建了周期性任務(wù)和一次性執(zhí)行任務(wù)后,我們可以通過命令行工具來查看或編輯甚至刪除已創(chuàng)建的任務(wù)。在X-Window終端窗口中,輸入命令:crontab-1,則在控制臺(tái)輸出當(dāng)前用戶的周期性任務(wù)列表,如果需要查看系統(tǒng)中所有用戶的周期性任務(wù)列表,則需要以root用戶身份執(zhí)行該命令。輸入命令:crontab-e則進(jìn)入計(jì)劃任務(wù)的編輯界面,默認(rèn)的編輯器為nano,我們可以在編輯界面中對(duì)周期性計(jì)劃任務(wù)進(jìn)行編輯或刪除它。對(duì)于有GnomeSchedule創(chuàng)建的一次性任務(wù),我們可以在X-Window終端窗口中輸入命令:at-1或atq來查看當(dāng)前用戶創(chuàng)建的一次性任務(wù)。也可以輸入命令:at-d或atrn2來刪除它。
4Gnome sCheduoe的任務(wù)模板功能
Gnome Schedule讓計(jì)劃任務(wù)的創(chuàng)建與管理變得簡(jiǎn)單,其提供的任務(wù)模板功能不僅能保存計(jì)劃任務(wù)的歷史副本,也使得Linux用戶在創(chuàng)建復(fù)雜計(jì)劃任務(wù)時(shí)變得異常方便、快捷。除了在創(chuàng)建計(jì)劃任務(wù)時(shí)可添加到任務(wù)模板中,Gnome Schedule提供了單獨(dú)的創(chuàng)建任務(wù)模板的功能,用戶可根據(jù)需要事先創(chuàng)建許多計(jì)劃任務(wù)的模板。
由于有了圖形化的任務(wù)管理程序Gnome Schedule,Linux用戶創(chuàng)建和管理系統(tǒng)計(jì)劃任務(wù)的工作變得很輕松,即使是普通用戶,也很容易上手操作。而通過使用圖形化的應(yīng)用程序,用戶也可以加深對(duì)crontab、at等命令的理解。