Oui, rsync est une excellente alternative simple et efficace pour synchroniser les fichiers entre copie-studio et studiovirtuel sans passer par Git. C’est particulièrement adapté à ton contexte :
Tu as déjà accès en SSH via n0c.
Tu veux un contrôle direct et visuel sur les fichiers synchronisés.
Tu n’as pas besoin (pour l’instant) de l’historique ou de la collaboration offerts par Git.
Voici comment procéder en toute sécurité, avec des précautions pour éviter d’écraser des fichiers critiques ou de casser ton site actif.
Pourquoi rsync est une bonne solution pour toi
✅ Rapide : Seuls les fichiers modifiés sont transférés.
✅ Précis : Tu peux exclure des dossiers/fichiers (ex: wp-config.php, uploads/).
✅ Contrôlable : Tu vois exactement ce qui est synchronisé.
✅ Pas de dépendance externe : Tout se fait via SSH, sans besoin de GitLab/Gitea.
⚠️ Points de vigilance :
Pas d’historique : Contrairement à Git, tu ne pourras pas revenir en arrière facilement.
Risque d’écrasement : Si tu synchronises dans le mauvais sens, tu peux perdre des données.
Base de données non incluse : rsync ne gère que les fichiers (pas la BDD).
Étapes pour synchroniser copie-studio → studiovirtuel avec rsync
Étape 1 : Préparer l’environnement
Vérifie les chemins absolus de tes sites :
Exemple :
copie-studio : /var/www/copie-studio/
studiovirtuel : /var/www/studiovirtuel/
Utilise pwd dans chaque dossier pour confirmer.
Crée un backup manuel de studiovirtuel avant toute synchronisation :
bash
Copier
tar -czvf backup-studiovirtuel-$(date +%Y-%m-%d).tar.gz /var/www/studiovirtuel/
(Cela crée une archive compressée avec la date du jour.)
Étape 2 : Commande rsync de base
Voici la commande sécurisée pour synchroniser uniquement les fichiers modifiés de copie-studio vers studiovirtuel, en excluant les éléments sensibles :
bash
Copier
rsync -avz –delete \
/var/www/copie-studio/ \
/var/www/studiovirtuel/
Explications des options :
-a : Mode archive (conserve les permissions, dates, etc.).
-v : Verbose (affiche les fichiers synchronisés).
-z : Compression pendant le transfert.
–delete : Supprime les fichiers dans studiovirtuel qui n’existent plus dans copie-studio (à utiliser avec prudence !).
–exclude : Exclut les fichiers/dossiers listés.
–include : Inclut une exception à une exclusion (ex: on exclut tous les thèmes sauf Kadence-enfant).
Ce qui est synchronisé :
Thème enfant (Kadence-enfant/) : Tes modifications CSS/PHP.
Fichiers core WordPress (si modifiés) : Exclu par défaut, mais tu peux les inclure si besoin.
Autres fichiers : Comme functions.php ou des plugins personnalisés.
Ce qui est exclu :
wp-config.php (contient les identifiants BDD).
uploads/ (fichiers médias, souvent lourds et uniques à chaque site).
plugins/ (sauf si tu veux les synchroniser, mais risque de conflits).
.htaccess (peut varier selon l’environnement).
Étape 3 : Tester la synchronisation
Fais un test en mode “dry run” (simulation) pour voir ce qui serait synchronisé sans rien modifier :
bash
Copier
rsync -avzn –delete \
/var/www/copie-studio/ \
/var/www/studiovirtuel/
(L’option -n simule le transfert.)
Vérifie la sortie :
Si tu vois des fichiers que tu ne veux pas synchroniser, ajuste les –exclude.
Si tout semble correct, passe à l’étape suivante.
Étape 4 : Exécuter la synchronisation réelle
Passe en mode maintenance sur studiovirtuel (optionnel mais recommandé) :
Utilise un plugin comme “Maintenance Mode” ou crée un fichier maintenance.html temporaire.
Lance la commande rsync (sans -n) :
bash
Copier
rsync -avz –delete \
/var/www/copie-studio/ \
/var/www/studiovirtuel/
Vérifie les permissions après synchronisation :
WordPress a besoin que les fichiers soient accessibles par le serveur web (ex: www-data ou nginx).
Si nécessaire, corrige les permissions :
bash
Copier
chown -R www-data:www-data /var/www/studiovirtuel/
chmod -R 755 /var/www/studiovirtuel/
(Remplace www-data par l’utilisateur du serveur web sur ton hébergement.)
Désactive le mode maintenance et teste le site.
Étape 5 : Automatiser avec un script (optionnel)
Pour éviter de retaper la commande à chaque fois, crée un script Bash :
Crée un fichier sync-sites.sh :
bash
Copier
nano /home/tu/sync-sites.sh
Ajoute ce contenu (adapte les chemins) :
bash
Copier
#!/bin/bash
# Script pour synchroniser copie-studio vers studiovirtuel
SOURCE=“/var/www/copie-studio/”
DEST=“/var/www/studiovirtuel/”
echo “Début de la synchronisation…”
rsync -avz –delete \
“$SOURCE” “$DEST”
echo “Synchronisation terminée.”
Rends le script exécutable :
bash
Copier
chmod +x /home/tu/sync-sites.sh
Exécute-le quand besoin :
bash
Copier
/home/tu/sync-sites.sh
Cas d’usage avancés
1. Synchroniser uniquement le thème enfant
Si tu ne veux synchroniser que Kadence-enfant :
bash
Copier
rsync -avz /var/www/copie-studio/wp-content/themes/Kadence-enfant/ /var/www/studiovirtuel/wp-content/themes/Kadence-enfant/
2. Synchroniser les plugins personnalisés
Si tu as un plugin personnalisé (ex: mon-plugin) :
bash
Copier
rsync -avz \
/var/www/copie-studio/wp-content/plugins/mon-plugin/ \
/var/www/studiovirtuel/wp-content/plugins/mon-plugin/
3. Synchroniser la base de données
rsync ne gère pas la BDD. Utilise WP-CLI pour exporter/importer :
bash
Copier
# Sur copie-studio : exporte la BDD
wp db export /tmp/copie-studio.sql
# Sur studiovirtuel : importe la BDD
wp db import /tmp/copie-studio.sql
(Assure-toi que wp est disponible dans ton PATH ou utilise /usr/bin/wp.)
Précautions importantes
Ne jamais synchroniser :
wp-config.php (risque de casser l’accès à la BDD).
.htaccess (peut varier selon l’hébergement).
uploads/ (sauf si tu veux dupliquer les médias, mais cela peut être lourd).
Toujours tester :
Fais un backup avant chaque synchronisation.
Teste d’abord sur un sous-dossier ou en local.
Vérifier les permissions :
Après rsync, assure-toi que le serveur web a les droits sur les fichiers :
bash
Copier
chown -R www-data:www-data /var/www/studiovirtuel/
Éviter –delete si incertain :
Sans –delete, rsync ne supprimera pas les fichiers dans studiovirtuel qui n’existent plus dans copie-studio.
Utile pour éviter les suppressions accidentelles.
Exemple complet pour ton cas (CSS + thème enfant)
Voici la commande optimisée pour ton besoin actuel (nettoyage CSS) :
bash
Copier
rsync -avz \
/var/www/copie-studio/ \
/var/www/studiovirtuel/
Seuls style.css et functions.php du thème enfant seront synchronisés.
Aucun autre fichier ne sera modifié.
Alternatives à rsync
Si rsync ne te convient pas, voici d’autres options :
Outil
Avantages
Inconvénients
scp
Simple, sécurisé (SSH)
Moins flexible (pas d’exclusions)
Plugin "Sync"
Interface graphique
Moins précis, dépend de WordPress
All-in-One WP Migration
Tout-en-un (fichiers + BDD)
Lourd, pas de contrôle fin
Recommandation finale
Commence par un test avec la commande rsync en mode dry run (-n) pour vérifier ce qui serait synchronisé.
Synchronise uniquement le thème enfant (Kadence-enfant/) pour ton cas actuel (CSS).
Automatise avec un script si tu prévois de faire cela souvent.
Veux-tu que je t’aide à :
Adapter la commande rsync pour un cas spécifique (ex: inclure un plugin personnalisé) ?
Créer un script complet avec gestion des erreurs et logs ?
Tester la synchronisation en temps réel avec toi via SSH ?