我需要创建一个自动化脚本,它将按照给定的顺序执行以下操作:
我正在使用"期待"将文件从源复制到目标。然后我试图建立到目的地的ssh连接并在目的地执行脚本。生成结果后,我将再次使用" expect"复制文件。但这次是从目的地到源头。
我想知道是否有更好的方法可以做同样的事情。
使用" expect"复制文件的代码因为我需要为scp传递密码:
#!/usr/bin/expect -f
set from [lindex $argv 0]
set to [lindex $argv 1]
set pass [lindex $argv 2]
puts "$from, $to and $pass ."
# connect via scp
spawn sudo scp -v -r $from $to
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send $pass\n
}
}
interact
答案 0 :(得分:0)
你的解决方案没问题。您可以考虑使用sshfs在src机器上挂载远程目录,并使用命令,就像这个文件在src机器上一样。
示例:
sudo sshfs -o allow_other,nonempty user@10.1.2.3:/project /project