第五周作業(yè)

Q1雕欺、每12小時備份并壓縮/etc/目錄至/backup目錄中路翻,保存文件名稱格式為邢羔,"etc-年-月-日-時-分.tar.gz"

在crontab -e中:* */12 * * * tar czf /back/etc-date +"%F-%H-%M".tar.gz /etc

Q2、rpm包管理功能總結以及實例應用演示
RPM宾巍,原名Red-hat Package Manager稽坤,成為行業(yè)標準后改名為RPM Package Manager丈甸。
RPM包的命名格式為:{package}-{version}-{release}.{arch}.rpm。
比較大的包可以分成主包和多個子包尿褪,主包包含主要功能睦擂,子包包含擴展功能。主包命名格式:{masterpackage}-{version}-{release}.{arch}.rpm杖玲,子包命名格式:{masterpackage}-{subpackage}-{version}-{release}.{arch}.rpm顿仇。

CentOS系統(tǒng)上rpm命令管理程序包:
安裝、升級天揖、卸載夺欲、查詢和校驗、數(shù)據(jù)庫維護

        rpm命令:rpm【OPTIONS】【Package FIle】
            安裝:-i今膊,--install
            升級:-U些阅,--update,-F斑唬,--freshen
            卸載:-e市埋,--erase
            查詢:-q,--query
            校驗:-V恕刘,--verify
            數(shù)據(jù)庫維護:--builddb缤谎,--initdb


        1、rmp安裝:
            rpm{-i|--install}[install-options]PACKAGE_FILE….
                
                安裝rpm命令:rpm -ivh Package_FILE
                
                General Options:
                    -v:verbose 詳細信息
                    -vv:更詳細的信息
                
                [install-options]:
                    -h:hash marks輸出進度條褐着,每個#表示2%的進度
                    --test:測試安裝坷澡,檢查并報告依賴關系和沖突消息等
                    --nodeps:忽略依賴關系,不建議
                    --replacepkgs:重新安裝
                
                備注:rpm可以自帶腳本含蓉,
                    四類:
                        preinstall:安裝過程開始之前運行的腳本频敛,%pre
                        Postinstall:安裝過程完成之后運行的腳本项郊,%post
                        preuninstall:卸載過程真正開始執(zhí)行之前運行的腳本,%prun
                        postuninstall:卸載過程完成之后運行的腳本
                
                --nosignature:不檢查包簽名信息斟赚,不檢查來源合法性
                --nodigest:不檢查包完整性信息

            2着降、rpm 升級:
                 rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
                 rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
                
                    -U:升級或安裝
                    -F:升級
                    
                        rpm -Uvh Package_FILE……
                        rpm -Fvh Package_FILE……
                            
                            --oldpackage:降級
                            --force:強制升級;
                    
                注意:
                (1)不要對內核做升級操作拗军,linux支持多內核版本并存任洞,因此,直接安裝新版本內核
                (2)如果某原程序包的配置文件安裝后曾被修改過发侵,升級時交掏,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(filename.rpmnew)后提供器紧;

        3耀销、rpm 卸載:
            rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
                       [--notriggers] [--test] PACKAGE_NAME ...
            
                --allmatches:卸載所有匹配指定名稱的程序包的各版本
                --nodeps:忽略依賴關系
                --test:測試卸載楼眷,dry run 模式

        4铲汪、rpm 查詢:
                 rpm {-q|--query} [select-options] [query-options]
                
                【select-options】
                    PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本
                    -a罐柳,-all掌腰;查詢所有已經安裝過的包;
                    -f  FILE:查詢指定的文件由那個程序包安裝生成张吉;
                    
                    -p齿梁,--package PACKAGE_FILE:用于實現(xiàn)對未安裝的程序包執(zhí)行查詢操作
                    
                    --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供
                    --whatrequires CAPABILITY:查詢指定的CAPABILTY被哪個包所依賴
                    
                【query-options】
                    --changelog:查詢rpm包的changlog;
                    -l肮蛹,--list:程序安裝生成的所有文件列表勺择;
                    -i,--info:程序包相關的信息伦忠,版本號省核,大小,所屬的包組
                    -c昆码,--configuretion:查詢指定的程序提供的配置文件
                    -d气忠,--docfiles:查詢指定的程序包提供的文檔
                    -provides:列出指定的程序包提供的所有的CAPABILITY
                    -R,--requires:查詢指定的程序包的依賴關系
                    --scipts:查看程序包自帶的腳本片段
                    
                用法:
                    -qi  PACKAGE赋咽,-qf FILE旧噪,-qc PACKAGE,
                    -ql PACKAGE脓匿,-qd PACKAGE

        5淘钟、rpm校驗:
             rpm {-V|--verify} [select-options] [verify-options]

    6、驗證包來源合法性和完整性:
        來源合法性:
            數(shù)字簽名
        完整性驗證
        
            獲取并導入信任的包制作者的密鑰陪毡;
                對于centos發(fā)行版來說米母,rpm-import /etc/pki/rpm-gpg/PM-GPG-KEY-CentOS-7
        
        驗證:
            (1)安裝此組織簽名的程序時袱瓮,會自動執(zhí)行驗證
            (2)手動驗證:rpm -K PACKAGE_FILE

