Backup Manager : résoudre l’erreur “tar: file changed as we read it” lors de la création de la sauvegarde

Cela fait quelques jours que Backup Manager, qui me sert à sauvegarder automatiquement les fichiers et bases de données du site sur le serveur de sauvegarde, renvoie une erreur lors de la création d’un de mes fichiers de sauvegarde, alors que tout se passait sans encombres jusqu’alors.

Backup Manager : résoudre l'erreur "tar: file changed as we read it" lors de la création de la sauvegarde photo

C’est gênant dans le sens où on ne sait pas vraiment ce qui a empêché la bonne création du fichier et on ne peut vraiment être certain de l’intégrité du fichier de sauvegarde, ce qui est critique.

Voici le message d’erreur reçu par email à la fin de la sauvegarde :

Unable to create "/home/archives/mail.skyminds.net-home.20180208.master.tar.gz", check /tmp/bm-tarball.log.TZ2VAU
1 error occurred during the tarball generation.

Et voici le contenu du fichier log en question :

tar: /wp-content/ file changed as we read it

Étapes du débogage

Le moins que l’on puisse dire, c’est que tar ne nous donne pas vraiment d’indications sur la cause du problème. Un fichier qui change lors de la lecture, d’accord mais lequel ? De plus, il indique un répertoire et non un fichier précis.

Dans le fichier de configuration de Backup Manager, il est possible de choisir plusieurs formats de fichier pour compresser les fichiers de sauvegarde. J’utilise .tar.gz puisque tous mes machines tournent sous Unix mais là, j’ai changé la configuration pour utiliser le format zip.

On relance le script de sauvegarde : zip est beaucoup plus loquace dans ses messages d’erreur ! Voici ce qu’il nous indique :

zip warning: Not all files were readable
  files/entries read:  55621 (1.3G bytes)  skipped:  96 (414K bytes)

Très bien. Il ne nous reste plus qu’à trouver quels sont ces fichiers qui n’ont pas les droits de lecture. A la racine du site, on lance donc une recherche pour trouver tous les fichiers et dossiers qui n’auraient pas les droits basiques de lecture (read) :

find . ! -perm -o=r

Résultat :

./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---internal-metadatas---B0089KSLUY
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---internal-metadatas---CustomerReviews_B004LS7G3G
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---CustomerReviews_B00B2OI0FU
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---B00JGYYQ24
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---CustomerReviews_B006H4R9LG
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---internal-metadatas---B005BHE48Q
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---internal-metadatas---B00H2O1YOI
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---CustomerReviews_B00MVQLMPI
./wp-content/plugins/amazonsimpleadmin/cache/zend_cache---B017EOYW9Y

Il s’agit donc de fichiers de cache de produits Amazon, qui sont absolument inutiles pour les sauvegardes: nous allons donc exclure ce répertoire de cache de nos fichiers de backup.

Suppression des répertoires de cache avant compression des archives

Dans la configuration de Backup Manager, ajoutez le chemin des répertoires de cache de quasiment tous les plugins WordPress :

export BM_TARBALL_BLACKLIST="/home/public_html/wp-content/plugins/*/cache/* /home/public_html/wp-content/*cache*"

Sauvegardez le fichier et relancez votre script de backup.

Méthode plus radicale : éditer le script

Si la méthode précédente ne porte pas ses fruits, en voici une autre. Il suffit de modifier la valeur du chmod dans ces deux fichiers :

/wp-content/plugins/amazonsimpleadmin/lib/AsaZend/Cache/Backend/File.php
/wp-content/plugins/amazonsimpleadmin/lib/AsaZend/Cache/Backend/Static.php

Cherchez le chmod 600 :

'cache_file_umask' => 0600,

et remplacez-le par un chmod 644:

'cache_file_umask' => 0644,

Tada, plus d’erreur et des fichiers de sauvegarde propres, sans fichiers de cache inutiles !

Je suis assez content d’avoir trouvé une solution à ce problème assez récurrent. Le fait d’avoir momentanément modifié le type d’archive à créer a bien aidé à isoler la cause du problème.

WordPress : forcer le chargement des média oEmbed en HTTPS

Lorsque le site est servi via HTTPS, toutes les ressources – même les ressources oEmbed automatiquement générée par WordPress – qui composent une page doivent également être servies via une connexion chiffrée aussi.

WordPress : afficher des média oEmbed avec HTTPS photo

Il se trouve que je mets des vidéos Youtube et consorts de temps en temps : elles ne s’affichaient plus en https, étant servies par défaut en http. Le changement vers HTTPS est en marche mais tous les services oEmbed n’ont pas encore adopté le chiffrement des connexions.

Servir les vidéos Youtube en HTTPS

Au lieu d’utiliser Youtube.com, nous allons utiliser la version cookie-less de Youtube, à savoir youtube-nocookie.com : cela permet d’éviter les cookies pisteurs de Google et donc offre plus de sécurité et de respect de la vie privée.

J’utilise ce système depuis des années sur SkyMinds donc je me suis dit qu’il était bien temps de le partager dans ces colonnes. Le code permet donc de remplacer youtube.com par youtube-nocookie.com dans le code généré par l’oEmbed WordPress.

Ce code est à ajouter dans votre utility plugin (ou à défaut le fichier functions.php de votre thème WordPress).

