lftp で差分バックアップ

Hitoshi Arakawa | 2025/03/17 Mon 04:28

Hugo の更新ファイルを lftp でアップロードする方法を書いた。

[Mac] Hugo の更新を lftp で行う|荒川仁志
https://note.com/hitoshiarakawa/n/n42711dddf6fa

[Mac] Hugo の更新を lftp で行う2|荒川仁志
https://note.com/hitoshiarakawa/n/n3d0f5d889cf3

lftp アップロード完了通知|荒川仁志
https://note.com/hitoshiarakawa/n/ne51797586564

lftp で Fatal error: Certificate verification|荒川仁志
https://note.com/hitoshiarakawa/n/na6940a894a7e

しかし記事数が何千もあるブログの場合、Hugo のファイルは数万にもおよぶ。毎日更新しているブログだと lftp のアップロードに何十分もかかる。

ふと lftp で差分だけをアップロードできないかとひらめいた。調べてみると lftp には --newer-than というオプションが用意されているようだ。

lftp:差分バックアップできるかな?(mirror編) | とびうさな日々
http://www.tobiusa.jp/it/dev/2021/957/

すなわち毎日更新するブログの場合、--newer-than now-2days というオプションを付ければ(余裕を持たせて 1day ではなく 2days にしている)、そのぶんだけをアップロードできる。アップロード時間を大幅に減らせるはずだ。

しかし実際に実装しようとして気付いた。Hugo はアップロードファイルを public ディレクトリーに書き出す際、その前に一旦ディレクトリー内のファイルをすべて削除することが推奨されている。そうしないと不要なファイルが含まれていたりして、アップロードしたサイトに不具合が生じる可能性がある。ということは・・・毎回全ファイルを生成し直すのだから2日以内に作成されたファイルのみをアップロードするように設定しても、結局全ファイルアップロードされてしまう・・・。

まあ lftp にそういうオプションがあると勉強できただけでも良しとしよう。

Amazon.co.jp: Webを支える技術 ―― HTTP,URI,HTML,そしてREST WEB+DB PRESS plus eBook : 山本 陽平: 本
https://amzn.to/41R6OoP