autossh

来源:互联网 发布:linux recovery mode 编辑:程序博客网 时间:2024/05/20 16:35

这两个脚本的背景是当时有个需求,需要往一台服务器的100多个用户上传文件,然后就想取一次巧,通过ssh信任,然后通过sftp(scp)来传。

可供参考。

(1)

#!/bin/bash


FILE=/root/ansible/gaven/autossh
LINE=`cat $FILE|wc -l`

for((i=1;i<=$LINE;i++))
{
        line=`cat $FILE |awk "NR==$i"`
        USER=`echo $line |awk -F " " '{print $1}'`
        PASS=`echo $line |awk -F " " '{print $2}'`
expect <<EOF
spawn ssh-copy-id $USER@10.10.10.10
       expect {
      "assword:" { send "$PASS\n"; exp_continue; }
      "yes/no*" { send "yes\n"; exp_continue; }
       eof { exit; }
       }
EOF
}


(2)

#!/bin/sh                                                                                                                                                               
                                                                                                                                                                        
for p in $(cat $1)                                                                                                                                                      
do
ip=$(echo "$p"|cut -f1 -d":")                                                                                                                                            
passwd=$2
expect <<EOF
spawn ssh-copy-id $ip
        expect {
        "assword:" { send "$passwd\n"; exp_continue; }
        "yes/no*" { send "yes\n"; exp_continue; }
        eof { exit; }
        }
EOF
done

exit 0

(3)(更喜欢用此脚本实现自动登录)

#!/usr/bin/expect -f


spawn ssh {user}@{host}

expect "assword"

send "{password}\r"

interact




原创粉丝点击