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的更多相关文章

  1. 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)

    介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...

  2. Ceph 客户端的 RPM 包升级问题

    问题 最近想把一个现有的 Ceph 客户端升级为最新的 M 版: [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph puppet-ceph-2. ...

  3. fpm打包神奇rpm包升级python2.7.16

    fpm打包神器参考文档:https://www.cnblogs.com/flintlovesam/p/6594635.html FPM的安装:安装ruby环境和gem命令: yum -y instal ...

  4. rpm 包的安装、卸载、升级、查询、验证

    关键字: rpm 强制卸载jdk rpm -e j2sdk1.4.2_04 强制覆盖安装jdk rpm -Uvh j2sdk-1_4_1_02-fcs-linux-i586.rpm --force - ...

  5. [Linux] 021 RPM 包的安装、升级与卸载

    1. 包全名与包名包全名 包全名:操作的包是没有安装的软件包 使用包全名.而且要注意路径包名 包名:操作已经安装的软件包时,使用 是搜索 /var/lib/rpm/ 中的数 2. 安装 $ rpm - ...

  6. 【CentOS】安装RPM包或者源码包

    一.rpm  (是Redheat Package Manager的简称) 如果光驱中还有系统安装盘的话, 1.先挂载光驱, mount /dev/cdrom /mnt/ 2.cd /mnt/ 3.cd ...

  7. Linux下RPM包的安装

    Linux下RPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(ve ...

  8. RPM包安装——手动安装

    RPM包安装 手动安装 挂载光盘 首先查看光盘是否挂载(使用mount命令) RPM包存放位置 在你光盘挂载点的Packages目录下 使用 ll | grep 关键字 可以快速找到你想要的RPM包 ...

  9. (转) centos7 RPM包之rpm命令

    原文:https://blog.csdn.net/capecape/article/details/78529159 RPM包与源码包的区别1.软件包分类 源码包:C源代码包 rpm包:编译之后的二进 ...

  10. 安装RPM包或者源码包

    RPM工具 RPM他是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序关于RPM各个选项的含义如下-i:表示安装-v:表示可视化-h:表示安装进度在安装RPM包时,常用的附带 ...

随机推荐

  1. 【LeetCode链表#9】图解:两两交换链表节点

    两两交换链表中的节点 力扣题目链接(opens new window) 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 思路 ...

  2. MySQL-知识点补充

    1.SQL注入问题 简单实现利用数据库实现注册登录功能: import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, use ...

  3. 学习ASP.NET Core Blazor编程系列二十五——登录(4)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  4. 【爬虫+数据清洗+可视化分析】舆情分析哔哩哔哩"狂飙"的评论

    目录 一.背景介绍 二.爬虫代码 2.1 展示爬取结果 2.2 爬虫代码讲解 三.可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间 ...

  5. C# 委托原理刨析,外加和事件对比

    什么是委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用. 在实例化委托时,你可以将其实例与任何具有兼容参数和返回类型的方法进行绑定. 你可以通过委托实例调用方法. 简单的理解,委 ...

  6. 学习Java Day26

    今天看书学习JAR文件,但是看了半天并没有看懂,于是借助了B站学习了JAR文件的创建及其中的一些jar程序选项该怎么使用

  7. jsp传入servlet数据

    面对老师的19级期末,要用到jsp传入servlet的数据传输,借鉴了其他人的代码,以下是我的程序 jsp界面: <%request.getSession().setAttribute(&quo ...

  8. 磁盘有限,Docker 垃圾很多怎么办

    你的电脑上可能 pull 或者 build 了很多 Docker 镜像,但是你不知道怎么清理,本文将介绍如何清理 Docker 垃圾的常见方法. docker prune 你可以通过原生的多种 pru ...

  9. JZOJ 3479. 工作安排

    \(\text{solution}\) 比较显然的 \(dp\) 顺序既然无所谓,那为了方便处理贡献,就先排个序 然后设 \(f_i\) 表示分到前 \(i\) 个的最小工资 则 \(f_i=C+f_ ...

  10. 使用一个文件集中管理你的 Nuget 依赖版本号

    在 .net 7 以前,项目对于 nuget 依赖项的版本依赖散落与解决方案的各个角落.这导致升级维护和查看的时候都比较麻烦.在 .net 7 中,你可以使用一个文件来集中管理你的 Nuget 依赖版 ...