Step by step—5

程序包管理器:
debian:dpt,dpkg
redhat:rpm
S.u.S.E:rpm,
Gentoo:ports

源代码:name-VERSION.tar.gz
VERSION:major,minor,release
rpm包命名格式:name-VERSION-release.arch.rmp
VERSION:major,minor,release
release:rpm包的发行号,比如:redis-3.02-1.centos7x64.rpm

拆包:主包和支包
主包 name-VERSION-release.arch.rpm
支包 funciton-VERSION-release.arch.rpm

依赖关系:解决依赖关系:yum

获取程序包的途径:
1,系统发行版的光盘或者官方服务器(镜像站点)
mirrors.aliyun.com/mirrors.sohu.com/mirrors.163.com
2,项目的官方站点
3,第三方组织EPEL/pkgs.org/rpmfind.net/rpm.pbone.net
CentOS系统上rmp:安装、升级、卸载、查询、校验、数据库维护 常用rpm-ivh PACKAGE
rpm [options] [package_file]
-i:安装
-v详细信息 -h显示进度 --test测试安装 --nodeps忽略依赖关系
--replacepkgs重新安装 --noscripts不执行程序包脚本 --nosignature不检查来源合法性 --nodigest不坚持包完整信息

    -U:升级 :不对内核升级
        -U升级或安装  rpm -Uvh package
        -F升级  -Fvh package
        --oldpackage:降级 --force强制升级

    -e:卸载  rpm -e package_name 
    --allmatches卸载所有版本

    -q:查询 rpm-qa package_name查询所有包
    -f FILE查询FILE是由哪个程序生成的  -p|--package PACKAGE_FILE查询为安装的包
    --whatprovides CAPABILITY:查询指定CAPABILITY由哪个包提供
    --whatrequires CAPABILITY:查询指定CAPABILITY被哪个包依赖
    [query-options]:
--changelog :查询rpm包的changelog
-c :查询程序的配置文件
-d :查询程序文档
-i :information
-l :查看程序包安装后生成的所有文件
--scripts:查看程序包自带的脚本
--provides:列出程序包所提供的CAPABILITY
-R :查询指定的额程序包所依赖的CAPABILITY
常用查询法:
-qi PACKAGE;-qf FILE;-qc PACKAGE;-ql PACKAGE;-qd PACHKAGE

    -v:校验
    rpm {-V|--verify}[select-options][verify-options]
[verify-options]
S:file Size differs
M:Mode differs(includes permissons and file type)
5:digest differs
L:readlink path mismatch
D:Device major/minor number mismatch
U:User ownership differs
T:mtime differs 
P:capabilities differs

导入所需公钥
rpm -k|--checksig rpmfile检查包的完整性
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7
Centos 7发行光盘提供RPM-GPG-KEY-Centos-7
rpm -qa “gpg-pubkey*”

yum

解决程序包依赖性安装
yum [optios] [command] [packages]
yum repolist[all|enable|disable]显示仓库列表
yum list显示程序包
yum install [packages]...安装程序包
yum reinstall [packages]..重新安装程序包
yum update [package]..升级程序包
yum downgrade [packages]降级
yum check-update 检查可用升级
yum remove |erase packages 卸载程序包
/etc/yum.conf为仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向定义:
[repositoryID]
name=仓库名字
baseurl=仓库路径
enable={1|0}是否启用
gpgcheck={1|0}是否校验

创建yum仓库

cd /etc/yum.repos.d
touch new.repo
vim new.repo
内容:
[newrepo]
name=newrepo
baseurl=http://mirrors.aliyun.com/centos/7.5.1804/x86_64/
baseurl=file:///run/meida/leen/CentOS\ 7\ x86_64
gpgcheck=0

计划任务、周期性任务

计划任务:at ;batch
周期性任务:crontab、
执行结果会通过邮件发送给用户:netstat -tnlp /ss -ntl
本地电子邮件服务:
smtp:简单邮件发送
pop3:邮局协议
lmap4:互联网邮件访问协议

mail命令:收发邮件    MUA:用户收发邮件的程序
mail [-s指明标题] username@hostname
    邮件正文生成方式:交互式以.号结束
                    输入重定向
                    管道

at:
at[option] TIME
TIME: HH:MM[YYYY-mm-dd]
at的作业有队列,用单个字母表示,
at -l=atq显示当前等候运行的命令
-f/path/from/somefile从指定文件中读取作业任务,
-d=atrm删除任务
-c查看指定作业的具体内容
-q指明队列

batch会让协调自行选择系统资源较空闲的时间执行指定任务

crontab/cron:
服务程序:
cronle:主程序包提供crond首付进程及相关辅助工具
确保crond守护进程(daemon)处于运行状态:
centos7,systemctl status crond.service
centos6,service crond status

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

cron任务分两类:
系统cron任务:主要用于系统自身维护手动编辑/etc/crontab文件
用户cron任务:使用命令crontab
系统cron配置格式:
SHELL=/bin/bash
PATH=/sbin:/bin:usr/sbin:/usr/bin
MAILTO=root
*****command to be executed

    用户cron配置:/var/spool/cron/USERNAME
    SHELL=/bin/bash
    PATH=/sbin:/bin:usr/sbin:/usr/bin

    *****command to be executed

    时间表示法:
        特定值:给定时间点有效取值范围内的值
        \*:给定时间点取值范围内的所有值
        离散取值:在给定时间点上使用逗号分隔得多个值
        连续取值:在时间点上使用横线连接  例如 0-9
        定义步长:\*/步长
    定义crontab:
        -e:编辑任务,如果拒绝接收邮件使用COMMAND>/dev/null或者COMMAND&>/dev/null
        -l:列出所有任务
        -r:移除所有任务,即删除所有cron文件
        -i:交互式选项
        -u user:root用户可为其他user定义crontab

        定义COMMAND时如果需要用到%需要转义,因故未能执行的下次开机不自动执行,使用anacron实现再次运行。

        制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

      crontab -e
        输入10 3,5 * * * /bin/bash date + %Y-%m-%d-%H-%s

        sed

用法:
sed [option]... 'script' inputfile...
 常用选项:
-n:不输出模式空间内容到屏幕,即不自动打印
-e: 多点编辑
-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r: 支持使用扩展正则表达式
-i.bak: 备份文件并原处编辑
地址定界:
(1) 不给地址:对全文进行处理
(2) 单地址:
#: 指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
(3) 地址范围:
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
(4) ~:步进
1~2 奇数行
2~2 偶数行
编辑命令:
d: 删除模式空间匹配的行,并立即启用下一轮循环
p:打印当前模式空间内容,追加到默认输出之后
a []text:在指定行后面追加文本
支持使用\n实现多行追加
i []text:在行前面插入文本
c []text:替换行为单行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中
匹配到的行后
=: 为模式空间中的行打印行号br/>!:模式空间中匹配行取反处理
s///:查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
g: 行内全局替换
p: 显示替换成功的行
w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

P:打印模式空间开端至\n内容,并追加到默认输出之前
h: 把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g: 从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x: 把模式空间中的内容与保持空间中的内容进行互换
n: 读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
d: 删除模式空间中的行
D:如果模式空间包含换行符,则删除直到第一个换行符的模
式空间中的文本,并不会读取新的输入行,而使用合成的模式
空间重新启动循环。如果模式空间不包含换行符,则会像发出
d命令那样启动正常的新循环

猜你喜欢

转载自blog.51cto.com/13972192/2324057