Rsyncは暗黙的に除外されたファイルを「検索」

Rsyncは暗黙的に除外されたファイルを「検索」

特定の種類と日付の簡単なファイル転送を実行するために、Linuxシステムのコマンドと組み合わせた反作用rsyncコマンドがあります。find

これはコマンドです:

rsync -avx --timeout=30 --ignore-existing admin@host:'`find /results/analysis/ -mtime -1 -type f -iname  "*.xq"`' /home/serverdir/

問題はこれである:

ファイルが見つかると、上記のコマンドは完全に実行されます。ファイルが見つからない場合は中断され、何らかの理由でリモートシステムのホームディレクトリにあるファイルを実際に送信します。ちなみに、これは-mtimeで示されている1日よりはるかに古いです。

エラーメッセージ:

receiving incremental file list
./
rsync: send_files failed to open "/home/admin/.viminfo": Permission denied (13)
file.txt

コマンドが何も報告しないようですfind。 rsyncはデフォルトでホームディレクトリのすべてを転送します。この問題を解決する方法についてのアイデアはありますか?

ベストアンサー1

コピーしたいのはファイルだけなので、findを混ぜるのではなく直接行うことができます。変更に影響を与えずに安全にテストできるように、このフラグを含めました。準備ができたら、コマンドラインから削除してください。rsync*.xqrsync--dry-run

rsync --dry-run -av --include '**/' --include '*.xq' --exclude '*' admin@host:/results/analysis/ /home/serverdir/

--include合意の混合は、--exclude以下のように左から右に記述される。

  1. --include '**/'すべてのディレクトリを含む(ファイルを除く)
  2. --include '*.xq'globと一致するすべてのファイル(またはディレクトリ)を含みます。*.xq
  3. --exclude '*'記載されていない項目を除外

おすすめ記事