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"
|