#!/bin/bash # Script de configuration du cron pour le scraper agenda du libre SCRIPT_DIR="/home/poule/encrypted/stockage-syncable/www/development/html/oedb-backend/extractors" SCRIPT_PATH="$SCRIPT_DIR/agendadulibre.py" LOG_FILE="$SCRIPT_DIR/cron_agendadulibre.log" echo "🔧 Configuration du cron pour le scraper agenda du libre" echo "========================================================" # Vérifier que le script existe if [ ! -f "$SCRIPT_PATH" ]; then echo "❌ Erreur: Le script $SCRIPT_PATH n'existe pas" exit 1 fi # Rendre le script exécutable chmod +x "$SCRIPT_PATH" echo "📋 Options de planification disponibles:" echo "1. Toutes les heures (batch de 1)" echo "2. Toutes les 2 heures (batch de 5)" echo "3. Tous les jours à 6h (batch de 10)" echo "4. Tous les jours à 6h et 18h (batch de 5)" echo "5. Personnalisé" echo "" read -p "Choisissez une option (1-5): " choice case $choice in 1) CRON_SCHEDULE="0 * * * *" BATCH_SIZE="1" ;; 2) CRON_SCHEDULE="0 */2 * * *" BATCH_SIZE="5" ;; 3) CRON_SCHEDULE="0 6 * * *" BATCH_SIZE="10" ;; 4) CRON_SCHEDULE="0 6,18 * * *" BATCH_SIZE="5" ;; 5) read -p "Entrez la planification cron (ex: 0 */3 * * *): " CRON_SCHEDULE read -p "Entrez la taille des batches (ex: 5): " BATCH_SIZE ;; *) echo "❌ Option invalide" exit 1 ;; esac # Demander l'URL de l'API read -p "Entrez l'URL de l'API OEDB (défaut: http://localhost:5000): " API_URL API_URL=${API_URL:-"http://localhost:5000"} # Créer la commande cron CRON_COMMAND="$CRON_SCHEDULE cd $SCRIPT_DIR && python3 $SCRIPT_PATH --api-url $API_URL --batch-size $BATCH_SIZE >> $LOG_FILE 2>&1" echo "" echo "📝 Configuration cron proposée:" echo "Planification: $CRON_SCHEDULE" echo "Commande: $CRON_COMMAND" echo "" read -p "Voulez-vous ajouter cette tâche au cron ? (y/N): " confirm if [[ $confirm =~ ^[Yy]$ ]]; then # Ajouter la tâche au cron (crontab -l 2>/dev/null; echo "$CRON_COMMAND") | crontab - if [ $? -eq 0 ]; then echo "✅ Tâche cron ajoutée avec succès" echo "" echo "📋 Tâches cron actuelles:" crontab -l | grep agendadulibre || echo "Aucune tâche trouvée" echo "" echo "📁 Logs disponibles dans: $LOG_FILE" echo "🔍 Pour surveiller les logs: tail -f $LOG_FILE" else echo "❌ Erreur lors de l'ajout de la tâche cron" exit 1 fi else echo "❌ Configuration annulée" exit 0 fi echo "" echo "💡 Commandes utiles:" echo " - Voir les tâches cron: crontab -l" echo " - Supprimer une tâche: crontab -e" echo " - Voir les logs: tail -f $LOG_FILE" echo " - Tester manuellement: python3 $SCRIPT_PATH --api-url $API_URL --batch-size $BATCH_SIZE"