第三章

任務準備

一、認識RPM

(1)RPM套件管理程序。

RPM的全稱是Red Hat Package Manager,即Red Hat公司的軟件包管理程序。RPM就是把RPM包格式的套件安裝到Linux主機上的一套管理程序。使用RPM套件管理程序可以方便完成軟件的安裝、查詢、升級和卸載等管理操作。

(2)RPM套件。

RPM套件就是以RPM格式編譯打包的軟件安裝包。RPM套件是在特定Linux主機上編譯打包完成的,RPM套件中不但包含有軟件編輯後的程序,還記錄了建立該套件包的Linux主機的安裝環境參數,特別是該套件安裝時所需的必須事先安裝的其他套件,即套件的依賴關係。這些數據稱為RPM數據庫記錄。

RPM管理程序就是利用這些數據記錄把套件安裝在目標Linux主機上的。

RPM套件包文件的一般格式形如linuxqq-v1.0.2.i386.rpm。

①套件名或軟件名。

②版本號。

③硬件平台,可以是i386、i586、i686、noarch等,i386可用於所有x86硬件平台,noarch則表示沒有硬件平台限製。

④RPM套件包的後綴名。

RPM套件已經編譯打包,安裝很方便,使用RPM管理程序按套件中的安裝環境參數記錄,把套件中的文件放到相關的目錄中就完成了軟件的安裝。

二、RPM管理程序

[root@vm ~]rpm 選項 套件包文件名|套件名

選項說明:

-i:安裝套件。

-U:升級套件。

-e:卸載套件。

-q:查詢套件。

-h:安裝時顯示由符號()組成的進度條。

-v:顯示安裝信息。

-V:驗證安裝套件的一致性。

-a:查詢所有安裝的套件。

-i:顯示套件的摘要信息。

-l:顯示套件的文件列表。

--nodeps:不檢查套件依賴性,強製安裝。以此方式安裝的套件,可能不能正常運行。

--replacepkgs:安裝時直接覆蓋舊版本的套件,不用卸載後再安裝。

--rebuild:把SRPM格式的套件編譯打包成RPM格式的套件包文件。

--recompile:直接編譯打包並安裝SRPM格式的套件。

-- rebuilddb:重建RPM數據庫。

學藝錦囊

◎順利安裝RPM套件包的前提是目標主機的環境與製作RPM套件包的環境一致或相當,當兩者環境不一致時最易出現依賴性問題。

◎解決安裝時套件依賴性問題的一般方法是按照安裝提示手動安裝該套件依賴的其他套件。還可以使用yum工具自動下載安裝所依賴的套件。

◎使用SRPM格式的套件包也能避免安裝環境與打包環境不一致帶來的問題。

SRPM包與RPM包相似,隻是其中的程序文件是沒有編譯的源代碼文件。使用者可以修改包中的參數文件,然後編譯生成適合目標主機環境的RPM包來實現軟件包的安裝。

任務實施

使用RPM管理程序:

(1)安裝RPM套件涉及的目錄。

目錄 作用

/etc 存放配置文件

/usr/bin 軟件的可執行程序

/usr/lib 程序使用的函數庫

/usr/share/doc 軟件的使用手冊或說明文件

/var/lib/RPM 軟件的安裝環境數據庫記錄,用於查詢和升級

/usr/share/man 軟件的man幫助文件

(2)安裝程序。

把SRPM編譯打包成RPM包:

[root@vm ~]rpm --rebuild linuxqq-v1.0.2.i386.src.rpm

編譯打包並安裝SRPM包:

[root@vm ~]rpm --recompile linuxqq-v1.0.2.i386.src.rpm

安裝RPM包,考慮套件依賴性:

[root@vm ~]rpm -ivh linuxqq-v1.0.2.i386.rpm

安裝RPM包,不考慮套件依賴性:

[root@vm ~]rpm -ivh --nodeps linuxqq-v1.0.2.i386.rpm

(3)軟件升級。

[root@vm ~]rpm -Uvh linuxqq-v1.0.2.i386.rpm

(4)查詢係統中安裝的套件。

列出所有安裝的套件:

[root@vm ~]rpm -qa

