程序包管理及定时任务

程序包管理及定时任务

一、简述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
下一篇 2018-01-01

相关推荐

  • LinuxGrub修复方法

    Linux因Grub损坏的修复方法: 1)救援模式修复(备份了MBR) 2)救援模式修复(无备份MBR) 3)Grub下手动启动Linux系统 1、救援模式修复(备份了MBR)     MBR中存放了Bootloader信息(Grub),在磁盘的最开始512字节,当这512字节出现故障,系统将无法引导启动。 &nbsp…

    Linux干货 2016-06-22
  • LVS产生背景、原理及LVS-DR应用实例(一)

    一、什么是lvs? 它产生的背景,使用场景是什么?      LVS(Linux Virtual Server) 可以理解为一个虚拟服务器系统。       Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能…

    Linux干货 2016-10-29
  • 2016 10 19 第5天作业

    20161019第5天作业 软链接和硬链接的区别 硬链接 ①硬链接文件不能跨分区创建 ②一个硬链接文件的删除不影响其他链接的访问 ③链接文件指向的源文件被删除后,链接文件还能正常访问源文件的数据 ④硬链接的文件类型是 –  普通文件 ⑤硬链接和源文件的属性(大小,权限,时间戳,Inode号)相同 ⑥硬链接不能对目录创建 ⑦创建硬链接会增…

    Linux干货 2016-10-20
  • 初窥门径之脚本书写

    一、几个脚本的编写: 1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 #!/bin/bash echo "HOSTNAME: $HOSTNAME" echo "IPV4 A…

    Linux干货 2016-08-15
  • 特殊权限之SUID、SGID、STICKY

    特殊权限        在系统中,难免有一些比较特殊的用户或文件目录,但是普通的权限有不能解决我们的需求,于是就有特殊权限帮我们解决这个问题 特殊权限有三个:SUID、SGID、STICKY      首先,先说说安全上下文: 进程以某用户的身份运行,那么进程将会以此用户身份去完成所有操作…

    Linux干货 2016-08-05
  • 马哥教育网络班22期+第6周课程练习 忍者乱太郎喻成

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#cp /etc/rc.d/rc.sysinit /tmp方法一 vim法在vim下用 : 进入命令行模式     %s/^&nbs…

    Linux干货 2016-10-24

评论列表(1条)

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

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