shell脚本(实现效果 修改网卡ip地址、重启网卡和ssh免秘钥登录、cpu、内存、磁盘、ip地址)

1、shell脚本(实现效果 修改网卡ip地址、重启网卡和ssh免秘钥登录、cpu、内存、磁盘、ip地址)

[root@hhhh opt]# cat 888.sh 
#!/bin/bash
#================================================================
function fn_0 ()
{
cat << EOF
1) system
q) quit
EOF
read -p "please input one number for install :" install_number
case ${install_number} in
	1)
    		fn_system
;;
	2)
		fn_deploy
;;
	q)
		exit
;;
	*)
	        echo -e "\033[41;37m please input one right number. \033[0m"
		fn_0
	;;
esac
}

#================================================================

function fn_system ()
{

cat << EOF
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit
EOF
read -p "please input one number for install :" install_number
case ${install_number}  in
	1)
	fn_ip
;;
	2)
###重启网卡
	systemctl restart network
	fn_system
;;
### 免秘钥登录
	3)
	fn_SSH
	fn_system
;;
	4)
	fn_info
;;
	q)
	fn_0
;;
	*)
	echo -e "\033[41;37m please input one right number. \033[0m"
	fn_system
;;
esac
}

#===============================================================
###ssh 免秘钥同步


function auth_key () { 
/usr/bin/expect <<EOF
	   spawn ssh-copy-id -i  /root/.ssh/id_dsa.pub  $username@$hostname
	    expect {
            #first connect, no public key in ~/.ssh/known_hosts
            "Are you sure you want to continue connecting (yes/no)?" {
            send "yes\r"
            expect "password:"
                send "$password\r"
            }
            #already has public key in ~/.ssh/known_hosts
            "password:" {
                send "$password\r"
            }
            "Now try logging into the machine" {	
                #it has authorized, do nothing!
            }	
        }
expect eof
EOF
} 


function no () {
/usr/bin/ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
}

function yes () {
                username="root"
                password="123456"
                read -p "Please enter the password free login to SSH IP addres :" ip
                for hostname in $ip
                do
                        auth_key  $username $password $hostname
                done
}


function fn_SSH () {

if [ ! -e "/usr/bin/expect"  ]
then
        /usr/bin/yum -y install expect >/dev/null
fi

file=/root/.ssh/id_*.pub

if [ -f $file ]
then
        yes >/dev/null
        echo "ssh-keygen success !"
else
        no >/dev/null
        yes >/dev/null
        echo "ssh-keygen success !"
fi

}


#===============================================================
###修改ip

function fn_ip ()
{
NET1=`ls /etc/sysconfig/network-scripts/ | grep ifcfg | awk NR==1 | awk -F '-' '{print $2}'`
oldip=`ip a | grep   ${NET1} | awk '{print $2}' | awk NR==2 | awk -F '/'  '{print $1}'`
oldmask=`ip a | grep  ${NET1} | awk '{print $2}' | awk NR==2 | awk -F '/' '{print $2}'`
cp /etc/sysconfig/network-scripts/ifcfg-${NET1} /etc/sysconfig/network-scripts/ifcfg-${NET1}.bak
read -p "please input new_ip :" new_ip
read -p "please input new_mask(16/24) :" new_mask
read -p "please input new_gateway :" new_gateway
read -p "please input new_dns :" new_dns

if grep "IPADDR1=" /etc/sysconfig/network-scripts/ifcfg-${NET1} >> /dev/null ;then
sed -i "s/IPADDR=.*/IPADDR=$new_ip/" /etc/sysconfig/network-scripts/ifcfg-${NET1}
sed -i "s/PREFIX=.*/PREFIX=$new_mask/" /etc/sysconfig/network-scripts/ifcfg-${NET1}
sed -i "s/GATEWAY=.*/GATEWAY=$new_gateway/" /etc/sysconfig/network-scripts/ifcfg-${NET1}
sed -i "s/DNS1=.*/DNS1=$new_dns/" /etc/sysconfig/network-scripts/ifcfg-${NET1}
else
cat >/etc/sysconfig/network-scripts/ifcfg-${NET1}<<EOF

DEVICE=$NET1
BOOTPROTO=static
IPADDR=$new_ip
PREFIX=$new_mask
IPADDR1=$oldip
PREFIX1=$oldmask
GATEWAY=$new_gateway
DNS1=$new_dns
ONBOOT=yes
EOF
fi
cat /etc/sysconfig/network-scripts/ifcfg-${NET1}

read -p "Save? (yes/no) :" reset

case ${reset} in
	yes)
		fn_system
