• Serveurs
  • Script BASH : si dossier absent alors exécution de...

Salut,

J'ai du mal en ce moment, mon titre n'est sans doute pas super explicite et mon script assurément crados, j'ai besoin d'un coup de main.

Je veux check si un dossier est toujours là (montage rClone) et si ce n'est pas le cas il faut relancer des services et Dockers.

#!/bin/bash

#variables
TESTINGDIR="/home/aerya/mnt/unionfs/Films"
LOG="/home/aerya/logs/mountcheck.log"

#crontab toutes les 5 minutes
#*/5 * * * * /home/aerya/scripts//mountcheck.sh > /dev/null 2>/dev/null



if [ -d "$TESTINGDIR" ]
then
    echo "$(date "+%d.%m.%Y %T") "$TESTINGDIR" montage ok" | tee -a "$LOG"
else
    echo "$(date "+%d.%m.%Y %T") "$TESTINGDIR" montage cassé" | tee -a "$LOG" \

systemctl restart rclone.service | tee -a "$LOG" \

systemctl restart rclone-encrypt.service | tee -a "$LOG" \

systemctl restart rclone-en.service | tee -a "$LOG" \

systemctl restart plexdrive.service | tee -a "$LOG" \

systemctl restart unionfs-encrypt.service | tee -a "$LOG" \

systemctl restart unionfs.service | tee -a "$LOG" | sleep 30 \

docker restart radarr | tee -a "$LOG" \

docker restart komga | tee -a "$LOG" \

docker restart rutorrentseries | tee -a "$LOG" \

docker restart sabnzbd | tee -a "$LOG" \

docker restart sonarrv3 | tee -a "$LOG" \

docker restart medusa | tee -a "$LOG" \

docker restart plexmusic | tee -a "$LOG" \

docker restart plex | tee -a "$LOG" \

docker restart rutorrentall | tee -a "$LOG" \

echo "$(date "+%d.%m.%Y %T") montages et docker relancés" | tee -a "$LOG"
fi
echo "$(date "+%d.%m.%Y %T") ça doit être bon" | tee -a "$LOG" 

Ce truc semble fonctionnel mais je le mets en CRON toutes les 5 minutes, y'a sans doute plus propre non ? Je voulais me passer d'inotify parce que je le connais mal.

Salut, peut être avec l'utilisation de incron ce serait plus "propre" ?

https://doc.ubuntu-fr.org/incron

C'est basé sur inotify et c'est très simple à mettre en place du coup.

Je l'utilise pour relancer la mise à jour de droit sur un répertoire surveillé.

5 jours plus tard

Hello, ça donne quoi alors @Aerya tu as trouvé ton bonheur depuis ?

Je vais peut être dire une connerie mais :
if [ -d "$TESTINGDIR" ]
va toujours retourner true non ? Le répertoire existe, même s'il n'est pas monté.
Tu peux tourner ça en faisant un
mount |grep $TESTINGDIR
ou bien avec la commande mountpoint

@qo_op pas encore eu le temps de m'y remettre hélas, je donnerai des nouvelles 😉
@Merrick non le dossier cible n'existe plus, il est dans celui qui est monté.

    Aerya Ah ben oui, comme ça c'est beaucoup plus logique :-D

    Répondre…