程序包管理及定时任务

程序包管理及定时任务

一、简述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

相关推荐

  • Nginx 原理

    Web服务器处理并发连接请求的工作模型有以下几种方式: 1、单线程web服务器(Single-threaded web servers)此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的性能问题。(即一次只能处理一个请求) 2、多进程/多线…

    Linux干货 2017-05-07
  • 初识Linux

                              初认识Linux 1.1 Linux的登录界面 在虚拟机安装CentOS 7中有提到,我在安装Linux操作系统的时候,采用的是命令行界面的登录方式,当然也有像Windows那样…

    Linux干货 2016-10-27
  • Nginx基础

    Nginx基础 目录 Nginx概述 Nginx的优点 Nginx相比Apache 编译安装Nginx Nginx配置文件讲解 ngx_http_access_module模块 ngx_http_auth_basic_module模块 ngx_http_log_module模块 ngx_http_stub_status_module模块 Nginx概述 En…

    Linux干货 2016-11-01
  • 编译内核

     编译内核: 步骤: (1) 准备好开发环境 (2) 获取目标主机上硬件设备的相关信息 (3) 获取目标主机系统功能的相关信息         例如:需要启用相应的文件系统 (4) 获取内核源代码包 www.kernel.org  

    Linux干货 2018-01-01
  • linux计算机基础理论

    1. 计算机的组成及其功能 从基本结构上来讲,计算机可以分为五大部分: 运算器、存储器、控制器、输入设备、输出设备。 运算器的功能:实现算术运算和逻辑运算(与控制器组成CPU) 存储器功能:将输入设备接受到的信息以二进制的数据形式存到存储器中。 控制器的功能:将指令逐条从存储中取出,经译码分析后向全机发出相应的操作控制信号作用于其他部件,使各部件有条不紊地协…

    Linux干货 2018-03-04
  • ldirectord 结合ipvsadm 配置nat,dr模型

    ldirectord 结合ipvsadm 配置nat,dr模型  一、nat模型 1、 drector # wget ftp://172.16.0.1/pub/Sources/7.x86_64/crmsh/ldirectord-3.9.6-0rc1.1.1.x86_64.rpm # yum -y install nginx (同时用于做为sorry…

    Linux干货 2014-01-03

评论列表(1条)

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

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