cenots7 rpm 包升级ssh
rpm下载地址 也可以自行官网下载
链接: https://pan.baidu.com/s/1S945MehpmZbIriKK6l7Sfw 提取码: y5ua
centos7rpm包升级ssh
逻辑思想
一、定义包的下载地址、定义要下载包的名字
二、定义一个函数
函数内容
第一步:下载包
第二步:验证下载包是否正确
第三步:备份原有ssh文件和pam.d 文件
第四步:创建新的文件夹然后把下载的包加压到此目录
第五步:rpm安装下载的包,并重启
第六步:验证重启是否成功,如果不成功是用whiptail返回,sshd服务重启失败,SSH升级失败。请不要退出root用户并进行检查
第七步:成功后输出SSH升级完成,当前版本请不要退出当前root环境,重启sshd服务后,重新登陆ssh验>证ssh是否正常
三、检查系统版本和登录用户
脚本正文
PKG_SRC=x.x.x.x:/home #下载地址
PKG_NAME=filename # 文件名字
Centos(){
cd /tmp/
wget http://$${PKG_SRC}/${PKG_NAME}
if [[ $? == 0 ]];then
cp -rp /etc/ssh /etc/ssh_`date "+%Y%m%d%H%M%S"` #备份原有文件
cp /etc/pam.d/sshd /etc/pam.d/sshd_`+%Y%m%d%H%M%S"` #备份pam文件
mkdir openssh; tar -xf ${PKG_NAME} -C openssh/ #创建新的文件夹把包解压到此目录
cd openssh
rpm -Uvh openssh-*.rpm
systemctl restart sshd #重启sshd 服务
if [[ $? != 0 ]] ; then whiptail --title "<ERROR>" --msgbox "sshd服务重启失败,SSH升级失败。请不要退出root用户并进行检查。" 10 50 exit ; fi # 使用 whiptail 提示框 宽高 10 ,50
ssh_ver = `ssh -V 2>&1 | grep OpenSSH | awk -F ',' '{print $1}'`
whiptail --title "<NOTICE>" --msbox " sshd 升级完成 当前版本 ${ssh_ver} 不要着急退出 终端界面,重启服务,然后多连接几个伪终端" 10 55
rm -rf /tmp/${PKG_NAME} /tmp/openssh # 删除最初下载的包
else
whiptail --title "<ERROR>" --msgbox "文件下载失败,请重试或者放弃吧愚蠢的人类" 10 55
exit
}
#检查系统用户及系统版本
if [[ `whoami != root`]];then
whiptail --title "<ERROR>" --msgbox "请使用root用户执行";exit
else
if [[ `cat/etc/redhat-release | awk '{print $4}' | awk -F '.' '{print $1}'` -eq 7 ]];then
Centos
else
whiptail -- title "<ERROR>" --msgbox " 目前只支持centos7 环境下的ssh 升级" 10 55
exit
cenots7 rpm 包升级ssh的更多相关文章
- 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)
介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...
- Ceph 客户端的 RPM 包升级问题
问题 最近想把一个现有的 Ceph 客户端升级为最新的 M 版: [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph puppet-ceph-2. ...
- fpm打包神奇rpm包升级python2.7.16
fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...
- rpm 包的安装、卸载、升级、查询、验证
关键字: rpm 强制卸载jdk rpm -e j2sdk1.4.2_04 强制覆盖安装jdk rpm -Uvh j2sdk-1_4_1_02-fcs-linux-i586.rpm --force - ...
- [Linux] 021 RPM 包的安装、升级与卸载
1. 包全名与包名包全名 包全名:操作的包是没有安装的软件包 使用包全名.而且要注意路径包名 包名:操作已经安装的软件包时,使用 是搜索 /var/lib/rpm/ 中的数 2. 安装 $ rpm - ...
- 【CentOS】安装RPM包或者源码包
一.rpm (是Redheat Package Manager的简称) 如果光驱中还有系统安装盘的话, 1.先挂载光驱, mount /dev/cdrom /mnt/ 2.cd /mnt/ 3.cd ...
- Linux下RPM包的安装
Linux下RPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(ve ...
- RPM包安装——手动安装
RPM包安装 手动安装 挂载光盘 首先查看光盘是否挂载(使用mount命令) RPM包存放位置 在你光盘挂载点的Packages目录下 使用 ll | grep 关键字 可以快速找到你想要的RPM包 ...
- (转) centos7 RPM包之rpm命令
原文:https://blog.csdn.net/capecape/article/details/78529159 RPM包与源码包的区别1.软件包分类 源码包:C源代码包 rpm包:编译之后的二进 ...
- 安装RPM包或者源码包
RPM工具 RPM他是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序关于RPM各个选项的含义如下-i:表示安装-v:表示可视化-h:表示安装进度在安装RPM包时,常用的附带 ...
随机推荐
- BBS登录与注册功能的总结
BBS登录与注册功能的总结 一.表设计:表名 外键字段 表名 models.py from django.db import models from django.contrib.auth.model ...
- 半个前端新手入门Electron的过程
前言 先说几句废话,本人是一名 web 后端开发,主语言是 java,在学 Electron 之前,只会一点点 HTML和 JavaScript.本文讲的也是我学习 Electron 的过程,而非教程 ...
- Spring Native打包本地镜像,无需通过Graal的maven插件buildtools
简介 在文章<GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动>中,我们介绍了如何使用Spring Native和buildtool ...
- QtCharts模块勾画折线和曲线图
QtCharts画线图主要三个部分组成 QLIneSeries或QSplineSeries用于保存联系的坐标位置数据,QChart用于管理图像显示,例如图例,坐标主题等,QChartView则用于显示 ...
- 手把手教你用LOTO虚拟示波器搭建测试系统整机
虚拟示波器如果用于个人的研发调试工作,主要能体现出它的小巧便携以及功能强大.而它的另一个巨大优势,可集成性可定制性高,则是在我们做项目中搭建测试系统的时候才能更好的体现出来. 通常测试系统要求长时间工 ...
- 12月15日内容总结——ORM执行原生SQL语句、双下划线数据查询、ORM外键字段的创建、外键字段的相关操作、ORM跨表查询、基于对象的跨表查询、基于双下划线的跨表查询、进阶查询操作
目录 一.ORM执行SQL语句 二.神奇的双下划线查询 三.ORM外键字段的创建 复习MySQL外键关系 外键字段的创建 1.创建基础表(书籍表.出版社表.作者表.作者详情) 2.确定外键关系 3.O ...
- GaussDB(DWS)现网案例:collation报错
摘要:用户创建hash分布表,使用pbe方式执行使用分布列作为查询条件的语句时报错 本文分享自华为云社区<GaussDB(DWS)现网案例之collation报错>,作者: 你是猴子请来的 ...
- Vue13 样式动态绑定
1 class样式的动态绑定 1.1 说明 通过命令v-bind:class设置一个对象,动态切换class.可以简写为:class. class=""可以和:class=&quo ...
- 高效字符串匹配算法——BM 算法详解(C++)
定义 BM 算法是由 Boyer 和 Moore 两人提出的一种高效的字符串匹配算法,被认为是一种亚线性算法(即平均的时间复杂度低于线性级别),其时间效率在一般情况下甚至比 KMP 还要快 3 ~ 5 ...
- C++练习-1 简单输入输出
首先完整代码如下: #include <iostream> #include <string> using namespace std; int main() { int on ...