linux的shell脚本建立linux之间的简单的自动化管理

shell脚本之自动化管理

做运维的工作,大家都明白有一些的服务器部署不可能打开每台服务器部署一边,一些工具可以做到对多台电脑的同时部署。我在看到shell的时候就想到shell脚本是否可以进行一些简单的部署,比如,下载,查看服务器状态等。有了一点想法和实现步骤与大家分享一下。

  1. 我以两台CentoS 7 同时以桥接模式链接网络
    在这里插入图片描述

  2. 对linux进行名字的更改以便于查看变化

    1. hostnamectl set-hostname computer1 (两台同样操作名字更换即可)

    2. vi /etc/hosts
      在这里插入图片描述

    3. 重启 reboot

  3. 建立linux之间的信任关系

    1. 先在主机computer1上使用命令创建密钥
      ssh-keygen -t rsassh-keygen -t rsa(连续回车)
    2. 把公钥拷贝到computer2
      scp -r /root/.ssh/id_rsa.pub 192.168.0.179:/root/.ssh/authorized_keys
    3. ssh [email protected](登陆到另台服务器)
    4. 重复1,2操作注意更换ip
    5. exit退出登陆
  4. 写shell脚本(今天先这样明天修改)

#!/bin/bash
#命令保存路径
execute_dir=/root/execute/
#判断是否由这个路径,没有就创建
[ -d $execute_dir ] || mkdir -p $execute_dir
#判断被部署的服务器是否由这个路径,如果没有就创建
ssh [email protected] "
execute_dir=/root/execute/
[ -d $execute_dir ] || mkdir -p $execute_dir"
#保存命令的路径
execute_dir=/root/execute/execute.txt



while [ True ]
do
	read -p "请输入你的选择1.系统信息2.任务部署3.其它" select
	case "$select" in
	1)
		read -p "请输入你要执行的操作" order
        	echo "$order">$execute_dir
        	#把需要执行的命令分配到各个子服务器
        	scp -r $execute_dir 192.168.0.179:$execute_dir
        	ssh [email protected] "
        	execute_dir=/root/execute/execute.txt
        	cat $execute_dir
        	"	
	;;
	2)
		
		order="ls"
		while [ $order != "-1" ]
		do
			read -p "请输入你要执行的操作-1退出" order
        		echo "$order">$execute_dir
        		#把需要执行的命令分配到各个子服务器
        		scp -r $execute_dir 192.168.0.179:$execute_dir
        		ssh [email protected] "
        		execute_dir=/root/execute/execute.txt
        		. $execute_dir>>/dev/null
			if [ $? -eq 0 ]
			then
				echo "任务完成。。。"
			else
				echo "部署失败。。。"
			fi
		
        		"
		done
	;;
	3)
		echo "正在完善,敬请期待。。。"
	;;
	esac
done




猜你喜欢

转载自blog.csdn.net/qq_36761759/article/details/83242842