美文网首页
linux程序包管理,定时计划以及sed简介

linux程序包管理,定时计划以及sed简介

作者: 沉默的xz | 来源:发表于2018-07-22 21:33 被阅读0次

    第一部分 linux程序包管理

    rpm简介

             RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放的,现在包括OpenLinux、SUSE等发行版都有采用,可以算是公认的行业标准了。RPM是一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.RPM扩展名的文件。

    CentOS系统上rpm程序主要有以下几个功能:

    (1)安装:

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

    -v:verbose

    -vv:显示更详细的安装信息

    -h:以“#”显示程序包管理执行进度,每个“#”表示2%的进度

    rpm -ivh PACKAGE_FILE

    --test:测试安装,但不真正执行安装过程,属于dry run模式

    --nodeps:忽略依赖关系

    --replacepkgs:重新安装

    --nosignature:不检查来源合法性

    --nodigest:不检查包完整性

    --noscipts:不执行程序包脚本片段

    %pre:安装前脚本:--nopre

    %post:安装后脚本:--nopost

    %preun:卸载前脚本:--nopreun

    %postun:卸载后脚本:--nopostun

    说明:安装zsh的rpm包 说明:安装redis的rpm包

    (2)升级:

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE

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

    upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

    freshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作

    rpm -Uvh PACKAGE_FILE

    rpm -Fvh PACKAGE_FILE

    --oldpackage:降级

    --force:强行升级

    说明:升级安装redis包

    (3)查询:

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

    [select-options]

    -q:查询包

    -a:所有包

    -f:查看指定的文件由哪个程序包安装生成

    -p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件查询其安装文件信息

    --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

    --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

    [query-options]

    --changelog:查询rpm包的更新日志

    -c:查询程序的配置文件

    -d:查询程序的文档

    -i:information

    -L:列出许可证信息

    -l:查看指定的程序包安装后生成的所有文件

    --scripts:程序包自带的脚本片段

    -R:查询指定的程序包所依赖的CAPABILITY

    --provides:列出指定程序包所提供的CAPABILITY

    说明:查询刚安装的redis包,注意这里要输入的是包名(rh-redis32-redis)

    (4)卸载:

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

    --allmatches:卸载所有匹配指定名称的程序包的各版本;

    --nodeps:忽略依赖关系

    --test:测试卸载,dry run模式

    说明:卸载刚安装的redis包,查询已没有

    (5)校验:

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

    校验信息含义:

    S file Size differs

    M Mode differs (includes permissions and file type)

    5 digest (formerly MD5 sum) differs

    D Device major/minor number mismatch

    L readLink(2) path mismatch

    U User ownership differs

    G Group ownership differs

    T mTime differs

    P caPabilities differ

    说明:校验redis包,无输出,则说明验证通过。

    (6)数据库重建:

    rpm {--initdb|--rebuilddb}

    initdb:初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作

    rebuilddb:重建,无论当前存在与否,直接重新创建数据库

    说明:在指定路径下新建rpmdb

    yum工具简介

            yum是rpm软件包管理器的前端管理工具。yum是一个在Fedora和RedHat以及CentOS的前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,简化了安装步骤。

    功能用法:yum [options] [command] [package]

    显示仓库列表:

      repolist [all|enabled|disabled]

    说明:

    显示程序包:

      list

      #yum list [all | glob_exp1] [glob_exp2]

      #yum list {available|installed|updates} [glob_exp1]

    安装程序包:

      install package1 [package2]

      reinstall package1 [package2](重新安装)

    升级程序包:

      update [package1] [package2]

      downgrade package1 [package2](降级)

    说明:查看发现bash有新版本的程序包,故用upgrade程序更新到最新版本。 说明:检查是否更新成功

    检查可用升级:

      check-update

    说明:检查发现yum程序有最新版未安装

    卸载程序包:

      remove | erase package1 [package2]

    查看程序包的简要信息:(类似于rpm -qi)

      info package

    说明:查看bash程序的简要信息

    查看指定的特性(可以是某文件)是由哪个程序包所提供:

      provides | whatprovides feature1 [feature2]

    清理本地缓存:

      clean [ package | metadata | expire-cache | rpmdb | plugins | all ]

    说明:清除本地缓存的package

    构建缓存:

    makecache 

    据关键字搜索相关信息:

         search string1 [string2](以指定的关键字搜索程序包名及summary信息) 

    查看指定包所依赖的capabilities:

      deplist [package1] [package2]

    查看yum事务历史:

      history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

    安装及升级本地程序包:

      localinstall rpmfile1 [rpmfile2]

      (maintained for legacy reasons only - use install)

      localupdate rpmfile1 [rpmfile2]

            (maintained for legacy reasons only - use update) 

    包组管理的相关命令:

      groupinstall group1 [group2](安装包组)

      groupupdate group1 [group2](升级包组)

      grouplist [hidden] [groupwildcard](列出包组的列表)

      groupremove group1 [group2](移除包组)

      groupinfo group1(查看包组的相关信息)


    yum仓库

    yum仓库定义:

    [repositoryID] 仓库ID

    name=Some name for this repository  仓库名,功能的完整描述

    baseurl=url://path/to/repository/  仓库的路径

    文件服务器:四种形式

    ftp://

    http://

    nfs://

    file:///

    enabled={1|0} 是否启用,默认启用

    gpgcheck={1|0}  检查包的来源合法性和完整性。默认启用

    gpgkey=URL  指明秘钥文件路径

    enablegroups={1|0} 是否允许基于组管理程序包,默认启用

    failovermethod={roundrobin|priority}  故障转移方法,baseurl有多个时的选用原则

    默认为:roundrobin,意为随机挑选;

    cost=  开销值,默认为1000

    建立yum仓库步骤:

    要建立yum仓库,首先需要在/etc/yum.repo.d/目录下建立一个已.repo结尾的文件,如下图的CenOS-local.repo的yum仓库文件:

    说明:上图中[centos-source]是本地的yum源,位置是本地的centos镜像的挂载路径;[aliyun]则是网络yum源,位置则是阿里云镜像文件服务器的地址。

    第二部分 at和crontab简介

            at:未来某个时间点执行一次某任务,所制定的计划任务会在指定时间执行一次,结果会以邮件的形式发送给创建计划的用户

    用途用法:

    at [OPTION]... TIME

    TIME:

    HH:MM [YYYY-mm-dd]

    noon中午12点,midnight午夜12点, teatime下午4点

    today,tommorow 

    now+#  相对时间计时法   UNIT :minutes, hours, days, weeks

    常用选项:

    -l:查看作业队列,相当于atq;

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

    -d:删除指定的作业,相当于atrm;

    #at -d #(作业号)

    -c:查看指定作业的具体内容;上部分是环境信息,尾部是提交的作业内容。

    -q QUEUE:指明队列;


    crontab是用来进行周期性的执行某任务

    向crond提交作业的方式不同于at,它需要使用专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件;要使用crontab命令。该命令是用法如下:

    crontab [-u user] [-l | -r | -e] [-i] 立即生效

    -e:编辑任务;

    -l:列出所有任务;

    -r:移除所有任务;

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

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

    注意:运行结果以邮件通知给当前用户;如果拒绝接收邮件:

    (1) COMMAND > /dev/null

    (2) COMMAND &> /dev/null

    说明:crontab -l的第一行就是为这个要求,每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00,制定的计划任务。为了验证是否可用,以每分钟执行一次的计划任务测试了一下,可以正常执行。

    第三部分 sed命令简介

                Sed本质上是一个编辑器,但是它是非交互式的,同时它又是面向字符流的,输入的字符流经过Sed的处理后输出。Sed本身是一个管道命令,可以分析标准输入,主要用来分析关键字的使用、统计等,此外还可以将数据进行替换、删除、选取特定行等功能。

    用法用例如下:

    sed [OPTION]... 'script' [input-file] ...

    常用选项:

    -n:不输出模式空间中的内容至屏幕;

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

    -f  /PATH/TO/SED_SCRIPT_FILE

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

    -i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 ;

    编辑命令:

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

    w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;

    p:显示替换成功的行;

    说明:显示偶数行 说明:逆序显示文件内容 说明:显示文件最后2行 说明:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行 说明:取出给定路径的dirname

    相关文章

      网友评论

          本文标题:linux程序包管理,定时计划以及sed简介

          本文链接:https://www.haomeiwen.com/subject/jmykmftx.html