Le premier code remplace toutes les occurences des médias HTTP pour HTTPS :

/* Force HTTPS rewrite for oEmbeds
* Source : https://wordpress.stackexchange.com/questions/40747/how-do-i-embed-youtube-videos-with-https-instead-of-http-in-the-url
*/
add_filter( 'embed_oembed_html', 'sky_my_embed_oembed_html' );
function sky_my_embed_oembed_html( $html ) { return preg_replace( '@src="https?:@', 'src="', $html ); }

Le second code modifie tous les appels à youtube.com et les remplace par youtube-nocookie.com, ce qui empêche la création de cookies pisteurs :

/*
* Embed Video Fix - HTTPS and privacy mode
* Source : https://wordpress.org/support/topic/forcing-ssl-return-for-youtube-oembed
*/
add_filter('the_content', 'sky_add_secure_video_options', 10);
function sky_add_secure_video_options($html) {
   if (strpos($html, "<iframe" ) !== false) {
    	$search = array('src="http://www.youtube.com','src="http://youtube.com');
		$replace = array('src="https://www.youtube-nocookie.com','src="https://www.youtube-nocookie.com');
		$html = str_replace($search, $replace, $html);
   		return $html;
   } else {
        return $html;
   }
}

Cela a l’air tout bête mais cela permet de faire respecter un peu plus notre droit au refus de se faire pister à tout bout de champs sur le net.

Le petit plus : on charge également moins de cookies, qui ne sont pas des ressources cachables par essence donc on améliore un peu aussi le temps de chargement de la page.

Saigon Ft Swizz Beatz and Jay-Z – Come On Baby

“Come on Baby” est le premier single officiel du premier album de Saigon, intitulé The Greatest Story Never Told :

Dans cette chanson, on retrouve Swizz Beatz et un couplet de Jay-Z dans la version remix. Un sample de la chanson “Southside Shuffle” du groupe The J. Geils Band’s est abondamment utilisée.

Paroles

Just Blaze, hey, hands up

Swizzy, hey, hands up
1, 2, 3, here we go!

Microphone check one two what is this?
The Yardfather coming to give niggas the business
It’s so beyond rap, cock sucker we live this
So uhm, come on baby, come on, come on and witness
The next ten years of this shit, the slickness is deliberate
Lyrically it’s as sick as it get
I been in the pen, been in the jects, been in the??
I been in the Benz, been in the Lex, been in the MSX
Yes, I run ringers around the fraudulant type
Come here and I’ll show you that I spit on just more then a mic
I make it hard for niggas to breathe, please
These wicked emcees squeeze
Hammers like the Pampers used to squeeze, hit the DT
I Mike Tyson ya eye, put a permenant ring around it
Then go run in the booth and sing about it
Look, if I don’t hurt the nigga that play with my wealth
I’m like me on Entourage god, I’m playing myself, let’s go

Hold up, the pump will make you jump up
Put ya body in the tr-unk
(Don’t you baby, don’t you baby, don’t ya baby)
Keep goin now…
New York, and all the way to Cali
And the South’ll make ya j-ump
(Come on baby, come on baby, come on baby)
Don’t touch the boy, yup
Hold up, the pump will make ya jump up
Put ya body in the tr-unk
(Come on baby, come on baby, come on baby)
I’ll whip ya ass from…
New York, and all the way to Cali
And the South’ll make ya jump

1, 2, 3, we gone!

Four finger, three finger, two finger, one finger
Hum dinger, gun slinger, that’s what I am
Trying to get some cash in my hand as fast as I can
So you should, come on baby, come on, come on and fuck wit ya man
I got this rap shit down to a science
Alotta niggas shit is aight but they ain’t fucking with Ryan
First there was some defiance, until I formed an alliance
With Justin, he plugged me in, now I’m as hot as a fucking iron
You lying, all the gunplay talk
Knowing behind closed doors you be practicing on ya runway walk
I been in the kill, been in the cap, been in the box and back
I been in the ville, tripping the gat, trimming a boxing match
And I still walk around this fucker with not a scratch
And thats way more then I can say for alot of cats
My name’s Saigon nigga
Break bread mufucka ‘fore I break ya fucking head lil sucka

Finally I’ve arrived, so we can say our goodbyes
To the ring tone rapper, that crap’ll never survive
Its the lyrics in hip-hop, they even the odds
We gotta, come on baby, come on, come on and keep it alive
I got a microphone jones, I’m in love with it
If I wasn’t, I wouldn’t even fuck with it
I been in the rocks, been in the grams
Been in the pots and pans, I been in demand
Been in the sense I dropped contraband, damn
Simon says, “Saigon slap the shit outta suckas”
“Slam his head on the cement and stomp it until he’s??”
My son says your son scared of societies shit list
Sick as the second stage of siphylis and swift as the Savior’s scripture
I say after it’s all said and done
I’mma be way ahead of them, never see a better one
So look niglet, fall back a tid bit
Or get ya fucking wig split, this some big shit

Le riff pentatonique est repris ad nauseam mais ce morceau est vraiment entraînant. Un bon mix entre rock et rap old-school. Parfait pour les tâches répétitives – ou pour ranger le garage.

Pin It on Pinterest

Spelling error report

The following text will be sent to our editors: