数十万のファイルをリモートディレクトリから別のリモートディレクトリにコピーします。

数十万のファイルをリモートディレクトリから別のリモートディレクトリにコピーします。

11.11.11.11/:/path/from(Ubuntuシステム)にあるリモートディレクトリ(SSHを有効にする)があります。百万小さな.txtファイル、簡単なlsコマンドの実行、および/path/from/WinSCPを使用して開くことも可能であるため、ディレクトリを開くことはできません。百万 ファイル数。

私の目標は、特定の名前パターンを持つ何千ものファイルを見つけることです。そして別のリモート場所(たとえば22.22.22.22:/path/to)にコピーします。

これまでに試したことは次のとおりです。

scp --exec=`find /path/from -name 'A*random*' -mtime +0 -mtime -10` [email protected]:/path/to

/path/from/しかし、ディレクトリに実際に何百万ものファイルが含まれていると言ったように、それを行うには非常に長い時間がかかります。

より速くするための提案はありますか?使用rsync?どうすればいいですか?最後の修正日を使用して結果を制限する方法だけを知っているので、find結果を特定の数に制限するにはどうすればよいですか?1000-mtime

ベストアンサー1

おそらくfindこれを組み合わせて、cpioあるコンピュータ上の多くのファイルからストリームを作成し、cpio別のコンピュータからファイルを抽出できます。

ssh user@source "cd sourcedir && find ./ -xdev -name 'A*random*' -print | cpio -o -Bav -H crc" | ssh user@target "cd destinationdir && cpio -i -vumd"

この(テストされていない)ソリューションは次のものに基づいています。https://www.netroby.com/view/3602。ここではfind、およびのパラメータの説明を見つけることができますcpio

おすすめ記事