oedb-backend/extractors/setup_cron.sh
2025-10-04 19:26:00 +02:00

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"