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