linux程序包管理,定时计划以及sed简介

week5

第一部分 linux程序包管理

rpm简介

RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放的,现在包括OpenLinux、SUSE等发行版都有采用,可以算是公认的行业标准了。RPM是一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.RPM扩展名的文件。

CentOS系统上rpm程序主要有以下几个功能:

(1)安装:

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

-v:verbose

-vv:显示更详细的安装信息

-h:以“#”显示程序包管理执行进度,每个“#”表示2%的进度

rpm -ivh PACKAGE_FILE

–test:测试安装,但不真正执行安装过程,属于dry run模式

–nodeps:忽略依赖关系

–replacepkgs:重新安装

–nosignature:不检查来源合法性

–nodigest:不检查包完整性

–noscipts:不执行程序包脚本片段

%pre:安装前脚本:–nopre

%post:安装后脚本:–nopost

%preun:卸载前脚本:–nopreun

%postun:卸载后脚本:–nopostun

linux程序包管理,定时计划以及sed简介

说明:安装zsh的rpm包

linux程序包管理,定时计划以及sed简介

说明:安装redis的rpm包

(2)升级:

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

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

upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

freshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作

rpm -Uvh PACKAGE_FILE

rpm -Fvh PACKAGE_FILE

–oldpackage:降级

–force:强行升级

linux程序包管理,定时计划以及sed简介

说明:升级安装redis包

(3)查询:

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

[select-options]

-q:查询包

-a:所有包

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

-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件查询其安装文件信息

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

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

[query-options]

–changelog:查询rpm包的更新日志

-c:查询程序的配置文件

-d:查询程序的文档

-i:information

-L:列出许可证信息

-l:查看指定的程序包安装后生成的所有文件

–scripts:程序包自带的脚本片段

-R:查询指定的程序包所依赖的CAPABILITY

–provides:列出指定程序包所提供的CAPABILITY

linux程序包管理,定时计划以及sed简介

说明:查询刚安装的redis包,注意这里要输入的是包名(rh-redis32-redis)

(4)卸载:

rpm {e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME

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

–nodeps:忽略依赖关系

–test:测试卸载,dry run模式

linux程序包管理,定时计划以及sed简介

说明:卸载刚安装的redis包,查询已没有

(5)校验:

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

校验信息含义:

S file Size differs

M Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

linux程序包管理,定时计划以及sed简介

说明:校验redis包,无输出,则说明验证通过。

(6)数据库重建:

rpm {–initdb|–rebuilddb}

initdb:初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作

rebuilddb:重建,无论当前存在与否,直接重新创建数据库

linux程序包管理,定时计划以及sed简介

说明:在指定路径下新建rpmdb

yum工具简介

yum是rpm软件包管理器的前端管理工具。yum是一个在Fedora和RedHat以及CentOS的前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,简化了安装步骤。

功能用法:yum [options] [command] [package]

显示仓库列表:

repolist [all|enabled|disabled]

linux程序包管理,定时计划以及sed简介

说明:

显示程序包:

list

#yum list [all | glob_exp1] [glob_exp2]

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

linux程序包管理,定时计划以及sed简介

安装程序包:

install package1 [package2]

reinstall package1 [package2](重新安装)

linux程序包管理,定时计划以及sed简介

升级程序包:

update [package1] [package2]

downgrade package1 [package2](降级)

linux程序包管理,定时计划以及sed简介

说明:查看发现bash有新版本的程序包,故用upgrade程序更新到最新版本。

linux程序包管理,定时计划以及sed简介

说明:检查是否更新成功

检查可用升级:

check-update

linux程序包管理,定时计划以及sed简介

说明:检查发现yum程序有最新版未安装

卸载程序包:

remove | erase package1 [package2]

linux程序包管理,定时计划以及sed简介

查看程序包的简要信息:(类似于rpm -qi)

info package

linux程序包管理,定时计划以及sed简介

说明:查看bash程序的简要信息

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

provides | whatprovides feature1 [feature2]

linux程序包管理,定时计划以及sed简介

清理本地缓存:

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

linux程序包管理,定时计划以及sed简介

说明:清除本地缓存的package

构建缓存:

makecache

linux程序包管理,定时计划以及sed简介

据关键字搜索相关信息:

search string1 [string2](以指定的关键字搜索程序包名及summary信息)

linux程序包管理,定时计划以及sed简介

查看指定包所依赖的capabilities:

deplist [package1] [package2]

linux程序包管理,定时计划以及sed简介

查看yum事务历史:

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

linux程序包管理,定时计划以及sed简介

安装及升级本地程序包:

localinstall rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use install)

