# Scripts Utilitaires Ce dossier contient des scripts utilitaires pour la gestion des bases de données et l'automatisation de tâches. ## Structure - `php/` : Scripts PHP pour la manipulation des données et l'intégration avec l'API - `shell/` : Scripts shell pour l'automatisation et les opérations système - `python/` : Scripts Python pour le traitement des données et l'analyse - `cron/` : Scripts et configurations pour les tâches programmées ## Migration geosector → geosector_app Les scripts de migration permettent de transférer des données de la base MySQL geosector (sur un serveur distant) vers la base MariaDB geosector_app (locale). ### Prérequis - Accès SSH au serveur distant hébergeant la base MySQL geosector - Accès à la base de données MariaDB geosector_app locale - Droits suffisants pour lire/écrire dans les deux bases - Clé SSH pour l'authentification au serveur distant ### Utilisation 1. Configurer les paramètres de connexion dans le fichier `config.php` : - Paramètres SSH (serveur, port, utilisateur, clé) - Paramètres de la base de données source (distante) - Paramètres de la base de données cible (locale) 2. Exécuter le script de migration souhaité : ``` php php/migrate_users.php ``` ou ``` ./shell/migrate_table.sh users ``` 3. Pour comparer les schémas de tables entre les deux bases : ``` python python/compare_schemas.py users ``` ./bash/migrate_table.sh users ``` ## Tâches programmées (cron) Les scripts dans le dossier `cron/` peuvent être configurés pour s'exécuter automatiquement via crontab. Exemple de configuration crontab pour exécuter la synchronisation quotidienne : ``` # Synchronisation quotidienne à 2h du matin 0 2 * * * php /chemin/vers/api/scripts/cron/sync_databases.php > /dev/null 2>&1 ``` ## Fonctionnement du tunnel SSH Les scripts établissent automatiquement un tunnel SSH pour accéder à la base de données distante : 1. Vérification de l'existence d'un tunnel déjà établi 2. Création d'un tunnel SSH si nécessaire 3. Exécution des opérations de base de données via le tunnel 4. Fermeture propre du tunnel à la fin du script Les tunnels utilisent un port local (par défaut 13306) pour rediriger vers le port MySQL du serveur distant.