;;
	*)
       	        cp -raf /etc/sysconfig/network-scripts/ifcfg-${NET1}.bak /etc/sysconfig/network-scripts/ifcfg-${NET1}
                fn_system
;;
esac


}

#================================================================
###查看cpu、内存、磁盘、ip地址
function fn_info ()
{
NET1=`ls /etc/sysconfig/network-scripts/ | grep ifcfg | awk NR==1 | awk -F '-' '{print $2}'`
echo "=================================="
echo "================CPU==============="
echo "=================================="
lscpu | grep -E "NUMA|型号名称"
echo "=================================="
echo "==============Memory=============="
echo "=================================="
free -h
echo "=================================="
echo "===============Disk==============="
echo "=================================="
lsblk
echo "=================================="
echo "================IP================"
echo "=================================="
cat /etc/sysconfig/network-scripts/ifcfg-${NET1}
echo "=================================="
echo "=================================="
fn_system

}

fn_0

2、效果

2.1 执行 (1) 修改ip地址(2)重启网卡

[root@hhhh opt]# sh 888.sh 
1) system
q) quit
please input one number for install :1
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit
please input one number for install :1
please input new_ip :192.168.0.33
please input new_mask(16/24) :24
please input new_gateway :192.168.0.1
please input new_dns :114.114.114.114

DEVICE=ens33
BOOTPROTO=static
IPADDR1=192.168.0.20
PREFIX1=24
GATEWAY=192.168.0.1
DNS1=114.114.114.114
ONBOOT=yes
Save? (yes/no) :yes
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit
please input one number for install :2

2.2 执行(3)免秘钥同步登录

[root@hhhh opt]# sh 888.sh 
1) system
q) quit
please input one number for install :1
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit
please input one number for install :3
Please enter the password free login to SSH IP addres :192.168.0.250 ##输入要做免秘钥登录ip地址
ssh-keygen success !
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit


测试直接可以登录 192.168.0.250 不需要输入密码
[root@hhhh opt]# ssh 192.168.0.250
Last login: Sat May 30 23:43:41 2020 from 192.168.0.20
[root@a ~]# 


2.3 执行(4) 输出cpu 、内存、硬盘、ip信息

[root@hhhh opt]# sh 888.sh 
1) system
q) quit
please input one number for install :1
1) IP_add
2) restart_network
3) SHH
4) check_sys_info
q) Quit
please input one number for install :4
==================================
================CPU===============
==================================
NUMA node(s):          1
NUMA node0 CPU(s):     0
==================================
==============Memory==============
==================================
              total        used        free      shared  buff/cache   available
Mem:           1.4G        104M        1.1G        9.6M        229M        1.1G
Swap:          2.0G          0B        2.0G
==================================
===============Disk===============
==================================
NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda               8:0    0  40G  0 disk 
├─sda1            8:1    0   1G  0 part /boot
└─sda2            8:2    0  39G  0 part 
  ├─centos-root 253:0    0  37G  0 lvm  /
  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]
sdb               8:16   0  50G  0 disk 
sr0              11:0    1  10G  0 rom  
==================================
================IP================
==================================

DEVICE=ens33
BOOTPROTO=static
IPADDR1=192.168.0.20
PREFIX1=24
GATEWAY=192.168.0.1
DNS1=114.114.114.114
ONBOOT=yes
==================================
==================================
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值