localupdate rpmfile1 [rpmfile2]

(maintained for legacy reasons only – use update)

linux程序包管理,定时计划以及sed简介

包组管理的相关命令:

groupinstall group1 [group2](安装包组)

groupupdate group1 [group2](升级包组)

grouplist [hidden] [groupwildcard](列出包组的列表)

groupremove group1 [group2](移除包组)

groupinfo group1(查看包组的相关信息)

linux程序包管理,定时计划以及sed简介


yum仓库

yum仓库定义:

[repositoryID] 仓库ID

name=Some name for this repository  仓库名,功能的完整描述

baseurl=url://path/to/repository/  仓库的路径

文件服务器:四种形式

ftp://

http://

nfs://

file:///

enabled={1|0} 是否启用,默认启用

gpgcheck={1|0}  检查包的来源合法性和完整性。默认启用

gpgkey=URL  指明秘钥文件路径

enablegroups={1|0} 是否允许基于组管理程序包,默认启用

failovermethod={roundrobin|priority}  故障转移方法,baseurl有多个时的选用原则

默认为:roundrobin,意为随机挑选;

cost=  开销值,默认为1000

建立yum仓库步骤:

要建立yum仓库,首先需要在/etc/yum.repo.d/目录下建立一个已.repo结尾的文件,如下图的CenOS-local.repo的yum仓库文件:

linux程序包管理,定时计划以及sed简介

说明:上图中[centos-source]是本地的yum源,位置是本地的centos镜像的挂载路径;[aliyun]则是网络yum源,位置则是阿里云镜像文件服务器的地址。

第二部分 at和crontab简介

        at:未来某个时间点执行一次某任务,所制定的计划任务会在指定时间执行一次,结果会以邮件的形式发送给创建计划的用户

用途用法:

at [OPTION]… TIME

TIME:

HH:MM [YYYY-mm-dd]

noon中午12点,midnight午夜12点, teatime下午4点

today,tommorow

now+#  相对时间计时法   UNIT :minutes, hours, days, weeks

常用选项:

-l:查看作业队列,相当于atq;

-f /PATH/FROM/SOMEFILE:从指定文件中读取作业任务

-d:删除指定的作业,相当于atrm;

#at -d #(作业号)

-c:查看指定作业的具体内容;上部分是环境信息,尾部是提交的作业内容。

-q QUEUE:指明队列;


crontab是用来进行周期性的执行某任务

向crond提交作业的方式不同于at,它需要使用专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件;要使用crontab命令。该命令是用法如下:

crontab [-u user] [-l | -r | -e] [-i] 立即生效

-e:编辑任务;

-l:列出所有任务;

-r:移除所有任务;

-i:在使用-r选项移除所有任务时提示用户确认;

-u user:root用户可为指定用户管理cron任务;

注意:运行结果以邮件通知给当前用户;如果拒绝接收邮件:

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

linux程序包管理,定时计划以及sed简介

说明:crontab -l的第一行就是为这个要求,每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00,制定的计划任务。为了验证是否可用,以每分钟执行一次的计划任务测试了一下,可以正常执行。

第三部分 sed命令简介

Sed本质上是一个编辑器,但是它是非交互式的,同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。Sed本身是一个管道命令,可以分析标准输入,主要用来分析关键字的使用、统计等,此外还可以将数据进行替换、删除、选取特定行等功能。

用法用例如下:

sed [OPTION]… ‘script’ [input-file] …

常用选项:

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

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

-f  /PATH/TO/SED_SCRIPT_FILE

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

-i[SUFFIX], –in-place[=SUFFIX]:直接编辑原文件 ;

编辑命令:

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:显示替换成功的行;

示例:

linux程序包管理,定时计划以及sed简介

说明:显示偶数行

linux程序包管理,定时计划以及sed简介

说明:逆序显示文件内容

linux程序包管理,定时计划以及sed简介

说明:显示文件最后2行

linux程序包管理,定时计划以及sed简介

说明:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行

linux程序包管理,定时计划以及sed简介

说明:取出给定路径的dirname

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103648

评论列表(0条)

  • 马哥教育
    马哥教育 2018-09-20 09:03

    很棒的文章,内容清晰,实操部分遇到的问题也给出了详细的解决方法,很不错,继续加油。

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code