bash脚本不捕获标准输出,只是标准错误
问题描述:
我有以下脚本(我们称之为move_site.sh)是拷贝一个网站目录结构到另一个服务器bash脚本不捕获标准输出,只是标准错误
#!/bin/bash
scp -r /usr/local/apache2/htdocs/$1 [email protected]$2:/local/htdocs 1>$1$2.out 2>&1
所以从命令行调用它,我通过它的网站站点目录名称和目标服务器,例如:
nohup ./move_site.sh site1 server1 &
然而,在产生的名为site1server1.out,只有标准错误的消息,如果有的话。
有人能告诉我如何获得复制的文件和目录名称,包括在输出文件中,以便我有某种记录?
谢谢。
答
快速尝试: 也许是因为当一切正常时,scp
不会输出任何内容到stdout(?)。
试试看:在脚本之外运行你的scp命令,很可能你没有任何东西出来。 (没有重定向到$ 1 $ 2.out,它仍然没有:))
我不认为这是可能的与SCP但rsync,你可以跟踪什么已经转移到标准输出。所以改变scp -r
rsync -r -v -e
应该会诀窍。 (至少如果你可以去rsync而不是scp)。