N31-5

rpm包管理、计划和周期任务、sed命令

1、简述rpm与yum命令的常见选项,并举例
rpm常见选项:
-i  安装指定的rpm程序包
-U 使用rpm包进行升级或者安装
-e 卸载指定的rpm包
-q 查询rpm包
-i安装、-U升级、-e卸载、-q查询,四个选项每个都有对应的其他可用选项
-i:
-v            输出操作过程的信息
-h            显示进度条
–test          测试安装,主要检查并报告依赖关系及冲突信息等,并不会实际安装
–nodeps        安装时忽略依赖关系
–replacepkgs   替换现有已安装的程序包,即重新安装
–nosignature   不检查rpm包的签名信息,即不检查来源的合法性
–nodigest      不检查rpm包的完整性
-U:
–force         强制升级
–oldpackage    降级安装rpm包
-e:
–allmatches    所有匹配指定名称的程序包的所有哦版本都会被卸载
–nodeps        忽略依赖关系
–test          测试卸载
-q:
-a              查询所有已经安装的rpm包
-f              查询指定的文件是由哪个安装的rpm包产生的
-p              指定未安装的rpm包进行查询
-l              查询rpm包安装生成的所有文件列表
-i              查询rpm包的详细信息,如版本号,大小等
-c              查询rpm包提供的配置文件
-d              查询rpm包提供的文档
–provides      查询rpm包提供的所有CAPABILITY能力
-R,–require    查询rpm包安装时所需要的依赖关系
常见用法:
安装rpm包:
rpm -ivh PACKAGE
测试安装rpm包:
rpm -ivh –test PACKAGE
升级rpm包:
rpm -Uvh PACKAGE
强制升级rpm包:
rpm -Uvh –force PACKAGE
卸载rpm包:
rpm -e PACKAGE
卸载时忽略依赖关系:
rpm -e –nodeps PACKAGE
查询rpm包是否安装:
rpm -qa PACKAGE
查询rpm包的详细信息:
rpm -qi PACKAGE
查询rpm包的配置文件:
rpm -qc PACKAGE
查询rpm包产生的所有文件:
rpm -ql PACKAGE
查询未安装的rpm包的信息:
rpm -qpi PACKAGE
yum命令:
用法:yum [options] [command] [package…]
options:
-y                        直接安装指定的rpm包
-q                        静默安装,不显示安装信息
–noplugins               禁用所有插件
–nogpgcheck              不进行gpg检查
–disablerepo=FILE.REPO   临时禁用指定的yum源
–enablerepo=FILE.REPO    临时启用yum源
command:
repolist          显示启用的每个yum源列表
list              显示rpm包
install           安装rpm包
update            升级rpm包
remove            卸载rpm包
info              显示rpm包的信息
clean             清除本地缓存的yum源的元数据
makecache         建立yum源的缓存
search            根据给定的字符串搜索rpm包
grouplist         列出可用的包组
groupinstall      安装包组
groupremove       卸载包组
groupinfo         显示包组信息
groupupdate       升级包组
示例:
创建本地yum源缓存
yum makecache
查看本地可用的repo列表
yum repolist [enabled]
查看httpd程序包的信息
yum info httpd
直接安装httpd程序包
yum -y install httpd
安装程序包组
yum -y groupinstall Development tools
卸载httpd程序包
yum remove httpd
2、自建yum仓库,分别为网络源和本地源
网络yum源:
在/etc/yum.repo.d/目录下创建repo文件,文件名必须以.repo结尾
通过文本编辑器在新创建的文件中输入以下内容:
[aliyun]
name=aliyun base package
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=0
本地yum源:
通过挂载系统镜像里文件,建立本地yum源
挂载镜像文件:
mount -r /dev/sr0 /mnt/
在/etc/yum.repo.d/目录下创建repo文件,文件名必须以.repo结尾
通过文本编辑器在新创建的文件中输入以下内容:
[local]
name=cdrom mirrors
baseurl=file:///mnt
enabled=1
gpgcheck=0
3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
at命令:
通过at命令创建一个任务,在未来指定的时间点运行,然后将运行的结果通过邮件反馈给发起的用户
用法: at [options] TIME
TIME的指定方式:
HH:MM             即08:30,也可以在后面指定日期
HH:MM YYYY-MM-DD  即20:10 2018-07-20
也可以使用其他表示时间的单词:如
noon     中午
midnight 午夜
teatime  喝茶时间,下午4点
tomorrow 明天
还可以指定在当前时间后的某个时间点执行任务:如
now+5min   在5分钟后执行
now+1hours 在1小时后执行
now+2days  在2天后执行
now+1weeks 在1走后执行
options:
-l            查看已有的作业队列
-d            删除指定的作业
-c            查看指定作业的具体内容
-q            创建作业时指定队列
-f /PATH/FILE 从指定文件读取作业内容
示例:
在5分钟后创建一个作业:
at now+5min
查看当前所有的作业:
at -l
通过指定的文件创建作业:
at -f /root/test.sh now+5min
查看指定作业的具体内容,需要指定作业号,通过at -l 可以查看作业号:
at -c 3
crontab命令:
使用crontab命令可以创建任务,由系统内核运行的守护进程周期性的检查任务的执行条件,只有当条件满足时才会执行任务,执行结果通过邮件返回给用户
任务分为两种:系统任务和用户任务
系统任务:实现系统自身维护的任务,保存在/etc/crontab 文件中
用户任务:用户自己创建的,保存在/var/spool/cron/目录下对应的用户名文件中
命令的用法:crontab [ooptions]
常用选项:
-e      编辑任务文件
-l      列出所有任务
-r      移除所有任务,会删除/var/spool/cron/目录下对应的用户名文件
-u      root用户可以为指定的用户创建任务
在不指定选项时,直接使用crontab命令添加任务,会将文件中其他任务覆盖掉
使用crontab命令添加任务是需要按照指定的格式进行的:格式如下
* * * * * COMMAND
前面5个字段代表执行时间,后面是符合设置的时间后执行的命令
前5个字段分别表示分钟,小时,每月的第几天,月份,周几
.—————- minute (0 – 59)
|  .————- hour (0 – 23)
|  |  .———- day of month (1 – 31)
|  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …
|  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * command to be executed
在指定时间时有多种表示方法:
1、指定值,即在有效范围内的任意值
2、* 表示范围内的时间点都有效
3、离散取值,中间用逗号,隔开
4、连续取值,中间使用短横线-隔开
5、指定步长,每个步长执行一次,需要被整除
示例:
3 * * * * ls /root
在每小时的第3分钟执行 ls /root 命令
3 5 * * 3 cat /etc/passwd
在每周三的05:03执行 cat /etc/passwd
8 9 4 5 * echo “hello”
在每年的5月4号的09:08执行 echo “hello”
练习:每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
创建脚本
vim date-cron.sh
输入以下内容
#!/bin/bash
/usr/bin/date +”%Y-%m-%d %T”
修改执行权限
chmod +x date-cron.sh
创建周期任务
crontab -e
添加以下内容
10 3,5 * * 3 /root/date-cron.sh
4、简述sed常用操作命令,并举例
sed命令:
将文件内容按行读取到模式空间,根据条件进行匹配处理,并将结果输出,不修改源文件
用法:sed [options] ‘script’ [input-file]…
options:
-n              不输出模式空间的内容
-e script;–expression=script      使用多个编辑命令
-f /PATH/TO/SCRIPT_FILE            导入sed脚本文件编辑每行数据
-r              使用扩展的正则表达式进行匹配
-i              直接编辑源文件
script:一般包含两部分,指定处理的行范围和编辑命令
行范围的定界表示方法:
空地址:对全文进行处理
指定地址:
#           单个数字指定行号
/PATTERN/   使用正则表达式
指定范围:
#,#         如3,5表示从第三行到第五行
#,+#        从起始行开始加指定行结束,如3,+2表示从第三行开始加上后面的二行
#,/pattern/ 从指定行开始,到第一个被模式匹配到的行结束,如果没有匹配的即到最后一行
/pattern/,/pattern/  表示第一个匹配的行到第二个匹配到的行
$            表示最后一行
#~#          步进,如1~2表示第1行开始,每次加2的行
编辑命令:
d            删除
p            显示
a \text      行后追加文本
i \text      行前插入文本
c \text      行替换,会将指定的行都替换
w /PATH/TO   保存模式空间匹配到的行至指定文件中
r /PATH/FROM 读取指定的文件,将文件内容追加至指定的行后面
=            对匹配到的行输出行号
!            对地址取反,即 3!d 非第3行删除
s///         查找替换
高级编辑命令:
sed处理行时有两个空间,模式空间和保持空间,两个空间的数据可以互相引用
上述的编辑命令都是在模式空间操作的,高级编辑命令会涉及保持空间
h   将模式空间的内容覆盖至保持空间
H   将模式空间的内容追加至保持空间
g   用保持空间的内容覆盖模式空间
G   将保持空间的内容追加至模式空间
x   将两个空间的内容互相交换
n   使用匹配到的行的下一行内容覆盖模式空间,即直接引用下一行的数据
N   将匹配到的行的下一行内容追加至模式空间
d   删除模式空间中的行
D   删除模式空间中的所有行
示例:
sed -n ‘3p’ /etc/fstab
将/etc/fstab文件中的第3行打印出来
sed ‘3d’ /etc/fstab
将/etc/fstab文件中第3行删除,即除了第3行的其他行全部输出
sed -n ‘/^UUID/p’ /etc/fstab
将/etc/fstab文件中UUID开头的行打印输出
sed ‘G’ /etc/fstab
在文件中的每一行追加一个空白行
sed ‘/^$/d;G’ /etc/fstab
将/etc/fstab文件中的所有空白行删除,然后在每一行后面追加一个空白行

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

