#!/bin/bash # Ce script n'a vocation qu'a être dans un cron. De préférence une fois par jour ou par semaine. # Récupère le dossier du script if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi echo "" date # Vérifie que Package check n'est pas déjà utilisé. timeout=7200 # Durée d'attente maximale inittime=$(date +%s) # Enregistre l'heure de début d'attente while test -e "$script_dir/../pcheck.lock"; do # Vérifie la présence du lock de Package check sleep 60 # Attend la fin de l'exécution de Package check. echo -n "." if [ $(( $(date +%s) - $inittime )) -ge $timeout ] # Vérifie la durée d'attente then # Si la durée dépasse le timeout fixé, force l'arrêt. inittime=0 # Indique l'arrêt forcé du script echo "Temps d'attente maximal dépassé, la mise à jour est annulée." break fi done echo "" if [ "$inittime" -ne 0 ]; then # Continue seulement si le timeout n'est pas dépassé. "$script_dir/lxc_upgrade.sh" # Exécute le script d'upgrade de Package check fi