préserver les liens matériels et symboliques, les permissions lors de la création de tar-ball et faire la même chose pendant que vous décomposez l’archive

Tâche: fournir la possibilité de mettre à niveau le système à distance ou d’append de nouvelles fonctionnalités.

Ce que je suis censé faire Créez une sauvegarde de l’environnement actuel de la machine cible et, en cas d’échec de la mise à niveau, revenez à l’environnement d’origine.

Disons que mes structures de répertoires ont quelque chose comme ça:

/home/user/project1/….bla bla

Le projet 1 contient des liens symboliques, des liens physiques, des fichiers exécutables de logiciels et de micrologiciels, etc.

Mon dilemme

Devrais-je utiliser la stratégie 1 ou 2?

  1. Dois-je copier l’ensemble de l’environnement actuel et revenir en arrière si la mise à niveau échoue?

    exemple -> cp -p -r / home / utilisateur / projet1 / * / home / utilisateur / projet1_backup /

    si la mise à niveau échoue ->

    mv / home / utilisateur / projet1_backup / / home / utilisateur / projet1

  2. Dois-je sortinger l’ensemble de l’environnement et le désarchiver si la mise à niveau échoue? Pour créer un goudron, je suis un peu sceptique quant à la préservation des liens symboliques et des liens durs.

Pourriez-vous s’il vous plaît fournir une réponse concrète à la méthode que je devrais suivre et si je vais avec Tar-Ball, quelle sera la commande bash?

Pour autant que je sache, tar -cvfz pour la création de tar gunzip ne conservera pas les liens et les permissions et de la même manière lors de la décompression de la boule de goudron. S’il vous plaît jeter de la lumière?

J’utiliserais la deuxième option: créer une archive tar; parce que les tarballs ont des points positifs:

  • Vous pouvez conserver les fichiers de permission / spéciaux sur les systèmes de fichiers (utile lorsque vous sauvegardez votre dossier ext * dans un système de fichiers NTFS)
  • Une copie d’un seul gros fichier sera plus rapide que mille petits fichiers
  • Vous pouvez le compresser.

Et voici la commande:

 tar --preserve-permissions --preserve-order -jc /path/to/your/folder > /path/to/your/backup_file.tar.bz2 

Ceci préservera votre permission, vos liens symboliques. Et pour les liens durs, je vous donne ce lien ( http://www.gnu.org/software/tar/manual/html_node/hard-links.html )

(mais par défaut, tar préservent les liens durs)

N’oubliez pas de tester votre archive avant de mettre à niveau votre système!

(vous éviterez presque toutes les pertes de données dans le cas où l’archive n’est pas correctement créée)