仅上传更改的文件,而不是gitlab中的所有文件

时间:2019-09-01 10:49:44

标签: gitlab gitlab-ci pipeline continuous-deployment lftp

我的目标是仅上传更改的文件,而不是从gitlab通过ftp上传所有文件

 image: ubuntu:18.04

 deploy:
     only:
       - master
     script:
       - apt-get update -qy
       - apt-get install -y lftp
       - lftp -e "set ssl:verify-certificate no; open -u $FTP_USERNAME1,$FTP_PASSWORD1 $FTP_SERVER1; mirror -Rnev / /  --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

每当我提交gitlab deploy脚本时,它将所有文件与服务器匹配,然后上传新文件。 但是要与服务器匹配需要很长时间。

因此,我想要一个脚本,该脚本仅通过gitlab的ftp通过FTP上传服务器中的更改

2 个答案:

答案 0 :(得分:0)

如果您的服务器支持SSH,则可以使用rsync并仅同步经过修改的文件,如下所示:

rsync -a source destination 

Here,您可以找到有关它的更多信息。

答案 1 :(得分:0)

您可以尝试lftp的一些设置来加快同步速度:

关闭ftp:sync-mode

在上设置ftp:use-stat-for-list

还启用调试以查看大部分时间。