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