程序包管理及定時任務

程序包管理及定時任務

一、簡述rpm與yum命令的常見選項,并舉例
RPM是RPM Package Manager(RPM軟件包管理器)的縮寫。
RPM命令
命令格式 rpm OPTIONS /PATH/TO/PACKAGE_FILE
1、安裝
-i:安裝
-v:顯示詳細過程。用-vv可以顯示更詳細的過程
-h:以#號顯示進度,第個#號表示2%
–nodeps:忽略依賴關系。安裝后可能無法使用軟件
–replacepkgs:重新安裝,替換原有安裝
–force:強行安裝,可以實現重新安裝或降級
例:rpm -ivh --replacepkgs php53-mysql-5.3.3.5.e15.i386.rpm
2、查詢
-q:查詢
-qa:查詢已經安裝的所有包
-qi:查詢指定包的說明信息
-ql:查詢指定包安裝后生成的文件列表
-qf:查詢指定的文件是由哪個rpm包安裝生成的
-qc:查詢指定包安裝的配置文件
-qd:查詢指定包安裝的幫助文件
–scripts:查詢指定包中包含的腳本,有四類腳本,安裝前,安裝后,卸載前,卸載后
例:rpm -q --scripts PACKAGE_NAME
如果某rpm包尚未安裝,我們需要查詢其說明信息、安裝以后會生成的文件
例:rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl /PATH/TO/PACKAGE_FILE

3、升級
-U:如果裝有老版本的軟件則升級,否則,則安裝
-F:如果裝有老版本的軟件則升級,否則,則退出
–oldpackage:降級
例:rpm -Uvh --oldpackage /PATH/TO/OLD_PACKAGE_FILE
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

4、卸載
-e:卸載
–nodeps:忽略依賴關系
–allmatches:卸載所有匹配名稱的程序包各版本
–test:測試卸載
例:rpm -e PACHAGE_NAME
5、校驗
-V:校驗
例:rpm -V PACKAGE_NAME
6、重建數據庫
–rebuilddb:重建數據庫,一定會重新建立
–initdb:初始化數據庫,沒有才建立,如果有就不用建立了
7、檢驗來源合法性,及軟件完整性
-K:檢驗
–import:導入密鑰文件
例:rpm -K /PATH/TO/PACKAGE_FILE
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-release

yum包管理器
命令格式——yum [options] [command] [package …]
顯示程序包:
yum list [all | glob_exp1] [glob_exp2] […] :支持使用glob風格的通配
yum list {available|installed|updates} [glob_exp1] 通配符

安裝程序包:
yum install package1 [package2] […];
yum reinstall package1 [package2] […] (重新安裝)

升級程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降級)

檢查可用升級:
yum check-update

卸載程序包:
yum remove | erase package1 [package2] […]

查看程序包簡要信息information:
yum info […]

查看指定的特性(可以是某文件)是由哪個程序包所提供:
yum provides | whatprovides feature1 [feature2] […]

清理本地緩存:
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

構建緩存:
yum makecache

搜索:
yum search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary(總結,概括)信息

查看指定包所依賴的capabilities(依賴關系分析):
yum deplist package1 [package2] […]

查看yum事務歷史:
yum history [info|list|packages-list|packages-info||redo|undo|rollback|new|sync|summary|stats]

安裝及升級本地程序包:
localinstall rpmfile1 [rpmfile2] […] (用install替代)
localupdate rpmfile1 [rpmfile2] […] (用update替代)

日志位置:
/var/log/yum.log

包組管理的相關命令:
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]:列出所有包組
yum groupremove group1 [group2] […]:卸載
yum groupinfo group1 […]:顯示指定包組詳情

常見選項
–nogpgcheck:禁止進行gpgcheck
-y:自動回答為“yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件

