web-dev-qa-db-fra.com

Rsync exclut les MP4 utilisant des caractères génériques pour les chemins

Je souhaite exclure les vidéos rendues (.mp4) de mes sauvegardes rsync. Cependant, certains fichiers .mp4 doivent être inclus dans la sauvegarde. La différence est le chemin où se trouvent les MP4 à exclure. Ce que j'ai essayé (sans succès) c'est:

/home/rpiggott/Videos/youTube/*/*.mp4
  • J'essaie d'utiliser le caractère générique/*/pour faire correspondre tous les sous-répertoires. Chaque vidéo a son propre répertoire.
  • Le * .mp4 est une tentative de faire correspondre la vidéo rendue que je veux exclure.

J'ajoute ceci à la fin de cette liste .

Ceci est ma syntaxe pour la rsync sur mon NAS

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

La réponse à cela est de créer un exclude complet avec la liste de tous les fichiers que vous ne voulez pas inclure dans votre rsync:

Étape 1: créer un fichier texte répertoriant les noms de fichiers (y compris le chemin d'accès) que vous excluez de la sauvegarde rsync

command \ls /home/rpiggott/Videos/youTube/*/*.mp4 > /var/tmp/youTube_mp4_exclude 
  • L'utilisation de commande\ls ignore l'alias ls utilisé dans le terminal
  • L'utilisation de (1) > écrase le fichier créé à chaque exécution de la commande
  • Le chemin de sortie - les noms de fichiers doivent correspondre exactement à ce que rsync recherche. Pour éliminer une partie du chemin, utilisez ceci: command \ls /home/rpiggott/Videos/youTube//.mp4 | sed 's:/home/::' > /var/tmp/youTube_mp4_exclude

Étape 2: cat les fichiers ensemble

cat /var/tmp/ignorelist /var/tmp/youTube_mp4_exclude > /var/tmp/rsync_ignore.txt
  • N'oubliez pas les autorisations de fichiers si cela devient un travail cron

Étape 3: remplacez - - exclude-from par le nouveau fichier créé:

sshpass -p PASSWORD rsync -av --del --exclude-from=/var/tmp/rsync_ignore.txt --numeric-ids /home/rpiggott [email protected]:/nfs/rpiggott/
  • N'oubliez pas que rsync a une option - - dry-run pour tester votre sauvegarde

Si vous le configurez en tant que cron, utilisez un fichier . Sh avec l'autorisation de fichier 755

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