web-dev-qa-db-fra.com

Comment archiver automatiquement un répertoire?

Je veux faire une synchronisation à sens unique.

J'ai un Folder A sur mon ordinateur, qui est constamment mis à jour avec le contenu.
Un autre Folder B est utilisé à 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.

48
Bhavesh Diwan

Cela semble être une tâche parfaite pour rsync

Sudo rsync -az /path_to/A /path_to/B

-un mode d'archivage (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'option --delete

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

63
Panther

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.

15
JIm

J'ai toujours trouvé Unison très utile. Il a une interface texte ou une interface graphique, et pas mal d’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 à faire est qu'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

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

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

4
dearN

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

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

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

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

2
Raúl F. Castro S.

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

1
jasonwert

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/directory2 va créer directory1 dans directory2, comme ceci /path/to/directory2/directory1/[files]

Vous pouvez effectuer un essai à sec en utilisant le -n, comme ceci rsync -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

0
subhojit777

Il existe un outil Shell très pratique appelé rsnapshot - http://www.rsnapshot.org/ - utilitaire de capture instantanée du système de fichiers pour faire des sauvegardes 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 rsnapshot et de vérifier info rsnapshot

0
user1180249

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/ En particulier, vous souhaitez que l'option "Mise à jour" de la synchronisation "Copier les fichiers nouveaux ou mis à jour dans le dossier de droite", c'est-à-dire copier du dossier de gauche vers le dossier de droite dans un affichage à deux fenêtres.

0
CentaurusA