我的目标是只上传更改的文件,而不是通过 ftp 从 gitlab 上传所有文件
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 部署脚本时,它都会将所有文件与服务器匹配,然后上传新文件。 但是与服务器匹配需要很长时间。
所以,我想要一个脚本,该脚本仅通过 gitlab 的 FTP 上传服务器中的更改
如果您的服务器支持 SSH,则可以使用 rsync 并仅同步已修改的文件,如下所示:
rsync -a source destination
在这里,您可以找到有关它的更多信息。
您可以尝试一些 lftp 设置来加快同步速度:
将 ftp:同步模式设置为关闭
将 ftp:use-stat-for-list 设置为
还要启用调试以查看大部分时间的去向。