rpm、yum本地、网络、自制源配置
每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.tar.gz"
]# crontab -l
0 */12 * * * tar -zcf /backup/etc-$(date +%F-%H-%M) /etc
rpm工具演示:
rpm包管理功能总结以及实例应用演示。
rpm 只要是Redhat系统上的一款程序包管理工具;其主要实现程序的安装、升级、卸载、查询、校验及数据库维护等
rpm命令主要参数选项及演示
安装;
1 rpm {-i|--install} [install-options] PACKAGE_FILE ... 2 {-i|--install} 3 -i 显示详细信息-v;显示进度条-h 4 ]# rpm -ivh zsh-5.0.2-31.el7.x86_64.rpm 5 [install-options] 6 测试安装,检查并报告依赖关系及冲突 7 ]# rpm -ivh --test vsftpd-3.0.2-25.el7.x86_64.rpm 8 9 忽略依赖关系安装:--nodeps 不建议;可能程序会运行出错 10 ]# rpm -ivh --nodeps php-common-5.4.16-46.el7.x86_64.rpm 11 当配置文件出错了需要重新安装时 12 --replacepkgs 不能替换默认配置文件 13 ]# rpm -ivh --nodeps --replacepkgs php-common-5.4.16-46.el7.x86_64.rpm 14 15 不检查包签名的信息;不检查来源的合法性 16 --signature 17 ]# rpm -ivh --nosignature zsh-5.0.2-31.el7.x86_64.rpm 18 --nodigest 不检查包完整性
升级:
1 rpm -Uvh PACKAGE_FILE ... 2 rpm -Fvh PACKAGE_FILE ... 3 4 --oldpackage:降级安装 (当新版本不兼容情况时使用) 5 ]# rpm -Fvh --oldpackage zsh-5.0.2-14.el7_2.2.x86_64.rpm 6 7 --force:强制升级(当升级时与老版本的依赖性出现差异时可使用) 8 9 注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核; 10 (2) 如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件, 而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
卸载:
1 rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ... 2 3 常用格式: 4 rpm -evh PACKAGE_NAME ... 5 --allmatches:卸载所有匹配指定名称的程序包的各版本; 6 ]# rpm -evh --allmatches vsftpd 7 --nodeps:忽略依赖关系 8 ]# rpm -evh --nodeps php 9 --test:测试卸载,dry run模式
查询:
rpm {-q|--query} [select-options] [query-options] [select-options] PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本; -a, --all:查询所有已经安装过的包; package]# rpm -qa php php-5.4.16-46.el7.x86_64 ]# rpm -qa列出所有已安装的包 -f FILE:查询指定的文件由哪个程序包安装生成; [root@localhost Packages]# rpm -qf /bin/ls coreutils-8.22-23.el7.x86_64 -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作; ]# rpm -qp php-common-5.4.16-46.el7.x86_64.rpm --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;(容量) ]# rpm -q --whatprovides php-common-5.4.16-46.el7.x86_64.rpm --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖; ]# rpm -q --whatrequires php-5.4.16-46.el7.x86_64.rpm [query-options] --changelog:查询rpm包的changlog; -l, --list:程序安装生成的所有文件列表; ]# rpm -ql zsh -i, --info:程序包相关的信息,版本号、大小、所属的包组,等; ]# rpm -qi zsh -c, --configfiles:查询指定的程序包提供的配置文件; [root@localhost Packages]# rpm -qc php /etc/httpd/conf.d/php.conf etc/httpd/conf.modules.d/10-php.conf -d, --docfiles:查询指定的程序包提供的文档; [root@localhost Packages]# rpm -qd zsh /usr/share/doc/zsh-5.0.2/BUGS --provides:列出指定的程序包提供的所有的CAPABILITY; [root@localhost Packages]# rpm -q --provides zsh config(zsh) = 5.0.2-31.el7 zsh = 5.0.2-31.el7 zsh(x86-64) = 5.0.2-31.el7 -R, --requires:查询指定的程序包的依赖关系; ]# rpm -qR php
校验:
1 rpm {-V|--verify} [select-options] [verify-options] 2 S 文件大小不同 3 M 模式不同(包括权限和文件类型) 4 5 摘要(以前是MD5和)不同 5 D 设备主/副号码不匹配 6 L 读取链接(2)路径不匹配 7 U 用户所有权不同 8 G 组所有权不同 9 T mTime不同 10 P 能力不同 11
eg:
~]# rpm -V tcsh
重建数据库:
1 rpm {--initdb|--rebuilddb} 2 --initdb 事先无数据库时,可初始化创建一个,当前有时,不执行操作 3 --rebuilddb 重新构建数据库 4 --dbpath 指明数据库路径
yum源配置:
yum是安装软件包可解决依赖关系一款前端工具,可在多个仓库选择安装包。
yum客户端配置文件
/etc/yum.conf:为所有仓库提供默认配置;
/etc/yum.repos.d/*.repo:为仓库提供指向;
创建yum源管理工具
若要创建本地yum源先查看光盘有没有挂载:
]# df
查看默认配置:
1 root@localhost yum.repos.d]# cat /etc/yum.conf 2 [main] 表示仓库名称,不能有空格特殊字符 3 cachedir=/var/cache/yum/$basearch/$releasever 缓存文件夹;$basearch表示CPU架构;$releasever 表示软件版本号 4 keepcache=0 保存缓存 1表示保存0表示不保存 5 debuglevel=2 调试等级;一般默认 6 logfile=/var/log/yum.log yum安装日志 7 exactarch=1 精确CPU架构 8 obsoletes=1 9 gpgcheck=1 是否检查完整性同rpm -K(1表示检查,0表示不检查) 10 plugins=1 是否开启插件 11 installonly_limit=5 并行安装数(yum不允许同机多终端安装) 12 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum 13 distroverpkg=centos-release
查看/etc/yum.repo.d仓库文件:
备份原yum源
yum.repos.d]# cp CentOS-Base.repo 163.CentOS.Base.bak
编辑新yum源:
1 yum.repos.d]# vim CentOS-Base.repo 2 [base] 3 name=media 4 baseurl=file:///media/CentOS 5 gpgcheck=1 6 gpgkey=file:////media/CentOS/RPM-GPG-KEY-CentOS-7 7 [network] 8 name=ali_QingHua 9 baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ 10 http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ 11 http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ 12 http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ 13 gpgcheck=1 14 gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearc/RPM-GPG-KEY-CentOS-7 15 http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
清理本地缓存
~]# yum clean all
重构yum缓存:
~]# yum makecache
列出仓库列表
~]# yum repolist
自制源:
1 1、在根目录下新建/Packages; 2 2、到光盘或网络下载相应软件包; 3 3、使用]# createrepo -u /package/ /root/myrepo创建自制仓库; 4 4、编辑]# vim /etc/yum.repos.d/myrepo.repo 5 [myrepo] 6 name=my_repo 7 baseuar=file:///root/myrepo 8 gpcheck=0 9 5、使用yum -y insrall ftp ....d等安装相应的软件包
写一个脚本实现列出以下菜单给用户:
1 (1)disk:show disk info信息 2 (2)mem: show memory info信息 3 (3)cpu: show cpu info信息 4 (*)quit 5 #!/bin/bash 6 # 7 cat << EOF 8 (1)disk:show disk info 9 (2)mem:show memroy info 10 (3)cpu:show cpu info 11 (*)quit 12 EOF 13 14 read -p "Please Choice: " option 15 if [[ "$option" == "disk" ]];then 16 fdisk -l /dev/[sh]d[a-z] 17 elif [[ "$option" == "mem" ]];then 18 free -m 19 elif [[ "$option" == "cpu" ]];then 20 lscpu 21 else 22 echo "Unkown option." 23 exit 2 24 fi