98 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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"
 | 
