在本机A中执行expect脚本:ssh到B,在B机器上从A机器scp文件到B

 在本机A中执行expect脚本ru.sh,可以做到 "从A ssh到B,在B机器上从A机器scp文件到B"

OAM/tools/Dispatch_EURU/ru.sh内容如下:

#!/usr/bin/expect

set timeout 15

set local_file [lindex $argv 0]
set ip [lindex $argv 1]
set remote_path [lindex $argv 2]

set password "12345678"
set scp_result "1"




spawn ssh -o StrictHostKeyChecking=no $ip
    expect {
        "password:" {
            send "$password\r"
            expect {
                "root@" {
                    #send "scp sftpuser2@192.168.30.1:${local_file} ${remote_path}\r"
                    send "scp -o StrictHostKeyChecking=no sftpuser2@192.168.30.1:${local_file} ${remote_path}\r"
                }
            }
            expect {
                       "yes/no" { send "yes\r";exp_continue } 
                       "y/n" { send "y\r";exp_continue } 
                "password:" { send "Sftpuser2.password\r"; exp_continue}
                "100%" {set scp_result "0"}
            }
            expect {
                "root@" {
                    send "exit\r"
                }
            }
        }
    }
    expect eof


exit "$scp_result"
./ru.sh /usr/local/xxxx/repository_run/5.1.3.255.xxxx.260131_beta/OAM/tools/Dispatch_EURU/ru_1.sh 192.168.30.207 /tmp/ ; echo $?

image

 

posted @ 2026-03-02 14:59  LiuYanYGZ  阅读(9)  评论(0)    收藏  举报