Hugo+rsync+lftp发布网站
一般情况下,每次hugo生成静态网站时,网站的很多文件的时间戳会发生变化,哪怕生成前后的文件内容没有改变。
这种情况下,通过ftp工具,依靠文件时间戳来做差异更新,效率就会很低。
可以用 rsync 来解决这个问题。
建立一个 ftp-public 目录,作为hugo输出的 public 目录的本地镜像。这样,将发布网站分为两个步骤:
- 用
rsync同步变更到ftp-public目录。这一步,比较文件内容差异,只做差异变更,内容不变的文件的时间戳保持不变。 - 用
lftp同步ftp-public目录到网站的FTP服务器。
具体命令如下:
rsync -rv --delete --checksum --progress public/ ftp-public/
rsync 的选项说明:
-r递归同步子目录-v输出详细操作信息--delete从ftp-public/中删除 =public/=下不存在的文件或目录--checksum使用校验和来判断文件是否一致、是否需要更新--progress显示同步进度
lftp -e "mirror -R --delete --only-newer ftp-public/ /" ftp://ftpuser@ftpserver