Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/01/2021, à 17:11

herveD

détection absence de disque dur [Resolu]

Bonjour
Suite à une aide, j'ai réussi à finaliser mon premier script. Le problème c'est que j'ai fais mes tests avec un répertoire cible.
Hors en fait il s'agit d'un disque ssd cible. Le code "if [[ ! -e $chemin_cible ]]" n'est donc peut-être pas le bon ?

Du coup la semaine dernière en l'absence de ce disque cible, je n'ai pas eu la boite de message.
Je vois dans les logs

No protocol specified
Unable to init server: Impossible de se connecter : Connexion refusée

(zenity:239905): Gtk-WARNING **: 17:00:01.381: cannot open display: :0
On fait rien du tout, car disque absent!


Le code du script :

#!/bin/bash
chemin_source="//"
chemin_cible="//"
chemin_dos_synchro="//"
msg_boite="DISQUE SYNC" 

exec > "$chemin_dos_synchro/log_synchro-vers-dd-sync" 2>&1 #log en entier
# exec 2> "$chemin_dos_synchro/log_synchro-dd-sync" #uniquement les erreurs

if [[ ! -e $chemin_cible ]] # Affiche 1 notification une seule fois si la cible n'existe jusqu'au prochain lancement d'ubuntu
then
[ -e "$chemin_dos_synchro/1-affic-dd-pny-non-dispo"  ] || 
 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus zenity --warning --title "Absence disque " --text $msg_boite
touch "$chemin_dos_synchro/1-affic-dd-pny-non-dispo"
   echo "On fait rien du tout, car disque absent!"
   exit 1
fi

# time donne la durée de la syncho qui se fait en excluant le dossier: "trash-1000"
time rsync -agv -u --exclude /.Trash-1000/ --exclude '**/cache2/**' --delete-after $chemin_source $chemin_cible 
retour_rsync=$?

if (( $ret_rsync )) #Si erreur dans syncrhonisation
then
  echo "rsync à renvoyer le code $retour_rsync ! notification"
  exit 1
else  
  echo "rsync a fini correctement son travail" 
  exit 0
fi

Dernière modification par herveD (Le 13/01/2021, à 17:25)


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#2 Le 12/01/2021, à 02:22

kamaris

Re : détection absence de disque dur [Resolu]

Déjà, il faudrait mettre

[[ ! -e "$chemin_cible" ]]

Ensuite, si le script ne contient vraiment que ça, je ne vois pas comment ça peut faire autre chose que t'afficher le message zenity : tes variables sont soit définies à des valeurs invalides, soit vides.

Hors ligne

#3 Le 12/01/2021, à 12:49

herveD

Re : détection absence de disque dur [Resolu]

J'ai changé cela mais pas de modif.
J’imagine  que le test de la présence (ou l'absence) d'un disque ssd est différent du test d'un répertorie comme je le faisais. non?


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#4 Le 12/01/2021, à 17:45

kamaris

Re : détection absence de disque dur [Resolu]

Je ne vois pas bien ce que tu essaies de faire comme je le disais plus haut.
Si tu veux savoir si un répertoire est un point de montage, il y a par exemple la commande mountpoint.
Si tu veux savoir si un disque est connecté à ta machine, tu peux regarder la sortie de lsblk

Hors ligne

#5 Le 13/01/2021, à 10:21

herveD

Re : détection absence de disque dur [Resolu]

Bonjour,
Bon j'espère que qq pourra me comprendre car je ne sais pas mieux expliqué... si 1 jour?
Peut-être faut-il "juste" que j'essaie une dernière fois que le chemin_cible est maintenant la racine d'un disque absent alors que dans mes tests c'était un répertoire (que je renommais) -> tout fonctionnait très bien
J'ai regardé lsblk mais je ne vois pas comment faire un test aussi simple que le test du répertoire.


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#6 Le 13/01/2021, à 11:04

Compte supprimé

Re : détection absence de disque dur [Resolu]

herveD a écrit :

J'ai regardé lsblk mais je ne vois pas comment faire un test aussi simple que le test du répertoire.

Bonjour herveD,
Je vois que tu n'as toujours pas finalisé ton script....
Pour répondre à ta question:
Pour vérifier si mon disque dur externe  TOSHIBA est bien monté dans le répertoire /media/fab/ :
Pour vérifier que le systeme de fichier de la partition de mon disque dur externe TOSHIBA est bien monté:

lsblk|grep "/media/fab/TOSHIBA" && echo "ok, disque dur connecté"

édit: Tournure de phrase

Dernière modification par Compte supprimé (Le 13/01/2021, à 18:21)

#7 Le 13/01/2021, à 17:01

MicP

Re : détection absence de disque dur [Resolu]

Bonjour

…Si tu veux savoir si un disque est connecté à ta machine, tu peux regarder la sortie de lsblk…

Si on  veux tester la présence d'un disque, il vaut mieux voir le retour de

smartctl -status

car si le disque ne contient aucune partition formatée, lsblk ne retournera rien concernant ce disque.

On peut aussi chercher dans un des sous-répertoires du répertoire /dev/disk/ pour voir s'il y a une référence concernant le disque recherché,
et si ce disque a été partitionné, on pourra aussi y trouver des liens associées aux fichiers de périphériques permettant d'accéder aux partitions de ce disque,
et si une ou plusieurs de ces partitions a été formatée, on trouvera des liens permettant d'accéder à son système de fichiers dans /dev/disk/by-uuid

On ne monte pas un disque, mais le système de fichiers d'une partition d'un disque.
Ni un disque (qui ne devrait pas être formaté), ni une partition non formatée ne pourront être montées puisqu'ils n'ont aucun système de fichiers.

Dernière modification par MicP (Le 13/01/2021, à 17:17)

Hors ligne

#8 Le 13/01/2021, à 17:24

herveD

Re : détection absence de disque dur [Resolu]

Salut
Vos messages m'ont fait tilter qq chose qui m'avait traversé ce week-end et celà fonctionne en ne modifiant quasiment rien cool
Je rajoute un répertoire "ss-rep" du disque cible  absent et tout refonctionne ... simplement cool

if [[ ! -e "$chemin_cible/ss-rep" ]] # Affiche 1 notification une seule fois si la cible n'existe jusqu'au prochain lancement d'ubuntu

Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne