web-dev-qa-db-ja.com

Rsyncはパスにワイルドカードを使用するMP4を除外します

Rsyncバックアップからレンダリングされたビデオ(.mp4)を除外したいです。ただし、バックアップに含める必要がある.mp4がいくつかあります。違いは、除外されるMP4が配置されているパスです。私が(失敗した)試みたのは:

/home/rpiggott/Videos/youTube/*/*.mp4
  • ワイルドカード/ * /を使用しようとしていますが、すべてのサブディレクトリに一致します。各ビデオには独自のディレクトリがあります。
  • * .mp4は、除外したいレンダリングされたビデオに一致させる試みです。

これを このリスト の最後に追加しています。

これは、my NAS deviceへのrsyncの構文です。

sshpass -p PASSWORD rsync -av --del --exclude-from=/var/tmp/ignorelist --numeric-ids /home/rpiggott USER@NAS_IP_ADDRESS:/nfs/rpiggott/
1
Ron Piggott

これに対する答えは、rsyncに含めたくないすべてのファイルのリストを含む完全なexcludeを作成することです。

手順1:rsyncバックアップから除外するファイル名(パスを含む)をリストしたテキストファイルを作成します

command \ls /home/rpiggott/Videos/youTube/*/*.mp4 > /var/tmp/youTube_mp4_exclude 
  • command\lsの使用は、ターミナル内で使用されるlsエイリアスを無視します
  • (1)>を使用すると、コマンドが実行されるたびに作成されたファイルが上書きされます
  • 出力パス-ファイル名は、rsyncが検索するものと正確に一致する必要があります。パスの一部を削除するには、これを使用します:command \ls /home/rpiggott/Videos/youTube//.mp4 | sed 's:/home/::' > /var/tmp/youTube_mp4_exclude

ステップ2:cat一緒にファイル

cat /var/tmp/ignorelist /var/tmp/youTube_mp4_exclude > /var/tmp/rsync_ignore.txt
  • これがcronジョブになっている場合は、ファイルのアクセス許可を忘れないでください

ステップ3:-exclude-fromを作成された新しいファイルに変更します。

sshpass -p PASSWORD rsync -av --del --exclude-from=/var/tmp/rsync_ignore.txt --numeric-ids /home/rpiggott [email protected]:/nfs/rpiggott/
  • Rsyncには、バックアップをテストドライブするための-dry-runオプションがあります。

これをcronとして設定する場合は、。shファイルをファイルfile許可755で使用します

0 3 * * * /home/rpiggott/Backup/daily_backup.sh
3
Ron Piggott