7、數(shù)據(jù)庫重建:
    Rpm 管理器數(shù)據(jù)庫路徑:/var/lib/rpm
        查詢操作:通過此處的數(shù)據(jù)庫進行爱咬;
    
    Rpm {--initdb|--rebuilddb}
        Initdb:初始化
            如果事先不存在數(shù)據(jù)庫尺借,則新建之,否則精拟,不執(zhí)行任何操作
        
        rebuilddb:重建
            無論當前存在與否燎斩,直接重新創(chuàng)建數(shù)據(jù)庫

Q3、yum的配置和使用總結以及yum私有倉庫的創(chuàng)建蜂绎。

yum用法:yum [options] [command] [package ...]
yum子命令:
install:安裝指定的(多個)包或包組栅表。
update:更新。如果不指定任何包师枣,會升級所有已經安裝的包怪瓶。
update-to:類似update命令,但是升級到指定的版本践美。
update-minimal:類似update命令洗贰,但只升級到比當前版本高的最低版本。
check-update:檢查是否有更新陨倡。命令狀態(tài)碼返回100表明有更新敛滋,0沒有更新,1表示出錯兴革。
upgrade:同update --obsoletes绎晃,會刪除被淘汰的包杂曲。
upgrade-to:類似upgrade庶艾,但只升級到指定版本。
remove/erase:卸載指定包及依賴此包的其他包擎勘。有一些配置可以想必卸載的行為咱揍。
remove_leaf_only:只卸載不被依賴的包。
clean_requirements_on_remove:卸載的同時货抄,卸載只依賴此包的其他包述召。
autoremove:清除非顯式安裝的,不再被其他包依賴的包蟹地。
list OPTIONS:列出指定類型的包积暖。
all:所有,默認怪与。
available:倉庫中有夺刑,可以安裝。
updates:可以升級。
installed:已經安裝遍愿。
extras:已安裝存淫,但倉庫中沒有。
obsoletes:已經安裝且被淘汰的沼填。
recent:最近添加到倉庫中的桅咆。
provides/whatprovides:查詢指定的文件或特性是由哪個包生成的。
search:根據(jù)包名和描述查找相關的包坞笙。
info:查看指定包的描述信息岩饼,可用的opion同list命令。
clean:清除yum緩存目錄下的文件薛夜。
expire-cache:過期的元數(shù)據(jù)和鏡像列表籍茧。
packages:rpm包。
headers:頭文件梯澜。
metadata:元數(shù)據(jù)文件寞冯。
dbcache:本地元數(shù)據(jù)庫。
rpmdb:rpm緩存晚伙。
plugins:擴展插件緩存吮龄。
all:以上所有。
makecache:構建元數(shù)據(jù)的緩存撬腾。
localinstall:安裝指定的本地rpm文件包螟蝙,自動解決依賴問題恢恼。
localupdate:用指定的rpm文件包升級民傻,自動解決依賴問題。
reinstall:重新安裝场斑。
downgrade:降級漓踢。
swap foo bar:卸載foo,安裝bar漏隐。
deplist:顯示包的依賴喧半,和提供這些依賴的包。
repolist:列出倉庫信息青责。
enabled:列出啟用的倉庫挺据,默認。
disabled:列出禁用的倉庫脖隶。
all:列出所有倉庫扁耐。
history:列出歷史事務。
groupinstall:安裝指定組产阱。
groupupdate:更新指定組婉称。
grouplist:查看所有組。
groupremove:卸載組。
groupninfo:查看組信息王暗。
yum選項:
-y:對所有互動回答為yes悔据。
-c:指定yum配置文件位置。
-q:靜默模式俗壹。
-v:顯示調試信息科汗。
--disablerepo:臨時禁用repo。
--enablerepo:臨時啟用repo绷雏。
--nogpgcheck:不檢查來源合法性肛捍。
創(chuàng)建yum倉庫:createrepo [options] DIRECTORY
-u URL:指定baseurl,訪問倉庫的url之众。
--basedir:指向rpm文件目錄的路徑拙毫,默認是當前目錄
-x:排除的文件,可用glob指定棺禾。
倉庫元數(shù)據(jù):在倉庫的repodate目錄中
primary.xml.gz:指明了倉庫中所有rpm包缀蹄,依賴關系,每個包安裝后會生成的文件膘婶。
filelists.xml.gz:當前倉庫中所有rpm包的所有文件列表缺前。
other.xml.gz:額外信息,比如修改日志悬襟。
repomd.xml:上述三個文件的時間戳和檢驗和衅码。
comps.xml:分組信息。
yum相關配置
配置文件:/etc/yum.conf脊岳,為所有倉庫提供公共配置逝段。
特性配置文件:/etc/yum.repos.d/
.repo,為指定的倉庫提供配置割捅。
配置文件中的變量:
releaseserver:當前發(fā)行版的主版本號arch:CPU平臺體系
basearch:基礎CPU平臺體系奶躯。YUM0-$YUM9:自定義變量。
配置文件格式:
[repoid] # 倉庫的唯一標識
name=NAME # 倉庫的名稱
baseurl=URL # 訪問倉庫的路徑亿驾,可用ftp://嘹黔、http://、file:/// 協(xié)議指定莫瞬,可指定多個儡蔓,一行一個
mirrorlist=URL # 指向一個包含多個baseurl的文件的url
enabled=[1|0] # 啟用/禁用倉庫
gpgcheck=[1|0] # 是/否驗證文件來源的合法性。
gpgkey=URL # 指向gpg key文件的url
enabledgroups=[1|0] # 是否支持組
failovermethod=[roundrobin|priority] # 訪問baseurl失敗時疼邀,查找下一個baseurl的策略喂江,roundrobin:隨機選擇,priority:順序選擇下一個檩小。
keepalive=[1|0] # 使用HTTP/1.1時开呐,是否支持keepalive
cost=num # 倉庫開銷,用來衡量倉庫的性能,默認1000筐付,越小說明性能越好卵惦。