(1)
贵上蒋贵上蒋
上一篇 2018-07-17
下一篇 2018-07-18

相关推荐

  • 变量替换 字符串处理

    变量替换非空 空 不存在 Var=${Str-Expr} Str 空 Expr Var=${Str:-Expr} Str Expr Expr 不存在至stderrVar=${Str?Expr} Str 空 Expr(stderr) Var=${Str:?Expr} Str Expr(stderr) Expr(stderr) 不存在 被赋值Var=${Str=…

    Linux笔记 2018-07-15
  • sudu、文件共享(vsftp、samba、nfs)

    sudo:授权之后,能够让某用户以另外一个用户身份运行命令; 配置文件:/etc/sudoers;其编辑命令visudo sudo操作日志记录至/var/log/secure中 特别注意:禁止授权修改root密码;! passwd root,passwd [a-Z]* 配置项: root ALL=(ALL) ALL %wheel ALL=(ALL) ALL …

    Linux笔记 2018-05-30
  • 网段划分

    物理上在一个网段,逻辑上不在一个网段 则通讯必须经过路由器 只要不在一个网段就要经过路由器 路由表   由于有类地址之间跨度太大,不利于使用,现在生产环境中使用的是无类地址。 无类地址:网络ID,主机ID不确定 CIDR:无类域间路由 无类域间路由表示法 IP/网络ID位数   172.20.0.123 netmask:子网掩码 32位二…

    Linux笔记 2018-07-02
  • 描述Linux计算机的组成及其功能

    描述计算机的组成及其功能

    2018-04-16
  • 第七周作业

    1、简述linux操作系统启动流程 inux系统启动流程大致是这样的: BIOS(Boot Sequence) –> MBR(GRUB) –> Kernel(ramdisk) –> rootfs –> /sbin/init(/etc/inittab) BIOS 主板在接通电源后,BIOS…

    2018-06-29
  • 简述一下TCP三次握手四次挥手

    TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。 原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。 TCP三次握手 TCP建立连接为什么是三次握手,而不是两次或四次? 个人理解:因为要双方都要确定对方的网络没毛病,通讯正常。 还有一个网上看到的说法,我觉得很有意思: 我:1+1等于几? 她:2,2+2等于几? 我:4 …

    2018-04-30