Comment archiver automatiquement un répertoire?

47

Je veux faire une synchronisation à sens unique.

Je suis Folder Asur mon ordinateur qui est constamment mis à jour avec le contenu.
Une autre Folder Best utilisée à des fins de sauvegarde sur un disque dur externe.

Maintenant, ce que je pense, c’est que tout ce qui est supplémentaire dans le dossier A devrait aller dans le dossier B. Cependant, quelque chose qui est présent dans B et NON dans A "" ne doit PAS être copié dans A "".

En un mot, le dossier de sauvegarde peut tout copier du dossier source, mais rien ne doit être copié du dossier de sauvegarde sur le source.

Bhavesh Diwan
la source
Ce n'est pas la synchronisation ....
Braiam
@Braiam Comment s'appelle-t-il alors? Je ne pouvais pas trouver un mot moi-même comme le PO. Si vous savez, s'il vous plaît dites-le.
Jo Smo
@JoSmo copy? Archiver? Sauvegarde?
Braiam
@Braiam merci, maintenant je me sens stupide de demander. : D
Jo Smo

Réponses:

63

Cela semble être une tâche parfaite pour rsync

sudo rsync -az /path_to/A /path_to/B

-un mode archive (implique récursif, copie des liens symboliques en tant que liens symboliques, conserve le propriétaire, les temps de modification, les fichiers de groupe, de propriétaire, spéciaux et de périphérique)

-z compresse les données

Si vous souhaitez supprimer les fichiers supprimés dans A des fichiers dans B, utilisez l' --deleteoption

Pour plus d'informations, voir:

https://help.ubuntu.com/community/rsync

Vous pouvez lancer rsync à partir de cron

sudo crontab -e

Ajouter une tâche horaire

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto

Panthère
la source
7
S'il existe des dossiers dans des dossiers, vous devrez utiliser l'option -r.
John S Gruber
2
Je suis un peu en retard par rapport à la fête, mais pour exécuter le script de synchronisation lorsque le disque dur est connecté, vous devez utiliser udev. Découvrez cette question d'il y a un moment. askubuntu.com/questions/25071/…
jackweirdy
1
@JohnSGruber l'option -a implique récursif, je vais modifier la réponse pour le préciser
Tomas
1
si les fichiers sont sur la même machine, -zralentissez le processus
Postadelmaga
1
@JoSmo - askubuntu.com/questions/476041/… et askubuntu.com/questions/609968/… et man rsync et posez une nouvelle question si nécessaire plutôt que de demander des commentaires.
Panther
15

Je suggérerais d'utiliser rsync à cette fin. Rsync est extrêmement rapide, stable et polyvalent. Il y a une bonne introduction à http://help.ubuntu.com/community/rsync

Si vous le souhaitez, il existe un frontal graphique optionnel: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

La commande ci-dessus va copier de folderA vers folderB en excluant dir1. Les drapeaux sont

-a preserves time stamps
-z is to enable compression
-v verbose

Il y a beaucoup plus d'options disponibles.

JIm
la source
8

J'ai toujours trouvé Unison très utile. Il a une interface texte ou une interface graphique, et plusieurs options différentes pour l’ajuster à votre guise (avec un peu de bidouillage). La première synchronisation prend un peu de temps, mais après elle est brillante. Vous pouvez le faire synchroniser à sens unique, comme vous le souhaitez, mais vous obtiendrez cela presque automatiquement. Il peut également supprimer de la sauvegarde ou non comme vous le souhaitez.

Vous pouvez également rencontrer des problèmes d'autorisations qui sont pris en charge dans le format de fichier Ubuntu, mais pas dans le disque dur externe (selon que le disque dur externe va être utilisé sur une machine Windows, cela peut être une bonne chose), vous souhaiterez peut-être synchroniser sans les autorisations potentielles.

Quoi qu'il en soit, la bonne chose est que, avec le tutoriel, il est relativement simple de le configurer une fois, puis c'est une interface graphique à chaque fois que vous voulez le faire.

Voici quelques informations à ce sujet: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

Et voici le tutoriel: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial

Dr Xorile
la source
4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Cela synchronisera et copiera uniquement les données qui n'existent pas dans le /other/folder/on/hdd/

cher
la source
2

Je suis d'accord avec les autres réponses, vous pouvez utiliser rsync dans Terminal ou les interfaces Grsync , LuckyBackup , Conduit ou le célèbre Unison .

Une autre application intéressante est Krusader (un gestionnaire de fichiers à double panneau pour KDE). Dans le menu Outils, vous pouvez trouver "Syncronize Directories", qui est très utile.

En dernière instance, vous pouvez installer Wine et installer un autre excellent gestionnaire de fichiers à double volet tel que Total Commander .

Quoi qu'il en soit, vous avez beaucoup d'options et toutes sont présentes dans le centre logiciel Ubuntu.

Raúl F. Castro S.
la source
1

Je recommanderais Conduit pour une synchronisation simple. Il est disponible le système de logiciel. Il fait exactement ce que vous recherchez

jasonwert
la source
0

Il existe un outil shell assez pratique appelé rsnapshot - http://www.rsnapshot.org/ - utilitaire de capture instantanée de système de fichiers pour la sauvegarde de systèmes locaux et distants. qui utilise rsync et des liens physiques, ce qui permet de garder instantanément plusieurs sauvegardes complètes du système de fichiers. Il suffit de faire sudo apt-get install rsnapshotet de vérifierinfo rsnapshot

utilisateur1180249
la source
0

Vous pouvez synchroniser des fichiers dans deux répertoires en:

rsync -rv /path/to/directory1/ /path/to/directory2

Faire rsync -rv /path/to/directory1 /path/to/directory2va créer à l' directory1intérieur directory2, comme ça/path/to/directory2/directory1/[files]

Vous pouvez sécher en utilisant un -ninterrupteur, comme cecirsync -rnv /path/to/directory1/ /path/to/directory2

Référence: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps

subhojit777
la source
0

Si vous souhaitez une interface graphique sur un système hautement configurable, essayez FreeFileSync. Voir, par exemple: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-synchronization/ Vous souhaitez notamment que l'option "Mise à jour" de la synchronisation "Copier les fichiers nouveaux ou mis à jour dans right folder ", c’est-à-dire copier du dossier de gauche au dossier de droite dans un affichage à deux fenêtres.

CentaurusA
la source