rpm和yum的详细使用以及at,crond计时

2018-10-22  本文已影响0人  N33_LvQing

一、简述rpm和yum命令的常用选项并举例说明

rpm命令:rpm [OPTIONS] [PACKAGE_FILE]

-i,--install:安装

-e,--erase:卸载

-q,--query:查询    

1、rpm命令的常用选项

    (一)、安装:

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

rpm -ivh PACKAGE_FILE…

-v:verbose,详细信息

-vv:更详细的输出

-h:hash marks:输出进度条;每个#表示2%的进度;

--test:测试安装,检查并报告依赖关系及冲突消息等;

--nodeps:忽略依赖关系;不建议使用,安装后可能很多功能无法使用;

--ignorearch 不校验软件包的结构 

--ignoreos 不检查软件包运行的操作系统 

--ignoresize:不在安装前验证磁盘空间

--force :忽略软件包及文件的冲突 

--noscripts: 不运行预安装和后安装脚本 

--prefix=<dir> : 将软件包安装到指定的路径下

–noscripts :不安装任何脚本

–nosignature:不检查包签名信息,不检查来源合法性

–nodigest:不检查包完整性信息

--import:导入所需公钥

注意:

手动安装需要解决软件包的依赖性,所以在安装一个软件的同时你可能需要

安装许多的前提软件

    (二)、更新:

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

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

-U, --upgrade=<packagefile>+:升级如果没发现包就安装

-F, --freshen=<packagefile>+ :升级,前提是必须要已经安装了的

举例:

rpm -Uvh PACKAGE_FILE…

rpm -Fvh PACKAGE_FILE…

--oldpackage:降级

--force:强制升级,忽视依赖关系,两者配合使用

注意:

(1)不要对内核做升级操作;Linux支持多内核版本并存,因此,升级等于直接安装新版本内核;

(2)如果某原程序包的配置文件安装后被修改过,升级时,新版本的程序提供的同一配置文件不会覆盖已存在的配置文件,而是把新版本的配置文件重命名(filename.rpmnew)后提供。

    (三)、卸载:

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

--allmatches:卸载所有匹配指定名称的程序包的各版本(通常会产生错误);

--nodeps:忽略依赖关系

--test:测试卸载,并不真正卸载

--noscripts:不执行脚本

--replacefiles:忽略包之间的文件冲突,有文件冲突时强制覆盖

--replacepkgs:重新安装

(四)、查询:

rpm的数据库地址是/var/lib/rpm

--initdb:初始化数据库

--rebuilddb:重建已安装的数据库索引

注意:

数据库中存放的都是已安装包的各种信息,通过数据库查询的

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

[select-options]

-a, --all:查询所有已经安装过的包;

-f, --file:查询指定文件由哪个程序包安装生成;

-p, --package:查询一个未安装包文件;

--whatprovides :谁提供

--whatrequires :谁要求

[query-options] (with -q or --query)

-l,–list:程序安装生成的所有文件列表;

-i,–info:程序包的相关的信息,版本号、大小、所属的包组等;

-c,–configfiles:查询指定的程序包提供的配置文件;

-d,–docfiles:查询指定的程序包提供的文档;

--provides:列出能力列表

-R,–requires:查询指定的程序包的依赖关系;

--scripts:查看程序包自带的脚本片断;

举例:

-qi  PACKAGE ,  -qf FILE ,  -ql PACKAGE, -qd PACKAGE

-qpi PACKAGE_FILE ,-qpl PACKAGE_FILE, -qpc PACKAGE_FILE

安装服务的详细信息
服务内文件的列表
服务提供的文档

(五)、验证

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

[select-options]

-V:可对文件刚装的状态进行对比

-a, --all:所有的包

-f, --file:包所属的文件

-g, --group :组中的包文件

-p, --package:包文件

[verify-options]

--nofiledigest:不验证文件摘要

--nofiles:不验证包中的文件

--nodeps:不验证包的依赖性

--noscript:不执行验证脚本

验证:

(1)安装此组织签名的程序时,会自动执行验证;

(2)手动验证:rpm     -K      PACKAGE_FILE

2、yum的常用选项 :

yum相对于rpm最方便的地方就是自动解决了包的依赖性

yum [options] COMMAND

Options:

-y 对安装过程中的所有提问都回答yes