常用的命令
自動搜索最快鏡像插件:yum install yum-fastestmirror
安裝yum圖形窗口插件:yum install yumex
查看可能批量安裝的列表:yum grouplist
`例:yum install -y mariadb-server
yum info mariadb-server
yum provides mariadb-server
yum deplist mariadb-server

二、自建yum倉庫,分別為網絡源和本地源
Yum倉庫在單個RPM軟件包的基礎之上,進一步去解決依賴關系
Yum倉庫是簡化rpm軟件包的安裝以及管理的難度,可以解決rpm軟件包的相互依賴性解決軟件包之間的依賴關系。Yum倉庫的配置文件均需以.repo結尾并存放在/etc/yum.repos.d/目錄中的
格式說明
name=linuxprobe : yum倉庫的名稱描述,易于識別倉庫用處
baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)
enabled=1 : 設置此源是否可用,1為可用,0為禁用
gpgcheck=1 : 設置此源是否校驗文件,1為校驗,0為不校驗
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若為校驗請指定公鑰文件地址
例:創建網絡源
yum /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repository
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

例:創建本地源
[CentOS7 test]
name=CentOS 7 test
baseurl=file:///media
enabled=1
gpgcheck=0

三、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
1、at:未來時間點執行一次任務
命令格式:at [option] TIME
TIME:定義出什么時候執行這項任務
時間格式:
HH:MM [YYYY-mm-dd];
HH:MM[am|pm] [Month] [Date];
noon(正午), midnight(午夜), teatime(下午4點),tomorrow(明天)
now+#{minutes—分鐘,hours—小時,days—天, OR weeks—周}
注:at 的作業有隊列,存放在/var/spool/at 中,用單個字母來表示,默認都使用 a 隊列;
選項:
常見選項:
-q QUEUE:指明隊列;
-l:列出指定隊列中等待運行的作業;相當于atq;
-d #:刪除指定作業號的作業;相當于atrm;
-c #:查看指定作業號的具體作業任務;
-v:可以使用較明顯的時間格式列出at中的工作列表;
-f /path/from/somefile:從指定的文件中讀取任務,不再交互式輸入;(# at -f /testdir/at.txt)
-m:強制at發送郵件,表示執行完畢
例:
at 10:00 //設定10點執行
at> ls /etc //進入到at模式中,設置要執行的任務
Ctrl+d //設置完成后用Ctrl+d結束設置
at -l //查看已設置的任務

crontab:周期性運行某任務
命令格式:
crontab [-u user] [-l | -r | -e] [-i]
選項:
-e:打開編輯界面定義任務;
-l:列出所有任務(僅是當前用戶的所有任務);
-r:移除所有任務,即刪除/var/spool/cron/USERNAME文件;
如果,刪除單個任務應該通過編輯界面刪除行實現;
-i:在使用-r選項移除所有任務時提示用戶確認;
-u user:root用戶可為指定用戶管理cron任務(即為某個用戶編輯計劃任務)
ancorn 命令可以執行之前因故障未能執行的任務
例:
crontab -e //設置定時任務
10 3,5 * * 3 /root/test.sh && date +’%F %T

四、簡述sed常用操作命令,并舉例
1、命令使用
基本語法
sed ‘地址命令’文件
這時的地址(address)指對哪些行作處理,地址與命令之間不必空格,最后的文件可以有多個。這條命令的意思是對文件中地址指定范圍內的行執行編輯命令。

2、地址表示方式
a、起始行到結束行(StartLine,EndLine),之間用,號隔開
如:1,100表示第1到100行;
b、使用模式:/RegExp/ //里要用正則表達的格式 如:/^root/
3、/pattern1/,/pattern2/ 從第一次被模式1匹配到的行開始,至第一次被模式2匹配到的行結束中間的所有行
4、linenumber 精確指定的行,只給行號
5、startline, +N 從startline開始向后N行,一共是N+1行,從指定行開始向后N行

3、選項:
-n:靜默模式,不再顯示模式空間中的內容
-i:直接修改原文件
-e SCRIPT -e SCRIPT…:可同時執行多個腳本,sed‘’號中的地址命令被稱為腳本
-f /PATH/TO/SED_SCRIPT:可以把多個腳本寫在一個文件里,用-f讀取這個文件,也能執行多個腳本(把每一個SCRIPT保存至 SED_SCRIPT文件中),最后處理file文件像這樣:sed -f /path/to/scripts file
-r:表示使用擴展正則

4、命令:
d:刪除符合條件的行
例:
sed ‘1,2d’ /etc/inittab
//刪除文件1-2行后顯示,如果有變量替換sed后就要用雙引號
sed ‘/oot/d’ /etc/fstab
//刪除有oot的行,要作模式匹配要用//括起來
sed ‘1,+2d’ /etc/fstab
//刪除第一行加兩行共三行
sed ‘1d’ /etc/fstab
//只刪除第一行
sed ‘/^\//d’ /etc/fstab
//刪除/開頭的行,用\轉意

p:顯示符合條件的行
例:
sed ‘/^\//p’ /etc/fstab
//這會顯示兩次/開頭的行,因為被匹配到的要顯示一次,默認情況下模式空間中的內容也要全部顯示,如只想顯示一次,要用選項-n:靜默模式,不再顯示模式空間中的內容:
sed –n ‘/^\//p’ /etc/fstab

a \string:在指定的行后面追加新行,內容為string
例:
sed ‘/^\//a \# hello world’ /etc/fstab
//顯示以/開頭的行后面加入# hello world
sed ‘/^\//a \# hello world\n# hello,linux’ /etc/fstab
//找到以/開頭的行后面加入# hello world,在后面加入兩行,\n:換行

i \string:在指定的行前面添加新行,內容為string
r FILE:表示將指定的文件的內容添加至符合條件的行
例:
sed ‘2r /etc/issue’ /etc/fstab
//將issue的內容顯示在fstab文件的第二行后面顯示一次
sed ‘1,2r /etc/issue’ /etc/fstab
//在第一第二行后都顯示一次
w FILE:將地址指定範圍內的內容另存至指定的文件中
例:
sed ‘/oot/w /tmp/oot.txt’ /etc/fstab
//將fstab中包含oot的行,保存到oot.txt中
s/pattern(要查找的內容)/string/修飾符:查找並替換,把符合pattern匹配范圍的行換成string,pattern可以是正則,默認替換每行中第一次被模式匹配到的串
例:
sed ‘s/oot/OOT/’ /etc/fstab
sed ‘s/^\//#/’ /etc/fstab
//只替換了第一次匹配到的/,如果要全部替換就要加修飾符
修飾符
g:全局替換
i:忽略字符大小寫
s///:s###,s@@@ 可用#或@及其他字符作分隔符,也可以用后項引用
例:
sed ‘s#l..e#&r#g’ sed.txt 或 sed ‘s#\(l..e\)#\1r#g’ sed.txt
//將l..e:查找到的like替換成liker,love替換成lover。
sed ‘s#l\(..e\)#L\1#g’ sed.txt
//l..e:like替換Liker,love替換Lover。此處只能用后項引用
history | sed ‘s#^[[:space:]]*##g’
//把history結果前的空格去掉,^[[:space:]]***表示一個或多個空格

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90692

(0)
ruopu1989ruopu1989
上一篇 2018-01-01
下一篇 2018-01-01

相關推薦

  • iptables

    iptables 包過濾型的防火墻 Firewall:防火墻,隔離工具;工作于主機或網絡邊緣,對于進出本主機或本網絡的報文根據事先定義的檢查規則作匹配檢測,對于能夠被規則匹配到的報文作出相應處理的組件; 主機防火墻網絡防火墻 軟件防火墻(軟件邏輯)硬件防火墻(硬件和軟件邏輯) 版本 ipfw (firewall framework):命令行工具,生成規則并送…

    Linux干貨 2017-06-13
  • DNS配置

     DNS配置 基本的配置準備 1.安裝bind 2.開啟named服務 一、正向解析庫 1、修改/etc/named.conf配置文件 vim /etc/named.conf 修改如下行 listen-on port 53 { 10.1.44.2; } allow-query     { any; } recursion no;…

    Linux干貨 2016-10-09
  • OpenStack私有云部署

    架構 實驗環境 角色 主機名 網卡 系統環境 Controller?Node controller.qween.com 管理接口eth0:192.168.22.128 外部接口eth1:192.168.36.130CentOS6.8Compute Nodecompute1.qween.com管理接口eth0:192.168.22.129 隧道接口eth1:1…

    2017-12-12
  • 硬盤分區的三種方式

    以前在初步接觸linux的時候,只知道一種分區方式,現在學會了三種分區方式,所以下面就給大家簡單的演示一下 ,以供參考。 第一種:fdisk /dev/sd?    具體步驟請看下圖:首先有一個空的硬盤/dev/sdb, 第一步:輸入命令fdisk /dev/sdb,會彈出一個幫助信息Command(m for help),意思就是m鍵是…

    2017-08-20
  • 網絡N22期+第一周作業

    一.計算機的組成及功能     計算機組成:         運算器           功能:對數據進行各種運算   &nbsp…

    Linux干貨 2016-08-15
  • 用戶與用戶組相關的配置文件與命令總結

    Linux 中用戶與用戶組相關的配置文件與命令總結 用戶與用戶組 UID、GID 名稱解析與解析庫(passwd、group、shadow、gshadow) 用戶信息庫/etc/passwd 用戶密碼信息/etc/shadow 組的信息庫/etc/group 組的密碼信息/etc/gshadow 用戶管理命令 用戶組管理命令 用戶與用戶組 Linux是一種多…

    2016-10-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-01-07 18:06

    贊~內容上基本上沒什么問題~crontab的那個實驗可以注意下~繼續加油~

欧美性久久久久