如何评估 SCP 中的环境远程变量?

如何评估 SCP 中的环境远程变量?

有没有办法在使用 SCP 时评估远程主机上的环境变量?

例如,假设我$FOO= /mydir在主机 A 上有;我该如何做:

scp dogbert@hostA:$FOO/evil-secret-plans.txt .

当然,$FOO在我的本地机器上没有定义,所以上述命令无法正常工作。

答案1

尝试一下:

scp dogbert@hostA:$(ssh dagobert@hostA "echo $FOO")/evil-secret-plans.txt .

有点开销。

答案2

添加\

scp dogbert@hostA:"\$FOO/evil-secret-plans.txt" .

答案3

更简单的方法是通过 stdout/stdin 使用 tar 或 gzip 发送文件。

tar -czf - ./evilsecretfile.txt | ssh user@remoteHost "cd \${varOnRemoteSystem} ; tar -xzf - ."

或者

gzip -c localFileName.txt | ssh user@remoteHost "gzip -d > /remote/path/\${varOnRemoteSystem} ; chmod 666 /remote/path\${varOnRemoteSystem}"

相关内容