|
1.1 SHELL编程密码远程执行命令脚本
- 自动服务器IP和用户名、密码表:list.txt;
- 自动安装expect远程交互工具;
- 自动编写expect远程执行命令文件;
- 支持任意命令远程执行;
- 支持列表循环操作多个台服务器。
- <font size="4">#!/bin/bash
- #by author www.jfedu.net 2024
- #######################
- if
- [ ! -e /usr/bin/expect ];then
- yum install expect -y
- fi
- #Judge passwd.txt exist
- if
- [ ! -e ./passwd.txt ];then
- echo -e "The passwd.txt is not exist......Please touch ./passwd.txt ,Content Example:\n192.168.1.11 passwd1\n192.168.1.12 passwd2"
- sleep 2 &&exit 0
- fi
- #Auto Tuoch login.exp File
- cat>login.exp <<EOF
- #!/usr/bin/expect -f
- set ip [lindex \$argv 0 ]
- set passwd [lindex \$argv 1 ]
- set command [lindex \$argv 2]
- set timeout -1
- spawn ssh root@\$ip
- expect {
- "yes/no" { send "yes\r";exp_continue }
- "password:" { send "\$passwd\r" }
- }
- expect "*#*" { send "\$command\r" }
- expect "#*" { send "exit\r" }
- expect eof
- EOF
- ##Auto exec shell scripts
- CMD="$*"
- if
- [ "$1" == "" ];then
- echo ========================================================
- echo "Please insert your command ,Example {/bin/sh $0 'mkdir -p /tmp'} ,waiting exit ........... "
- sleep 2
- exit 1
- fi
- for i in `awk '{print $1}' passwd.txt`
- do
- j=`awk -v I="$i" '{if(I==$1)print $2}' passwd.txt`
- expect ./login.exp $i $j "$CMD"
- done</font>
复制代码
|
|