SSH批量管理 expect自动交互
# SSH批量管理# expect自动交互##############################!/bin/sh# 初次使用,以root批量执行CMD=(dateuname -rhostname)sh ${[*]}. /etc/init.d/functions[[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装########## ############################## #SSH批量执行shell命令#!/bin/sh. /etc/init.d/functions[[ $# == 0 ]] && { echo 'ege: /bin/sh '$0' "命令1;命令2"';exit; }for n in 81 82 83do echo ssh -p22 192.168.20.$n $* [[ $? == 0 ]] && action "========IP:192.168.20.$n========" /bin/true || action "========IP:192.168.20.$n========" /bin/falsedone##########################################批量推送文件#!/bin/sh. /etc/init.d/functions[[ $# == 0 ]] && { echo 'ege: /bin/sh '$0' "本地文件" "(远程)目录"';exit; }for n in 81 82 83do scp -P22 $1 sshync@192.168.20.$n ~/ >/dev/null 2>&1 && ssh -p22 -t sshync@192.168.20.$n sudo rsync ~/$1 $2 >/dev/null 2>&1 [[ $? == 0 ]] && action "========IP:192.168.20.$n" /bin/true || action "========IP:192.168.20.$n" /bin/falsedone########################################!/bin/sh# 批量分发SSHKEY. /etc/init.d/functions[[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装PUB=/`whoami`/.ssh/id_dsa.pub[[ -f $PUB ]] || { ssh-keygen -t dsa -P '' -f /`whoami`/.ssh/id_dsa>/dev/null 2>&1; } #若没公钥则生成USER=sshyncPASS=sshync# IP : SIP + SIP_endSIP=192.168.20.SIP_end=(41 47 43)#expect自动交互function EXP() {/usr/bin/expect << EOFset timeout 1spawn ssh-copy-id -i $PUB "-p22 $USER@$SIP$n"expect { "yes/no" { send "yes\r";exp_continue } "password:" { send "$PASS\n";exp_continue } eof { exit } }EOF}#[[ $1 == y ]] || { echo -e 'ege: /bin/sh '$0' y \n 当前'`whoami`'用户向远程用户'$USER'分发SSHKEY \n 远程主机列表'$SIP''${SIP_end[*]}' \n';exit; }for n in ${SIP_end[*]}do EXP |grep '.ssh/authorized_keys'>/dev/null 2>&1 [[ $? == 0 ]] && action "========IP:192.168.20.$n" /bin/true || action "========IP:192.168.20.$n" /bin/falsedone##############################!/bin/sh#Made by elven,2017# MariaDB初始化,设置密码DBPass=db2017[[ -f /usr/bin/expect ]] || { echo "install expect";yum install expect -y; } #若没expect则安装/usr/bin/expect << EOFset timeout 30spawn mysql_secure_installationexpect { "enter for none" { send "\r"; exp_continue} "Y/n" { send "Y\r" ; exp_continue} "password:" { send "$DBPass\r"; exp_continue} "new password:" { send "$DBPass\r"; exp_continue} "Y/n" { send "Y\r" ; exp_continue} eof { exit }}EOF#测试mysql -u root -p$DBPass -e "show databases;"#############################
赞 (0)