![如何使用 gitlab-ci rsync 文件夹](https://linux22.com/image/117222/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20gitlab-ci%20rsync%20%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我尝试同步名为的文件夹中的本地文件距离与根我的 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]:
将其复制到用户的主目录中。