列出linuxqq的詳細說明:

[root@vm ~]rpm -qi linuxqq

列出套件linuxqq的安裝文件與路徑:

[root@vm ~]rpm -ql linuxqq

(5)驗證軟件的一致性。

[root@vm ~]rpm -V linuxqq

(6)重建RPM數據庫。

[root@vm ~]rpm --rebuilddb

(7)卸載程序。

[root@vm ~]rpm -e linuxqq

任務六 配置任務計劃

在進行係統管理工作中,有一些管理工作需要周期性執行,如數據庫的備份操作;也有一些臨時性任務需要在指定的時間來執行。如果這類任務完全由管理員手工來執行,那麼將大大增加管理負擔,而采用Linux係統提供的任務計劃能力將使這類工作變得非常輕鬆。本任務要求讀者在Linux係統中建立一次性任務計劃和周期性例行任務計劃。

任務準備

一、建立臨時任務計劃

臨時任務計劃的命令存放在目錄/var/spool下。

[root@vm ~]at [-m] 時間

-m:將命令執行時產生的輸出信息傳遞給建立任務的賬戶。

時間:指定任務執行的時間。

HH:MM 如08:15

HH:MM YYYY-MM-DD 如10:00 2011-7-1

HH[pm|am] [month] [day] 如5pm July 1

HH[pm|am]+數字 [hours|days|weeks] 如8am +5 days

二、建立周期性執行任務

[root@vm ~]crontab [-u 賬戶名] [-l|-e|-r]

-u 賬戶名:為指定用戶編輯或查看周期性任務計劃。

-l:顯示crontab的任務計劃記錄內容。

-e:編輯crontab的任務計劃記錄,可添加、修改和刪除。

-r:刪除crontab的所有任務計劃。

周期性執行任務計劃的記錄格式:

30 11 * * 6 shutdown -h now

①分鍾(0~59);

②小時(0~23);

③日(1~31);

④月(1~12);

⑤周(0~6),0代表星期日;

⑥命令。

任務計劃前5個字段表示任務開始執行的時間,這5個字段中可以使用‘*’、‘,’、‘-’和‘/’,它們的用途是:

*:代表任何時間;

,:用於分隔時間,在第2字段有5,10,表示5點和10點;

-:表示時間範圍,如第2字段有14-17,表示下午2點到5點;

/n:表示每隔n個時間單位,如第2字段有*/2表示每2小時。

學藝錦囊

◎係統默認任何賬戶都可以用at建立任務計劃。如果要限製賬戶使用at,則把允許使用at的賬戶添加到文件/etc/at.allow中,把禁止使用at的賬戶添加到/etc/at.deny文件中。實際管理時配置兩個文件中的一個即可。

◎隻有root賬戶才可以為其他賬戶管理周期性任務計劃crontab。

任務實施

一、在指定的時刻執行管理任務

有些臨時性的任務隻需要在指定的時刻執行一次,這時可以用at命令把任務寫入係統等待調度,而不需要管理員值守在Linux主機前。

(1)把任務寫入係統。

在下午1:30把/home/db中的所有文件複製到優盤/mnt/usb中:

[root@vm ~]at 1:30pm

at>cp -a /home/db /mnt/usb

at>

繼續輸入要執行的操作,結束則按Ctrl+D。

(2)查詢已創建的任務計劃。

[root@vm ~]atq

(3)撤銷已創建的任務計劃。

每個已創建的任務計劃都分配有一個任務編號,撤銷時指定任務編號即可。

[root@vm ~]atrm 3

二、周期性執行用戶任務

對於需要周期性執行的操作,可以使用crontab將任務寫入係統交由cron服務管理與調度。任務命令記錄在/var/spool/cron目錄中以提交任務的賬戶和賬戶名命名的文件中。

(1)建立用戶任務計劃。

①為自己建立任務計劃。

要求在每周星期六晚上11:30關閉係統:

[root@vm ~]crontab -e

打開vi編輯界麵,輸入任務計劃:

30 11 * * 6 shutdown -h now

②為指定用戶建立任務計劃。

隻有root賬戶才有能力為他人建立任務計劃:

[root@vm ~]crontab -u hungws -e