李炳勝
在Windows平臺上,相信大家都聽說或使用過“任務計劃”程序。對一些如數據備份、磁盤整理等需要定期執行的任務,人們為了避免重復勞動,經常通過創建計劃任務,由系統自動執行相應的操作。
在Linux平臺上,計劃任務分為反復執行的任務和一次性執行的任務,這兩類任務的創建與管理分別通過crontab命令和at命令來完成,而計劃任務的執行是由稱為crond的守護進程來完成的。雖然crontab和at命令功能很強大,但對于普通用戶而言,操作起來仍很不方便。
那么在Linux平臺上有沒有像Windows的“任務計劃”那樣的程序呢?答案是肯定的,那就是GnomeSchedule(GNOME任務計劃)。Gnome Schedule是基于Python語言并使用pygt,(庫開發的用于計劃任務管理的圖形界面程序,使用它,Linux用戶可以輕松地完成兩類計劃任務的創建、編輯、刪除等工作。這里我們就以Linux發行版Ubuntu desktop 8.04(集成桌面環境為GNOME)為例,介紹一下該功能。
安裝gnome-schedule
Ubuntu系統默認沒有安裝GnomeSchedule,我們可以直接在線從軟件源中下載并安裝該軟件。在GNOME集成桌面環境中,打開一個X-Window終端窗口,輸入以下命令來進行安裝:

sudo apt-get install gnome-schedule
Gnome Schedule的當前版本為2.0.2。有時軟件源中的軟件包不是最新的,為了獲取最新的軟件包,我們也可以從站點http://gnome-schedule.sourceforge.net下載tar.gz格式的安裝文件,安裝時首先使用tar命令解壓縮安裝包:
tar-ZXVf gnome-schedule-2.0.2.tar.gz
命令執行后,將在當前目錄下生成gnome-schedule-2.0.2子目錄,進到該目錄中,執行./configure命令進行系統環境檢查,然后輸入命令make進行編譯,編譯成功后,輸入命令makeinstall進行安裝。安裝好后,在菜單“系統”/“首選項”下可以找到“Scheduledtasks”(計劃任務)項。
創建計劃任務實戰
在Linux系統中,與使用命令行工具創建和管理計劃任務相比,使用GnomeSchedule圖形界面程序執行類似操作更加直觀、方便。需要指出的是,當以普通用戶身份運行Gnome Schedule時,通過程序創建的計劃任務屬于該用戶,而不同的登錄用戶均可以使用GnomeSchedule創建屬于自己的計劃任務。
1創建反復執行的任務
反復執行的任務也稱周期性任務或重復性任務,為了確認用Gnome Schedule創建的計劃任務確實是反復執行的,我們讓創建的任務每分鐘執行一次,每執行一次則在用戶本戶目錄下(/home/lbs)生成一個文本文件,文件名格式為“年月日時分秒.txt”,其中年份為四位年份,文件擴展名為“.txt”,使用touch命令創建這樣的文件。我們將命令放到腳本文件mysh.sh中,腳本文件內容如下:
#/bin/sh
touch /home/1bs/'date+%Y%m%d%H%M%S'.txt
腳本文件創建好后,放置在用戶本戶目錄下。使用命令:chmod U+Xmysh.sh使腳本文件成為可執行文件。可執行腳本文件mysh.sh也就是我們需要反復執行的命令。現在我們使用GnomeSchedule創建一個計劃任務,用來執行該文件。在菜單“系統”/“首選項”下找到“Scheduledtasks”(計劃任務)項,點擊該項則運行程序。我們也可以直接在X-Window終端窗口中輸入命令:gnome-schedule來運行該程序。
點擊Gnome Schedule程序主界面工具欄上的“新建”按鈕,出現計劃任務類型選擇對話框(見圖1),在該對話框中列出了創建計劃任務的三種方式:創建反復執行的任務,創建一次性執行的任務及從預定義模板中創建任務。因是新建反復執行的計劃任務,因而我們點擊對話框的第一個命令按鈕“A taskthat launches recurrently”(反復執行任務),接著出現反復執行計劃任務創建窗口(見圖2)。

反復執行計劃任務窗口大致分為三個部分:命令、日期時間設定及操作命令按鈕區。在“命令”區的“description”(任務描述)欄填入任務的描述信息,如“test”,在“command”欄輸入命令的完全路徑,這里我們輸入可執行腳本文件的完全路徑,如“/home/1bs/mysh.sh”,在“command”欄下方有一復選框,勾選上則表示如果命令在控制臺有輸出信息時則強制其不顯示,否則正常顯示出來。用戶可根據需要決定是否勾選該項。計劃任務的“命令”設定好后,接下來是設定在什么時間執行該項任務,日期時間設置分為基本設置與高級設置。“基本”為默認項,基本設置以下拉列表框的形式列出是每分鐘、每小時、每天、每月、每周還是在系統重啟時執行該計劃任務。而如果要精確設置計劃任務的執行時間,則點選“高級”項,通過點擊分、時、天、月、周日之后的編輯按鈕可以對每一項進行更詳細的設定。針對創建的反復執行任務,我們選擇“高級”項,在“Minute”(分鐘)欄填上“1”,其余欄為“*。值得指出的是,無論是基本設定還是高級設定,設定后的時間均可在預覽區顯示出來,非常直觀方便。
任務創建完畢后,點擊窗口下方的“Add as template”(添加為模板)按鈕,我們可以將該任務添加到計劃任務模板中,供下次創建計劃任務時調用。點擊“應用”按鈕,則創建計劃任務并顯示在Gnome Schedule程序主窗口的計劃任務列表中。選中列表中的該項任務后,點擊工具欄上的“Run task”(運行任務)按鈕,則無需等到設定的時間,就可以運行該任務了。當然,我們也可以讓系統的crond守護進程為我們自動執行該項任務。

2創建一次性任務
有時,我們會碰到一些只需執行一次的管理任務,如執行完某個操作后關機等。利用GnomeSchedule,我們可以很容易地創建這種一次性計劃任務。下面我們就來創建這樣的任務,任務內容為獲取當前系統的內存使用情況,并轉存到用戶本戶目錄下的文件mem.txt中。
點擊程序工具欄上的“新建”按鈕,在計劃任務類型選擇窗口,點擊第二個命令按鈕“A task that launchcs onetime”(一次性任務),則出現創建一
次性計劃任務窗口(見圖3)。在“TaskDescription”(任務描述)欄輸入計劃任務的描述信息。如“testmem”,然后是設定命令的執行日期和時間。設定日期時,我們既可以手動輸入日期,也可以通過微調按鈕設定日期或通過點擊“Calendar”(日歷)按鈕,從彈出的日歷中選擇日期。日期時間設定好后,接著是設定一次性任務所要執行的命令(也可以是可執行腳本文件),這里我們在“Task”框內輸入命令“free-m>/home/1bs/mem.txt”。與創建反復執行的任務一樣,我們也可以點擊窗口下方的“Add as template”(添加為模板)按鈕來將該一次性任務添加到計劃任務模板中,供下次創建一次性計劃任務時調用。點擊“應用”按鈕,則創建一次性計劃任務并顯示在GnomeSchedule程序主窗口的計劃任務列表中。選中該項任務后,點擊工具欄上的“Runtask”(運行任務)按鈕,則無需等到設定的時間,就可以運行一次性任務了。
3通過命令行查看或編輯創建的計劃任務
通過Gnome Schedule創建了周期性任務和一次性執行任務后,我們可以通過命令行工具來查看或編輯甚至刪除已創建的任務。在X-Window終端窗口中,輸入命令:crontab-1,則在控制臺輸出當前用戶的周期性任務列表,如果需要查看系統中所有用戶的周期性任務列表,則需要以root用戶身份執行該命令。輸入命令:crontab-e則進入計劃任務的編輯界面,默認的編輯器為nano,我們可以在編輯界面中對周期性計劃任務進行編輯或刪除它。對于有GnomeSchedule創建的一次性任務,我們可以在X-Window終端窗口中輸入命令:at-1或atq來查看當前用戶創建的一次性任務。也可以輸入命令:at-d或atrn2來刪除它。
4Gnome sCheduoe的任務模板功能
Gnome Schedule讓計劃任務的創建與管理變得簡單,其提供的任務模板功能不僅能保存計劃任務的歷史副本,也使得Linux用戶在創建復雜計劃任務時變得異常方便、快捷。除了在創建計劃任務時可添加到任務模板中,Gnome Schedule提供了單獨的創建任務模板的功能,用戶可根據需要事先創建許多計劃任務的模板。
由于有了圖形化的任務管理程序Gnome Schedule,Linux用戶創建和管理系統計劃任務的工作變得很輕松,即使是普通用戶,也很容易上手操作。而通過使用圖形化的應用程序,用戶也可以加深對crontab、at等命令的理解。