GNU/Linux >> Tutoriels Linux >  >> Linux

L'utilisation de Tar pendant la mise à jour du répertoire source est-elle sûre ?

Je dois poser une question similaire à celle-ci.

Dans les scénarios où vous sauvegardez le répertoire avec tar et

  1. de nouveaux fichiers/répertoires sont ajoutés

  2. les fichiers/répertoires actuels sont en cours de modification et supprimé

pouvez-vous vous attendre à un résultat sûr ?

Par résultat sûr Je veux dire quelque chose comme :

  1. tar ne bousillera pas quelque chose sur le répertoire source/sous-répertoires
  2. tar ajoutera à l'archive telle qu'elle a été trouvée au moment de la création de l'archive
  3. le signal de réussite sera émis même si les changements décrits se sont produits

Réponse acceptée :

1. tar ne bousillera rien dans le répertoire source/sous-répertoires

Vrai, sauf si vous considérez la mise à jour des temps d'accès comme une erreur. En dehors de cela, tar ne change rien dans l'arborescence des sources.

2. tar sera ajouté à l'archive tel qu'il a été trouvé au moment de la création de l'archive

Vrai, pour une certaine valeur de "dans l'instant". Si l'arborescence source change pendant que tar la lit, ce qui est inclus dans l'archive est quelque peu imprévisible. En particulier, si un fichier change pendant que tar le lit, il n'y a aucune garantie que tar écrira une copie du fichier tel qu'il était à un moment donné. Par exemple, il est possible d'avoir :

  • tar lit les octets 0 à 4095 de foo .
  • Certains programmes écrivent dans foo , en modifiant les octets 4 095 à 4 096 en une seule opération d'écriture.
  • tar lit les octets 4096–8191 de foo .

Puis le contenu de foo dans l'archive n'est ni l'ancien contenu ni le nouveau contenu, c'est un mélange des deux. Un autre exemple est que si un fichier est renommé pendant que tar lit l'arborescence source, tar peut l'ignorer complètement.

3 . le signal de réussite sera émis même si les changements décrits se sont produits

Non pas forcément. Si tar détecte que la source a changé pendant qu'il la lit, il peut se plaindre et renvoyer un statut d'échec. En particulier, tar doit écrire la taille d'un fichier dans l'archive avant d'écrire le contenu, donc il lit d'abord la taille de chaque fichier source. S'il atteint la fin du fichier avant d'atteindre la taille enregistrée, il n'y a aucun moyen évident de récupérer, donc toute implémentation tar devrait se plaindre au moins dans ce cas.

Pour effectuer des sauvegardes en toute sécurité, utilisez des outils au niveau du système de fichiers ou du volume pour créer un instantané et sauvegardez l'instantané.

En relation:Linux - L'invité virtualbox KALI sur l'hôte Ubuntu n'ajuste pas automatiquement la résolution?
Linux
  1. Fusionner des dossiers avec Mv ?

  2. Créer un répertoire cible lors de l'extraction de Tarball ?

  3. Utiliser –exclude avec la commande Du ?

  4. cp :répertoire omis - erreur lors de la copie d'un répertoire sous Linux

  5. impossible de sourcer le script dans un répertoire courant

Comment créer un répertoire sous Linux à l'aide de la commande mkdir

Vérifier si un répertoire est vide en utilisant C sous Linux

Utiliser et dans la boucle while de Bash

Erreur lors de l'utilisation d'une version plus récente de la glibc

Comment télécharger récursivement un répertoire à l'aide de smbclient ?

Utilisation de / lors de l'utilisation d'un cd