Bash脚本自动化:涉及将文件从源复制到dest,在目标中执行脚本并将结果从dest复制到surce

时间:2018-04-24 13:17:41

标签: bash shell unix

我需要创建一个自动化脚本,它将按照给定的顺序执行以下操作:

  1. 复制一些脚本& XML从源到目的地。
  2. 在目标
  3. 中运行脚本
  4. 将结果(即文件)从目标复制到源。
  5. 我正在使用"期待"将文件从源复制到目标。然后我试图建立到目的地的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
    

1 个答案:

答案 0 :(得分:0)

你的解决方案没问题。您可以考虑使用sshfs在src机器上挂载远程目录,并使用命令,就像这个文件在src机器上一样。

示例:

sudo sshfs -o allow_other,nonempty user@10.1.2.3:/project /project