La plupart des restaurations dont on a besoin sont petites : une page mal modifiée, un fichier supprimé, une table vidée par une mauvaise mise à jour. Restaurer tout le site pour corriger cela jette toutes les commandes et tous les commentaires depuis la sauvegarde - d'ordinaire une perte plus grande que l'erreur d'origine.
Un fichier depuis une archive
tar -tzf backup.tar.gz | grep wp-config
tar -xzf backup.tar.gz -C /tmp/restore path/inside/archive/wp-config.php
Extrayez d'abord vers /tmp, toujours. Regardez-le, puis copiez-le à sa place : extraire directement par-dessus le site, c'est ainsi qu'une petite restauration en devient une grande.
Une table depuis un export
sed -n '/-- Table structure for table `wp_posts`/,/-- Table structure for table `wp_postmeta`/p' backup.sql > wp_posts.sql
mysql -u user -p dbname < wp_posts.sql
Un export est du texte brut dans l'ordre des tables : la portion entre un en-tête de table et le suivant est donc exactement une table.
mysql -u user -p dbname_restore < wp_posts.sql
# then
INSERT INTO dbname.wp_posts SELECT * FROM dbname_restore.wp_posts WHERE ID = 123;
Savoir ce que contient la sauvegarde avant d'en avoir besoin
tar -tzf backup.tar.gz | head -30
grep -c "CREATE TABLE" backup.sql
Deux minutes maintenant, une seule fois, vous épargnent une heure le jour où quelque chose ne va pas - et ce jour-là n'est pas le bon pour découvrir que les téléversements n'ont jamais été inclus.
