手里有10几台服务器,领导不允许使用监控及配置工具进行主机管理,决定利用ftp进行一些服务器的批量配置工作。

首先为了能够使用root在各个服务器之中实现无密码穿梭,第一件事就是分发ssh密钥:

首先在脚本当前建立一个主机清单文件,命名为host_list.cfg,第一列是主机名称,第二列为主机地址如:
   
   server1  192.168.1.1
   server2  192.168.1.2

生成本机的公钥,复制到脚本所在目录下更名为authorized_keys
建立脚本ftpaks.sh内容如下:

  • #!/bin/ksh 
  • HOST=`cat host_list.cfg|grep -v '#'|awk '{print $1}'
  • DATETIME=`date +"%Y-%m-%d %H:%M"
  • for HOSTID in $HOST 
  •     do 
  •       ip =`cat host_list.cfg|grep -v '#'|grep $HOSTID |awk '{print $2}'
  •       echo "##HOSTID增加主机信息##" 
  • ftp -i -in -v<<! 
  • open $ip  
  • user root 口令
  • cd /root 
  • binary 
  • mkdir .ssh 
  • cd .ssh 
  • mput authorized_keys 
  • bye 
  • done 
运行就可以将这台主机的ssh公钥分发到需要控制的主机了,尽情享受无密码ssh的快乐吧(为8位以上字母数字组合的密码命名规则默哀)。 以后管理的主机需要添加的时候只要将host_list.cfg文件中增加对应的记录就可以了,不需要分发的主机只需要在主机名前面加上#号就可以了