Rsync 使用路径通配符排除 MP4

Rsync 使用路径通配符排除 MP4

我想从 rsync 备份中排除渲染的视频 (.mp4)。但是我需要在备份中包含一些 .mp4。区别在于要排除的 MP4 所在的路径。我尝试过(但没有成功)的是:

/home/rpiggott/Videos/youTube/*/*.mp4
  • 我尝试使用通配符 /*/ 来匹配所有子目录。每个视频都有自己的目录。
  • *.mp4 尝试匹配我想要排除的渲染视频。

我将这个添加到此列表

这是我的 NAS 设备上 rsync 的语法

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

答案1

答案是创建一个完整的排除列出你不想包含在同步

步骤 1:创建一个文本文件,列出要从 rsync 备份中排除的文件名(包括路径)

command \ls /home/rpiggott/Videos/youTube/*/*.mp4 > /var/tmp/youTube_mp4_exclude 
  • 指某东西的用途命令 \ls忽略终端中使用的 ls 别名
  • (1)的使用>每次运行该命令时都会覆盖创建的文件
  • 输出路径 - 文件名必须完全匹配同步正在搜索。要消除部分路径,请使用以下命令: command \ls /home/rpiggott/Videos/youTube//.mp4 | sed 's:/home/::' > /var/tmp/youTube_mp4_exclude

第2步:文件放在一起

cat /var/tmp/ignorelist /var/tmp/youTube_mp4_exclude > /var/tmp/rsync_ignore.txt
  • 如果这是一个 cron 任务,不要忘记文件权限

步骤 3:改变--排除到新创建的文件:

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文件权限为 755

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

相关内容