我有以下脚本(我们称之为move_site.sh)将网站目录结构复制到另一台服务器
#!/bin/bash
scp -r /usr/local/apache2/htdocs/$1 http@$2:/local/htdocs 1>$1$2.out 2>&1
所以从命令行调用它,我将webiste站点目录名称和目标服务器传递给它:
nohup ./move_site.sh site1 server1 &
但是,在名为site1server1.out的结果中,只有stderr消息(如果有)。
有人能告诉我如何获取复制的文件和目录名,包含在输出文件中,以便我有某种记录吗?
感谢。
答案 0 :(得分:2)
快速尝试:
也许是因为当一切顺利时,scp
不会向stdout(?)打印任何内容。
试一试:在脚本之外运行你的scp命令,很可能你没有std出来的东西。 (没有重定向到$ 1 $ 2.out,它仍然没有:))
我认为scp不可能,但使用rsync可以跟踪已传输到stdout的内容。因此,将scp -r
更改为rsync -r -v -e
应该可以解决问题。 (至少如果你可以使用rsync而不是scp)。