-q 静默模式

-v 输出安装过程中的详细信息

--nogpgcheck 不检查gpg公钥

--downloadonly 只下载不更新

--downloaddir=DLDIR指定包下载地址

--bugfix修复bug

——enablerepo=[repo]启用一个或多个库(允许通配符)

——disablerepo=[repo]禁用一个或多个库(允许通配符)

--installroot=[path] 设置安装的主目录

-x [package], --exclude=[package]排除某个包

COMMAND

install 安装

update 更新安装

erase 删除安装包

check-update 检查是否有可用更新

remove 删除安装包

list 显示安装包信息

clean 清理缓存

check 检查rpmdb中的问题

deplist 列出包的依赖性

downgrade 降级

info 查看信息

history 查看yum使用历史纪录

repolist 显示yum库列表

grouplist 显示软件包组列表,可直接安装一组软件

search 在软件包中搜索指定字符

一般使用格式:

yum install -y name yum repolist

二、自建yum仓库,分别为网络源和本地源

在/etc/yum.repos.d目录下创建一个以.repo结尾的文件。

编辑文件/etc/yum.repos.d/base.repo

[name]

baseurl=file:///misc/cd

gpgcheck=0

name=centos7

[epl]

baseurl=http://vault.centos.org/7.1.1503/os/x86_64/

gpgcheck=0

name=epl

如果为网络仓库,则baseurl指向网络仓库的地址,创建本地仓库,路径必须要在Package的上层,使用createrepo  创建yum库。然后在/etc/yum.repos.d目录下创建一个以.repo文档,编辑文档中的baseurl指向当前目录。

本地base元数据存放地址

将yum服务器的元数据缓存到本机当中

createrepo用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。如果自己搭建本地库则需要创建。

(三)、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

at命令:at [OPTION]… TIME

TIME: HH:MM[YYYY-mm-dd]  moon ,modnight,teatime,tomorrow,now(minutes,hours,days,weeks)

at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。

常规选项:

-l:查看作业队列,

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

-d:删除指定的作业,

-c:查看指定作业的具体内容;

-q :指明队列

在/etc/有两个文件at.allow,at.deny,deny里的用户将被拒绝allow的权限最高,如果两个文件都不存在则只有root能使用at命令

示范:

 at now + 2 weeks     任务在两周后运行

 at midnight          任务在午夜运行

 at 10:30pm           任务在晚上10点30分

crontab命令:

通常用于需要周期性执行的任务

/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

MAILTO=root当执行失败时发邮件给谁

/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

/var/spool/cron/ 这个目录下存放的是每个用户的crontab任务文件,以用户名来命名,一般一个

用户最多一个文件

crontab [-u user][-l|-r|-e][-i]

-e:编辑任务

-l:列出所有任务

-r:删除所有任务

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

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

制定任务:

(四)、简述sed常用操作命令,并举例

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

OPTION:

-n, --quiet, --silent:不打印模式空间中的内容至屏幕;

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

-f script-file, --file=script-file:添加脚本,每行一个编辑命令;

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

-i[SUFFIX], --in-place[=SUFFIX]:直接编辑愿文件,如果加后缀就先备份-i.bak;

地址定界:

(1)不给地址:' '对全文进行处理;

(2)单地址:

#:指定行;

/pattern/:被此模式所匹配到的每一行;

$:最后一行

(3)地址范围

#,#:

#,+#:

#,/pat1/

/pat1/,/pat2/

(4)步进:~

1~2:所有奇数行

2~2:所有偶数行

脚本命令:

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///:全局替换;

用;分隔多条命令

后向引用\1和&代表了前面所匹配到的内容

高级编辑命令:

P:只打印第一行,追加到默认输出之前

h:模式空间覆盖保持空间

H:模式空间追加到保持空间

g:保持空间覆盖模式空间

G:保持空间追加到模式空间

X:两个空间的内容互换

n:匹配到的下一行覆盖模式空间

N:匹配到的下一行追加到模式空间

d:删除行

D:如果由换行符,删到第一个换行符,并不读取新输入行,重新开始循环

示例:

seq 1 10 | sed 'N;s/\n//'

sed -n 's#quiet"#&net.ifnames"#p' /etc/default/grub

上一篇 下一篇

猜你喜欢

热点阅读