特定の種類と日付の簡単なファイル転送を実行するために、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
*.xq
rsync
--dry-run
rsync --dry-run -av --include '**/' --include '*.xq' --exclude '*' admin@host:/results/analysis/ /home/serverdir/
--include
合意の混合は、--exclude
以下のように左から右に記述される。
--include '**/'
すべてのディレクトリを含む(ファイルを除く)--include '*.xq'
globと一致するすべてのファイル(またはディレクトリ)を含みます。*.xq
--exclude '*'
記載されていない項目を除外