Question

Je souhaite copier un serveur Linux complet qui va être mis hors service sur le réseau afin que nous soyons sûrs que rien ne soit perdu.

J'ai fait du / et on m'a dit qu'il y avait 60 Go de moins / /

Ensuite, j'ai fait rsync -r / root @ serveur_fichiers: / old-server et en faisant du dans le répertoire old-server I a 22 Go.

Alors, pourquoi cette différence? Y a-t-il quelque chose que du peut voir mais que rsync ne peut pas copier?

Était-ce utile?

La solution

Vous avez probablement supprimé des fichiers qui ne peuvent pas encore être désalloués car ils contiennent des descripteurs de fichiers ouverts. (Je ne savais pas que du du verrait leur utilisation, mais certains tests l'ont montré.) Vous pouvez rechercher ceci en utilisant lsof . D'après mon expérience, les deux causes principales en sont la suppression des journaux Apache sans supprimer le fichier httpd et la suppression des tables mysql du système de fichiers plutôt qu'en utilisant DROP TABLE.

Autres conseils

Si vous avez un peu de temps libre, vous pouvez comprendre exactement quelle est la différence: exécutez cd /; trouver . > / tmp / old sur l'ancien serveur, cd / old-server; trouver . > / tmp / new sur le nouveau serveur, puis vimdiff les deux fichiers pour voir ce qui a changé.

Il y a des systèmes de fichiers spéciaux que vous devriez éviter de copier avec rsync , par exemple, / proc , / sys , / tmp . Ils peuvent expliquer la différence que vous voyez, bien que cela semble trop grand de toute façon.

Il pourrait y avoir des répertoires illisibles (par exemple, sans r ou x ). Je ne me souviens pas si un processus exécuté avec les droits racine peut accéder à ces répertoires sans avoir au préalable fixé les autorisations.

Mieux générer et comparer la liste des fichiers et leurs sommes md5.

Quelques suggestions:

J'ai tendance à utiliser rsync -axHSW --numeric-ids dans des circonstances similaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top