Q4、寫一個腳本實現(xiàn)列出以下菜單給用戶:
(1)disk:show disk info信息
(2)mem: show memory info信息
(3)cpu: show cpu info信息
(*)quit

!/bin/bash

cat << EOF
disk) show disks info
mem) show memory info
cpu) show cpu info
*) QUIT
EOF
read -p "your choice:" option
if [ "option" == 'disk' ];then fdisk -l /dev/[sh]d[a-z] elif [ "option" == 'mem' ];then
free -m
elif [ "$option" == 'cpu' ];then
lscpu
else
echo "Unkown option"
exit 3
fi

Q5瓦戚、sed用法總結并結合實例演示

sed [OPTION]... {script-only-if-no-other-script} [input-file]…
script:
地址定界編輯命令沮尿;

        常用選項:
        -n:不輸出模式空間中的內容至屏幕
        -e script, --expression=script:多點編輯

        -f /path/to/sed_script_file
            每行一個編輯命令:
        
        -r, --regexp-extended:支持使用擴展正則表達式;
         -i:SUFFIX], --in-place[=SUFFIX]: 直接編輯源文件
    地址定界:
        (1)空地址:表示對全文進行處理较解;
        (2)單地址:
            #:指定行畜疾;
            /pattern/:被此模式所匹配到的每一行;
        
        (3)地址范圍:
            #印衔,#:
            #啡捶,+#:
            #,/pat1/
            /pat1/,/pat2/
            $:表示最后一行奸焙;
        
        (4)步進:~
            1~2::所有奇數(shù)行
            2~2:所有偶數(shù)行

    編輯命令:
        d:刪除

        ]# sed -n '1,5d' fstab
        -n 不輸出
        
        顯示偶數(shù)行:
        ]# sed '1~2d' fstab

        -p:顯示模式空間中的內容

        ]# sed -n '1~2p' fstab
        顯示奇數(shù)行

        a \test:在行后面追加文本“text”瞎暑,支持使用\n實現(xiàn)多行追加
        i \text:在行前面插入文本“text”,支持使用\n實現(xiàn)多行插入

