【发布时间】:2014-11-13 21:26:01
【问题描述】:
我正在尝试通过带有 scp 的 ssh 将我的项目从我的机器部署到我的测试服务器。我的问题是,在我部署当前目录中的所有内容之前,我必须跳过一些文件和目录。我的解决方案是,首先检查文件或目录是否符合某些条件,将其名称添加到变量中,当我的循环完成时,它将通过 scp 复制所有内容。然后,我还不明白的另一个问题是 scp 不想复制文件,如果它在变量中用双引号“my-file”括起来。但我可能有名称中带有空格的文件。从命令行可以,但不是来自变量。
我的代码是
#...
FILES_TO_SEND=""
for file in *
do
if test -d $file
then
if ! test $file = "nbproject"
then
FILES_TO_SEND="$FILES_TO_SEND \"$file\"" #or with this '$file'
fi
fi
if test -f $file
then
if ! test $file = "changelog.html"
then
FILES_TO_SEND="$FILES_TO_SEND \"$file\"" #or with this '$file'
fi
fi
done
#--- Sending files ---#
scp -r ${FILES_TO_SEND} "${DEPLOY_SERVER}:${DEPLOY_TEST_ENV}"
#...
作为回应
"file1.html": No such file or directory
"file2.c": No such file or directory
"file3.sh": No such file or directory
...
PS:我想提高效率,只需要在 scp 调用上建立 1 个连接。服务器很忙,我不想打开和关闭多次调用它的 scp 连接。
PS2:我无法安装 rsync 或类似的东西。我也不想每次部署时都通过 sftp 手动完成。
【问题讨论】: