软件包前端和后端工具使用及周期计划任务Sed命令总结

1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.tar.gz"

~]# mkdir /backup

~]# vim /root/backup.sh

        tar zcf /backup/etc-`date +%F-%H-%M`.tar.gz /etc/*

~]# crontab -e

0 /12 * * * /usr/bin/bash /root/backup.sh

2、rpm包管理功能总结以及实例应用演示。

程序包管理器rpm --- >> redhat:redhat package manager 现更名为递归缩写:rpm is package manager

rpm把目标二进制格式(二进制程序、库文件、配置文件、帮助文件)组织成为一个或有限几个“包”文件来,从而更方便地实现程序包安装、升级、卸载、查询、校验。

每一个程序包都有程序包的组成清单,包括文件清单和安装卸载时所要执行的脚本。并且对这些信息记录放置在公共数据库中,数据库信息还包括程序包的名称和版本、依赖关系、功能说明、安装生成的各文件的文件路径及校验码信息等。数据库目录位于/var/lib/rpm/文件夹下。

CentOS系统和RedHat系统上rpm命令管理程序包的方式有以下这些内容

安装、升级、卸载、查询和校验、数据库维护

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]

安装:-i, --install

升级:-U, --update,有则升级,没有就安装 -F, --freshen 只升级

卸载:-e, --erase

查询:-q, --query

校验:-V, --verify

数据库维护:--builddb, --initdb 初始化

安装:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

rpm  -ivh  PACKAGE_FILE ...

[root@7df49b28e751 ~]# rpm -ivh --nodeps perl-Tk-804.030-6.el7.x86_64.rpm Preparing... ################################# [100%]Updating / installing... 1:perl-Tk-804.030-6.el7 ################################# [100%]

常规选项: -v:verbose,详细信息  -vv:更详细的输出

[install-options]:

-h:hash marks输出进度条;每个#表示2%的进度;

--test:测试安装,检查并报告依赖关系及冲突消息等,并不直接安装;

--nodeps:忽略依赖关系,不建议,能装但一定能使用。

--replacepkgs:重新安装

rpm可以自带脚本:共四类:--noscripts 不执行脚本

preinstall:安装过程开始之前运行的脚本,%pre , --nopre

postinstall:安装过程完成之后运行的脚本,%post , --nopost

preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun

postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun

--nosignature:不检查包签名信息,不检查来源合法性

--nodigest:不检查包完整性信息

升级:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

[root@7df49b28e751 ~]# rpm -Uvh perl-Tk-804.030-6.el7.x86_64.rpm

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-U:升级或安装

-F:升级

rpm  -Uvh PACKAGE_FILE ...

rpm  -Fvh PACKAGE_FILE ...

--oldpackage:降级

--force:强制升级

卸载:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...

[root@7df49b28e751 ~]# rpm -e perl-Tk

--allmatches:卸载所有匹配指定名称的程序包的各版本;

--nodeps:忽略依赖关系

--test:测试卸载,dry run干跑模式

查询:

rpm {-q|--query} [select-options] [query-options]

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本

-a, --all:查询所有已经安装过的包

-f  FILE:查询指定的文件由哪个程序包安装生成

-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作,需结合[query-options]使用。

[root@7df49b28e751 ~]# rpm -pqi perl-Tk-804.030-6.el7.x86_64.rpm

使用方法组合 -qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, 等

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供

--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

[query-options]

--changelog:查询rpm包的changlog;

-l, --list:程序安装生成的所有文件列表;

-i, --info:程序包相关的信息,版本号、大小、所属的包组,等;

-c, --configfiles:查询指定的程序包提供的配置文件;

-d, --docfiles:查询指定的程序包提供的文档;

--provides:列出指定的程序包提供的所有的CAPABILITY;

-R, --requires:查询指定的程序包的依赖关系;

--scripts:查看程序包自带的脚本片断;

使用方法组合:-qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

校验:

rpm {-V|--verify} [select-options] [verify-options]

~]# rpm -qf /etc/fstab

setup-2.8.71-9.el7.noarch

~]# rpm -V setup-2.8.71-9.el7.noarch

S.5....T. c /etc/bashrc

S.5....T. c /etc/profile

S.5....T. c /etc/securetty

c:只有文件是一个配置文件时才会有此标志,可以用这种方法快速定位rpm包的配置文件安装位置。

S:表示对应文件的大小(Size)不一致;

M:表示对于文件的mode不一致;

5:表示对应文件的MD5不一致;

D:表示文件的major和minor号不一致;

L:表示文件的符号连接内容不一致;

U:表示文件的owner不一致;

G:表示文件的group不一致;

T:表示文件的修改时间不一致;

P capabilities differ : 提供能力不一致

包来源合法性验正和完整性验正:

来源合法性验正:

完整性验正:

获取并导入信任的包制作者的密钥:

对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验正:

(1) 安装此组织签名的程序时,会自动执行验正;

(2) 手动验正:rpm -K PACKAGE_FILE

数据库重建:

获取帮助:CentOS 6:man rpm    CentOS 7:man rpmdb

rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] 

[--dbpath DIRECTORY] :指明建立位置

--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

--rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

3、yum的配置和使用总结以及yum私有仓库的创建。

yum客户端配置文件:/etc/yum.conf:为所有仓库提供公共配置/etc/yum.repos.d/*.repo:为仓库的指向提供配置

仓库指向的定义:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority} 默认为:roundrobin,意为随机挑选;

cost= 开销默认为1000

yum命令的用法: yum [options] [command] [package ...]

yum的命令行选项:[options]

--nogpgcheck:禁止进行gpg check;

-y: 自动回答为“yes”;

-q:静默模式;

--disablerepo=repoidglob:临时禁用此处指定的repo;

--enablerepo=repoidglob:临时启用此处指定的repo;

--noplugins:禁用所有插件;

显示仓库列表:

    repolist [all|enabled|disabled]

    显示程序包:

    list

    # yum list [all | glob_exp1] [glob_exp2] [...]

    # yum list {available|installed|updates} [glob_exp1] [...]

    安装程序包:

    install package1 [package2] [...]

    reinstall package1 [package2] [...]  (重新安装)

    升级程序包:

    update [package1] [package2] [...]

    downgrade package1 [package2] [...] (降级)

    检查可用升级:

    check-update

    卸载程序包:

    remove | erase package1 [package2] [...]

    查看程序包information:

    info [...]

    查看指定的特性(可以是某文件)是由哪个程序包所提供:

    provides | whatprovides feature1 [feature2] [...]

    清理本地缓存:

    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

    构建缓存:

    makecache

    搜索:

    search string1 [string2] [...]

    以指定的关键字搜索程序包名及summary信息;

    查看指定包所依赖的capabilities:

    deplist package1 [package2] [...]

    查看yum事务历史:

    history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

    包组管理的相关命令:

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]


4、写一个脚本实现列出以下菜单给用户:

(1)disk:show disk info信息

(2)mem: show memory info信息

(3)cpu: show cpu info信息

(*)quit


5、sed用法总结并结合实例演示

sed:Stream EDitor 流编辑器逐行对文件进行编辑,基本功能通过模式空间,高级功能需要配合保存空间完成。

sed [OPTION]... 'script' [input-file] ...

script:地址定界编辑命令

常用选项:

-n:不输出模式空间中的内容至屏幕;

-e script, --expression=script:多点编辑;

-f  /PATH/TO/SED_SCRIPT_FILE 把多点编辑指令写在一个指定文件中

-r, --regexp-extended:支持使用扩展正则表达式;

-i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件不可撤销 ;

多点编辑把井号开头后面任意多个空格删除并删除以UUID开头的行

~]# sed  -e  's@^#[[:space:]]*@@'  -e  '/^UUID/d'  /etc/fstab

地址定界:

(1) 空地址:对全文进行处理;

(2) 单地址 #:指定行;

/pattern/:被此模式所匹配到的每一行;

(3) 地址范围

#,#:

#,+#:

#,/pat1/

/pat1/,/pat2/ 从匹配模式1到匹配模式2之间

$:最后一行;

(4) 步进:~

1~2:所有奇数行

2~2:所有偶数行

编辑命令:

d:删除;

p:显示模式空间中的内容;

a  \text:在行后面追加文本“text”,支持使用\n实现多行追加;

i  \text:在行前面插入文本“text”,支持使用\n实现多行插入;

c  \text:把匹配到的行替换为此处指定的文本“text”;

w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中;

r  /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;

=:为模式匹配到的行打印行号;

!:条件取反;

地址定界!编辑命令;

s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等;

替换标记:

g:全局替换;

w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

p:显示替换成功的行;

练习1:删除/boot/grub/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符;

~]# sed  's@^[[:space:]]\+@@' /etc/grub2.cfg

练习2:删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符;

~]# sed  's@^#[[:space:]]*@@'  /etc/fstab

练习3:输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname;

~]# echo "/var/log/messages" | sed -r 's@[^/]+/?$@@'

6、 用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序

~]# grep -o '[4|5][0-9][0-9]' /var/log/nginx/access.log |sort | uniq -c

7、 使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包

在根目录下新建目录/repo/packages。

从光盘中复制相应的rpm包到acakges目录。

执行命令createrepo -u /repo/rackages /repo   

编辑文件/etc/yum.repos.d/myrepo.repo

[repo]

name=newrepo

baseurl=file:///repo

enabled=1

gpgcheck=0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容