程序包管理及定时任务

程序包管理及定时任务

一、简述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.178linux.com/90692

(0)
ruopu1989ruopu1989
上一篇 2018-01-01 15:47
下一篇 2018-01-01 17:30

相关推荐

  • vim文本编辑器使用

    vim文本编辑器使用

    2017-09-20
  • awk的进阶

    前言 awk的中有很多的控制语句,awk也支持if语句,while语句,for语句等等编程逻辑充的控制语句及数组、函数。 awk的进阶无非就是多练。 1.控制语句 (1)if-else语句 语句格式: if(condition) {statments}    if  (条件) 条件为真 执行{statments} 只有一个语句可…

    Linux干货 2016-06-26
  • do some test

    1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。     三次握手:         a(syn-send) -> send syn -> b(listen)         a(syn-send) <- receive …

    Linux干货 2016-06-12
  • redis-cli的一些有趣也很有用的功能

    redis-cli我们最常用的三个参数就是-h、-p、-a选项,分配用来指定连接的redis-server的host、port和登录密码。通过redis-cli –help发现,redis-cli还提供了其他很多的参数和功能。 1)-x-x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入: echo -en &quot…

    Linux干货 2016-04-13
  • lvs

    Lvs 一、lvs集群的类型:4类工作模式 1.1、lvs-nat 特点:通过将请求报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT实现转发。 客户端访问lvs集群服务,此时报文的源地址为cip,目标地址为vip,通过lvs进行dnat转发后端服务器主机,此时,报文的源地址为cip,目标地址为rip;后端主机响应时,报文源地址为rip,目标地…

    Linux干货 2016-10-30
  • 加密类型及其相关算法

    加密类型及其相关算法 §·TCP/IP安全: ※·机密性: 数据在网络上传输是明文传输(ftp,http,smtp,telnet): ※·数据的完整性: 数据在网络上传输,不能被其它人篡改,保证数据的完整性: ※·身份验证: 访问的主机有一种机制可以表明就是你需要通信的主机。 ※·保证机密性:对数据进行加密。 ·如何加密:发送方通过转换规(转换算法)则把明文…

    Linux干货 2016-09-06

评论列表(1条)

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

    赞~内容上基本上没什么问题~crontab的那个实验可以注意下~继续加油~