バックアップ目的でLFTPを使用してWebサイト(Webサイト管理者)をミラーリングしようとしています。
私はLFTPコマンドを使用します(個人情報を保護するために実際のパス、ユーザー名、およびパスワードが変更されました)。
mirror -e -p --verbose=1 /public_html /mnt/lobster3raid/<path>/public_html
動作中です。 Webサーバーで変更されていない場合でも、LFTPはミラーからすべてのファイルを削除してから再送信します(毎回すべてのファイルからこのコンテンツを取得します)。
Removing old file `<path>/IMG_2003.jpg'
Transferring file `<path>/IMG_2003.jpg'
Removing old file `<path>/IMG_2004.jpg'
Transferring file `<path>/IMG_2004.jpg'
Removing old file `<path>/IMG_2005.jpg'
Transferring file `<path>/IMG_2005.jpg'
変更された/最新のファイルのみを転送するLFTPミラーを実行するには?
追加の背景:
ターゲットイメージは、Windows共有¥¥LOBSTER3¥raidにあります。私はWindowsでこれを行っています。私はしばらくCygwinのLFTPを使用してきましたが、最近Windowsで権限の問題に直面しました(明らかにCygwinのLFTPはWindowsが好きではない権限を設定します)。
私はwsl(Ubuntu)でLFTPを使用しています。 Windowsでこのバッチファイルを実行します。
wsl -u root -- mkdir /mnt/lobster3raid
wsl -u root -- mount -t drvfs \\\\lobster3\\raid /mnt/lobster3raid
wsl -- lftp -u <username>,<password> <url> -e 'set ssl:check-hostname no; mirror -e -p --verbose=1 /public_html /mnt/lobster3raid/mirrors/1day/public_html'
答え1
オプションなしでミラーコマンドを使用すると、ターゲットにすでに存在するかどうかに関係なく、ソースからターゲットにすべてのファイルが送信されます。これは、ミラーリングのデフォルト動作がターゲットの既存のファイルを上書きするためです。正確にソースファイルツリーをコピーします。
探しているオプションは、次の--only-newer
最新のファイルのみを再アップロードします。FTPドキュメント。
したがって、あなたの場合、バッチファイルは次のようになります。
wsl -u root -- mkdir /mnt/lobster3raid
wsl -u root -- mount -t drvfs \\\\lobster3\\raid /mnt/lobster3raid
wsl -- lftp -u <username>,<password> <url> -e 'set ssl:check-hostname no; mirror -e -p --verbose=1 --only-newer /public_html /mnt/lobster3raid/mirrors/1day/public_html'