如何使用 gitlab-ci rsync 文件夹

如何使用 gitlab-ci rsync 文件夹

我尝试同步名为的文件夹中的本地文件距离我的 ftp 帐户的文件夹,使用.gitlab-ci.yml.虽然作业成功运行,但我的 ftp 根文件夹仍为空。

我已经创建了一个 ftp 帐户,该帐户只能访问httpdocs。我希望将我的文件复制到 httpdocs 中。

我正在使用此代码来复制文件:

rsync -avh --delete --rsh="sshpass -p $PROD_FTP_PASS ssh -o StrictHostKeyChecking=no "  ./dist/ [email protected]/

该命令记录以下内容:

sending incremental file list
created directory [email protected]
./
android-chrome-192x192.png

          4.69K 100%    0.00kB/s    0:00:00  
          4.69K 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=18/20)
android-chrome-256x256.png

          6.41K 100%    6.12MB/s    0:00:00  
          6.41K 100%    6.12MB/s    0:00:00 (xfr#2, to-chk=17/20)
app.css

          2.06K 100%    1.97MB/s    0:00:00  
          2.06K 100%    1.97MB/s    0:00:00 (xfr#3, to-chk=16/20)

sent 62.95K bytes  received 423 bytes  126.74K bytes/sec
total size is 61.64K  speedup is 0.97
Job succeeded

我读过,使用dist/ordist会有所作为。我不想复制该文件夹,而是复制它的文件。虽然我想将这些文件放在我的 ftp 帐户的根目录(即httpdocs/)中。

我做错了什么,文件现在被复制到哪里,因为我无法使用我的 ftp 帐户看到它们?

另一个错误消息

当我尝试将数据发送到随机路径时,收到以下错误:

$ rsync -avh --progress --delete --rsh="sshpass -p $PROD_FTP_PASS ssh -o StrictHostKeyChecking=no " ./dist [email protected]/httpdocs/yellowstorm
sending incremental file list
rsync: mkdir "/builds/fyd/fyd-presite/[email protected]/httpdocs/yellowstorm" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(674) [Receiver=3.1.1]
ERROR: Job failed: exit code 1

答案1

rsync 中远程源/目标的语法是[<user>@]<host>:[path]所以至少这必须是example.com:重要:的。

您的远程设备没有,:因此 rsync 会将文件复制到名为的本地目录[email protected](您可以通过在构建计划中运行 ls 来确认),而不是您应该使用[email protected]:/它将复制到远程设备的根目录(服务器根目录而不是ftp root(因为您使用的是 ssh)。或者[email protected]:将其复制到用户的主目录中。

相关内容