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 \ --exclude='wp-config.php' \ --exclude='.htaccess' \ --exclude='wp-content/uploads/' \ --exclude='wp-content/cache/' \ --exclude='wp-content/plugins/' \ --exclude='wp-content/themes/*' \ --include='wp-content/themes/Kadence-enfant/' \ /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 \ --exclude='wp-config.php' \ --exclude='.htaccess' \ --exclude='wp-content/uploads/' \ --exclude='wp-content/cache/' \ --exclude='wp-content/plugins/' \ --include='wp-content/themes/Kadence-enfant/' \ /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 \ --exclude='wp-config.php' \ --exclude='.htaccess' \ --exclude='wp-content/uploads/' \ --exclude='wp-content/cache/' \ --exclude='wp-content/plugins/' \ --include='wp-content/themes/Kadence-enfant/' \ /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 \ --exclude='wp-config.php' \ --exclude='.htaccess' \ --exclude='wp-content/uploads/' \ --exclude='wp-content/cache/' \ --exclude='wp-content/plugins/' \ --include='wp-content/themes/Kadence-enfant/' \ "$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 \ --exclude='wp-config.php' \ /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 \ --exclude='*' \ --include='wp-content/themes/Kadence-enfant/style.css' \ --include='wp-content/themes/Kadence-enfant/functions.php' \ /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 ?