URL: https://linuxfr.org/forums/general-general/posts/udev-et-envoie-de-mail Title: Udev et envoie de mail Authors: Philippe M Date: 2015年10月20日T11:17:54+02:00 License: CC By-SA Tags: udev Score: 1 Bonjour, J'ai un script qui se lance au branchement d'un disque usb, à la fin du script j'envoie une notification par mail qui contient différentes informations avec cette ligne : Règle Udev ```sh SUBSYSTEM!="block|scsi", GOTO="usb_end" ENV{DEVTYPE}=="partition", GOTO="usb_end" ACTION!="add", GOTO="usb_end" ACTION=="add",ATTRS{busnum}!="",ATTRS{devnum}!="",ATTRS{idProduct}=="10b8",ATTRS{idVendor}=="1058",ATTRS{serial}=="575841314535344D434C3632",RUN+="/usr/bin/sh /root/launch-backup.sh" ACTION=="add",ATTRS{busnum}!="",ATTRS{devnum}!="",ATTRS{idProduct}=="0748",ATTRS{idVendor}=="1058",ATTRS{serial}=="575838314139324C31353233",RUN+="/usr/bin/sh /root/launch-backup.sh" ACTION=="add",ATTRS{busnum}!="",ATTRS{devnum}!="",ATTRS{idProduct}=="1078",ATTRS{idVendor}=="1058",ATTRS{serial}=="57584631453135435348584C",RUN+="/usr/bin/sh /root/launch-backup.sh" LABEL="usb_end" ``` launch-backup.sh n'est qu'un script intermédiaire qui passe par "at" pour contourner le timeout des règles udev script de backup ```sh #!/bin/bash BIN="/usr/bin" DIRLOG="/var/log/backup.log" LOGGER="/usr/bin/logger" ${BIN}/sleep 10 NBRSYNC=`${BIN}/ps faux | ${BIN}/grep rsync | ${BIN}/wc -l` if [ ${NBRSYNC} -eq 2 ] then ${BIN}/echo "Début de la sauvegarde"> ${DIRLOG} ${BIN}/echo `${BIN}/date`>> ${DIRLOG} ${LOGGER} -i -t backup -p local0.info "Début de la sauvegarde" ${LOGGER} -i -t backup -p local0.info "Montage du disque" MOUNT=`${BIN}/mount /dev/sauvegardeUSB /media/usb>> ${DIRLOG} 2>&1` if [ ${?} -ne 0 ] then ${LOGGER} -i -t backup -p local0.err "Erreur lors du montage du disque, voir le fichier ${DIRLOG}" SUBJECT="ERREUR" else RSYNC=`${BIN}/rsync -ah --stats /media/backup/* /media/usb>> ${DIRLOG} 2>&1` if [ ${?} -ne 0 ] then ${LOGGER} -i -t backup -p local0.err "Erreur lors de la copie des fichiers, voir le fichier ${DIRLOG}" SUBJECT="ERREUR" fi ${LOGGER} -i -t backup -p local0.info "Démontage du disque" UMOUNT=`${BIN}/umount /media/usb>> ${DIRLOG} 2>&1` if [ ${?} -ne 0 ] then ${LOGGER} -i -t backup -p local0.err "Erreur lors du démontage du disque, voir le fichier ${DIRLOG}" SUBJECT="ERREUR" fi fi ${BIN}/echo "---------------------">> ${DIRLOG} ${BIN}/echo `date`>> ${DIRLOG} ${BIN}/echo "Fin de la sauvegarde">> ${DIRLOG} ${LOGGER} -i -t backup -p local0.info "Fin de la sauvegarde" ${BIN}/cat ${DIRLOG} | ${BIN}/mail -s "Rapport de sauvegarde ${SUBJECT}" MONMAIL fi ``` Quand je lance le script à la main en root le résultat du cat en bien dans le contenue du mail mais lorsque c'est la règle udev qui m'envoie le mail le contenue est en pièce jointe dans un format binaire. Je vois pas trop la différence qu'il peut avoir entre ces deux contextes ?

AltStyle によって変換されたページ (->オリジナル) /