使用 scp 复制 find 命令的输出
Copy the output of find command with scp
我正在尝试从本地计算机每天检查服务器中有哪些新文件,然后用一个 scp 复制它们。
我用 ssh bastibast@192.168.0.200 'bash -s' < fileretriever.sh
调用脚本
#!/usr/bin/env bash -x
FILES=$(find /home/bastibast/test -type f -mtime 0 )
echo "'$FILES'"
exit
scp -T -i ~/.ssh/id_rsa bastibast@192.168.0.200:"'$FILES'" ~/test/multiplecopy
但是没有任何内容复制到我的本地计算机。
回显“'$FILES'”的输出: '/home/bastibast/test/test2 /home/bastibast/test/test1 /home/bastibast/test/script'
而当我 运行 scp -T bastibast@192.168.0.200:'/home/bastibast/test/test2 /home/bastibast/test/test1 /home/bastibast/test/script' ~/test/multiplecopy
它完美运行,这 3 个文件已复制到我的本地计算机上。为什么它在脚本中不起作用?
只需使用 ssh
将命令 find 的输出提取到一个变量中,就可以更轻松地完成我想做的事情
FILES=$(ssh bastibast@192.168.0.200 -- find /home/bastibast/test -type f -mtime 0 2>&1)
然后从那里开始 scp。
我正在尝试从本地计算机每天检查服务器中有哪些新文件,然后用一个 scp 复制它们。
我用 ssh bastibast@192.168.0.200 'bash -s' < fileretriever.sh
#!/usr/bin/env bash -x
FILES=$(find /home/bastibast/test -type f -mtime 0 )
echo "'$FILES'"
exit
scp -T -i ~/.ssh/id_rsa bastibast@192.168.0.200:"'$FILES'" ~/test/multiplecopy
但是没有任何内容复制到我的本地计算机。
回显“'$FILES'”的输出: '/home/bastibast/test/test2 /home/bastibast/test/test1 /home/bastibast/test/script'
而当我 运行 scp -T bastibast@192.168.0.200:'/home/bastibast/test/test2 /home/bastibast/test/test1 /home/bastibast/test/script' ~/test/multiplecopy
它完美运行,这 3 个文件已复制到我的本地计算机上。为什么它在脚本中不起作用?
只需使用 ssh
将命令 find 的输出提取到一个变量中,就可以更轻松地完成我想做的事情FILES=$(ssh bastibast@192.168.0.200 -- find /home/bastibast/test -type f -mtime 0 2>&1)
然后从那里开始 scp。