
最近、大量のファイルをあるサーバーから別のサーバーに移動しました。
tar -c files_in_dir | ssh [email protected] 'tar -xvf - -C /new/server/files'
これは非常にうまくいきました。ただし、(ミスのため)もう一度実行したいのですが、120,000 を超えるファイルを再度転送するのではなく、最近追加されたファイル(たとえば、過去 3 日間)だけを転送したいのです。
このコマンドを変更するか、最近のファイルに対してのみ同様の転送を行う新しいコマンドを作成する方法はありますか?
答え1
左側の tar は、比較する元の tar ファイルを認識しません。したがって、どのファイルが過去のファイルよりも新しいかを知ることはできません。ただし、手動の日付引数を持つ -N tar フラグは機能すると思います。
答え2
これらすべてを実行する代わりに、 rsync を使用するのはいかがでしょうか。rsync は、リモート サーバーから宛先に diff のみをコピーします。