c \text:把匹配到的行替換為此處指定的文本“text”

w /path/to/somefile:保存模式空間匹配到的行至指定的文件中

-r /path/from/somefile:讀取指定文件的內容至當前文件被模式匹配到的行后面

        S敕:表示條件取反
            地址定界! 編輯命令:
        s/// :查找替換了赌,其分割符可自行指定,常用的有:s@@@, s###
            替換標記:
                g:全局替換
                w /path/to/somefile:將替換成功的結果保存至指定文件中玄糟;
                p:顯示替換成功的行勿她;

Q6、用bash實現(xiàn)統(tǒng)計訪問日志文件中狀態(tài)碼大于等于400的IP數(shù)量并排序

sed -n -r '/<40[0-9]>/p' /var/log/httpd/access_log|cut -d" " -f1 |sort|uniq -c

Q7阵翎、使用自制的yum源安裝ftp逢并、openssh、curl贮喧、wget筒狠、tcpdump等軟件包

1、root目錄下箱沦,新建目錄myrepo/Packages殿漠。
2肮韧、 從光盤中復制相應的rpm包到Pacakges目錄。
3弥鹦、 執(zhí)行命令createrepo -u /root/myrepo/Packages /root/myrepo
4疆前、 編輯文件/etc/yum.repos.d/myrepo.repo寒跳,添加如下內容:

[myrepo]
name=my custom repo
baseurl=file:///root/myrepo
enabled=1
gpgcheck=0

5、yum install XXX

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末竹椒,一起剝皮案震驚了整個濱河市童太,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖书释,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翘贮,死亡現(xiàn)場離奇詭異,居然都是意外死亡爆惧,警方通過查閱死者的電腦和手機狸页,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扯再,“玉大人芍耘,你說我怎么就攤上這事∠ㄗ瑁” “怎么了斋竞?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秃殉。 經常有香客問我窃页,道長,這世上最難降的妖魔是什么复濒? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任脖卖,我火速辦了婚禮,結果婚禮上巧颈,老公的妹妹穿的比我還像新娘畦木。我一直安慰自己,他們只是感情好砸泛,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布十籍。 她就那樣靜靜地躺著,像睡著了一般唇礁。 火紅的嫁衣襯著肌膚如雪勾栗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天盏筐,我揣著相機與錄音围俘,去河邊找鬼。 笑死琢融,一個胖子當著我的面吹牛界牡,可吹牛的內容都是我干的。 我是一名探鬼主播漾抬,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼宿亡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纳令?” 一聲冷哼從身側響起挽荠,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤克胳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后圈匆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漠另,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年臭脓,在試婚紗的時候發(fā)現(xiàn)自己被綠了酗钞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡来累,死狀恐怖砚作,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情嘹锁,我是刑警寧澤葫录,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站领猾,受9級特大地震影響米同,放射性物質發(fā)生泄漏。R本人自食惡果不足惜摔竿,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一面粮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧继低,春花似錦熬苍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粱胜,卻和暖如春柄驻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背焙压。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工鸿脓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冗恨。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓答憔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掀抹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容