首页 / 操作系统 / Linux / Linux 批量拷贝数据脚本
最近想弄个Linux下批量传输拷贝部署远程服务器脚本 思路:1.与远程客户端建立等效性 2.拷贝数据、或者执行远程服务器命令 自动化等效性脚本如下:前提是安装expect这个包 ================================================================ 服务端生成自动生成rsa key #!/usr/bin/expect rm -rf root/.ssh/known_hosts expect -c " spawn ssh-keygen -t rsa expect { "*id_rsa*" {send
;exp_continue} "*passphrase*" {send
;exp_continue} "*again*" {send
;exp_continue} }=============================================================== 拷贝生成的key到远程服务器上 for p in $(cat /script/ip.txt) do ip=$(echo "$p"|cut -f1 -d":") password=$(echo "$p"|cut -f2 -d":") expect -c " spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$ip expect { "*yes/no*" {send "yes
"; exp_continue} "*password*" {send "$password
"; exp_continue} "*Password*" {send "$password
";} } " done 其中ip.txt内容格式为如下: 192.168.1.56:123456 =============================================================== 执行服务端到客户端推送命令 for h in $(cat /script/ip.txt|cut -f1 -d":") do ssh root@$h "ls $dire" dire="/tmp/test" if [ $? -eq 0 ]; then ssh root@$h rm -rf "$dire" set timeout 300 ssh root@$h mkdir -p /tmp/test fi ssh root@$h touch lgl.txt scp /root/CentOS-5.3-x86_64-bin-DVD.iso root@192.168.1.56:/home set timeout 300 done =============================================================== 最后脚本如下: [root@lgl script]# cat ssh.sh #!/usr/bin/expect rm -rf root/.ssh/known_hosts expect -c " spawn ssh-keygen -t rsa expect { "*id_rsa*" {send
;exp_continue} "*passphrase*" {send
;exp_continue} "*again*" {send
;exp_continue} } " for p in $(cat /script/ip.txt) do ip=$(echo "$p"|cut -f1 -d":") password=$(echo "$p"|cut -f2 -d":") expect -c " spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$ip expect { "*yes/no*" {send "yes
"; exp_continue} "*password*" {send "$password
"; exp_continue} "*Password*" {send "$password
";} } " done for h in $(cat /script/ip.txt|cut -f1 -d":") do ssh root@$h "ls $dire" dire="/tmp/test" if [ $? -eq 0 ]; then ssh root@$h rm -rf "$dire" set timeout 300 ssh root@$h mkdir -p /tmp/test fi ssh root@$h touch lgl.txt scp /root/CentOS-5.3-x86_64-bin-DVD.iso root@192.168.1.56:/home set timeout 300 done本文永久更新链接地址
收藏该网址