Linuxシステムに存在するフォルダーの単方向インクリメンタル同期を行う最も簡単な方法は何ですか。
コマンドラインを使用する場合は+1。 rsyncを使用しない場合は+2(システムに問題があるようです)。
csync は、通常のユーザーであるあなたのために特別に設計されたファイルシンクロナイザーです。
csyncはライブラリであり、デフォルトでコマンドラインクライアントを出荷します。サーバーレスであり、sftp
またはsamba
のいずれかを介した同期が可能です。
使用例:
csync /home/csync smb://csync:[email protected]/Users/csync
csync /home/csync sftp://[email protected]:2222/home/csync
これは私が裸のツールで単方向同期を行う方法です。
開始時に、 tar ファイルのセット全体をコピーし、宛先ポイントにコピーします。
また、ベースディレクトリにマーカーを設定します。
touch /Source/base/directory/last-sync-time.txt
ここで、ソースから宛先への同期を維持したいと思います。
前方に同期するための次のタイムスロット(送信元から宛先へ)で、
# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 user@backup-server:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2
-N ./filename
は tarfilename
が変更された後に変更または作成されたファイルのみをアーカイブするように指示します/作成した。scp
を 公開鍵認証 で使用すると想定していますbackup-server
に到達できると仮定します。touch
コマンドを発行できます。tar.bz2
アーカイブを保持します。この短いスクリプトを使用して、ディレクトリを監視し、リモートのsftpフォルダと継続的に同期します。
#!/bin/sh
dir1=/home/user/folder
while inotifywait -qqre modify "$dir1";
do
csync /home/user/folder sftp://remoteuser:remotepass@remoteaddress:remoteport/remotefolderpath
done