2017-08-26 57 views
0

我想将所有更改的文件上传到我的FTP服务器。但是,当我使用-bb标志时,我不能使用-S .tmp-v - 我无法在ncftpbatch之间使用这些选项。这里是我的代码:NcFTP -S与-bb

#!/bin/bash -eo pipefail 
IN=$(git diff-tree --no-commit-id --name-only -r HEAD) 
OUT=$(echo $IN | tr ";" "\n") 
for file in "${OUT[@]}"; do 
    ncftpput -bb -S .tmp -v -u "[email protected]" -p "*****" ftp.kolechia.heliohost.org "/" $file 
done 
ncftpbatch 

正如你所看到的,我需要的-S .tmp避免上传过程中打破了现场。 -v提供输出以防止我的CI服务超时。

如何仅上载更改的文件 - 不暂时中断网站?我正在考虑为每个文件分别登录,但这是不好的做法。

+0

为什么不能在后台启动一个函数,它只是打印出的伪值“如上传,请等待“,然后睡几秒钟再重复一次。在循环之外,您可以杀死该后台作业。 –

+0

@TarunLalwani我的程序输出的所有内容都由CI服务器缓存 - 如果作业失败,那么它都会通过电子邮件发送给我。我不希望收件箱中包含“正在上传,请稍候...正在上传,请稍候...”。不过,这是个好主意。 – StellarDoor5319

+0

你可以试试'printf'\ 0“'或'printf”a \ b“'看看是否有帮助。这不会添加不必要的信息 –

回答

1

为什么不在后台启动一个只打印虚拟值的函数,如uploading, please wait,然后睡几秒钟再重新执行一次。外循环,你可以杀死后台作业

如果你不希望任何输出

printf "\0" 

printf "a\b"