Aller au contenu

d3mone

Membres
  • Compteur de contenus

    1
  • Inscription

  • Dernière visite

À propos de d3mone

d3mone's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. Bonjour, J'ai trouvé cette idée superbe, j'ai donc repris la base du script , l'ai amélioré (moins de find et de parcours de l'arborescente des dossiers) et adapté à mes besoins. Mon script permet de : -supprimer les thumbs.db, desktop.ini et .DS_Store de votre synology. -détecte les fichiers qui n'ont pas leur place dans votre dossier de musiques et votre dossier de photos. -et vous envoies un rapport e-mail Encore merci à Johell pour cette idée ! #!/bin/sh ################################################################# # Constantes du script # # /!\ NE PAS MODIFIER /!\ # ################################################################# DATE=$(date '+%Y%m%d') EMAIL_NOT_SENT_FILE="/root/dead.letter" EMAIL_CONTENT_FILE="/tmp/$(date +%s)-message" # Contient des listes temporaires de fichiers TMPFILE="/tmp/$(date +%s)-list" ################################################################# # Options du script # # A MODIFIER EN FONCTION DE VOTRE CONFIGURATION # ################################################################# # Chemin complet contenant tous les sous-dossiers a examiner DATADIR="/volume1/" # Chemin complet du dossier contenant les musiques MUSICDIR="/volume1/music/" # Expression reguliaire qui definie les fichies mautorises dans le dossier MUSICDIR (insensible ‡ la casse) MUSICREGEX=".*\(mp3\|flac\|ogg\|wav\|wma\|m3u\|jpg\|png\)" # Chemin complet du dossier contenant les photos PHOTODIR="/volume1/photo/" # Expression reguliaire qui definie les fichies autorises dans le dossier PHOTODIR (insensible ‡ la casse) PHOTOREGEX=".*\(jpg\|png\|bmp\|nef\|raw\|arw\|avi\|mp4\|mov\|3gp\|mpg\|flv\)" # Chemin complet du dossier o˘ sauvegarder le log # /!\ Le nettoyage des anciens logs aurra lieu dans ce dossier et # tous les fichiers avec l'extension ".log" seront concernes /!\ LOGDIR="/volume1/logs/scripts/" # Nom du fichier de log sauvegarde dans LOGDIR LOGNAME=maintenance-$DATE # Nombre de jours de retention pour les logs dans LOGDIR LOGRETENTION=30 # Adresse e-mail recevant le rapport EMAILADDRESS=xxxx@xxxx.xxx ################################################################# # Constantes apres definitions des options # # /!\ NE PAS MODIFIER /!\ # ################################################################# LOGFILE=${LOGDIR}${LOGNAME}".log" ################################################################# # Purge les anciens logs et mails non envoyes # ################################################################# rm -f ${EMAIL_NOT_SENT_FILE} # Supprime les logs datant de plus d'un mois find ${LOGDIR} -name '*.log' -mtime +${LOGRETENTION} -exec rm {} \; ################################################################# # En-tÍte du fichier de log # # ICI VOUS POUVEZ AJOUTER UNE EN-TETE AU FICHIER DE LOG # ################################################################# cat > ${LOGFILE} <<EOF EOF ################################################################# # Purge des fichiers inutiles crees par Windows et Mac OS X # # Thumbs.db (Win) & Desktop.ini (Win) & .DS_Store (OS X) # # Exclus les dossiers systemes de Synology aquota.group, # # aquota.user, ceux commencant par @ et NetBackup # ################################################################# find "${DATADIR}" \( -path "${DATADIR}aquota.group" -o -path "${DATADIR}aquota.user" -o -path "${DATADIR}@*" -o -path "${DATADIR}NetBackup" \) -prune -o -type f \( -iname "thumbs.db" -o -iname "desktop.ini" -o -name ".DS_Store" \) -fprint "${TMPFILE}" -exec rm {} \; PURGE_COUNT=$(cat ${TMPFILE} | wc -l) cat >> ${LOGFILE} <<EOF Fichiers systeme inutiles supprimes (Thumbs.db, Desktop.ini, .DS_Store) : ${PURGE_COUNT} ------------------------------------------------------------------- $(cat ${TMPFILE}) EOF ################################################################# # Analyse du dossier des musiques # ################################################################# find "${MUSICDIR}" -iregex "${MUSICREGEX}" -prune -o -type f -fprint "${TMPFILE}" NON_MUSIC_COUNT=$(cat ${TMPFILE} | wc -l) cat >> ${LOGFILE} <<EOF Fichiers non musicaux dans ${MUSICDIR} (non supprimes par le script) : ${NON_MUSIC_COUNT} ------------------------------------------------------------------- $(cat ${TMPFILE}) EOF ################################################################# # Analyse du dossier des photos # ################################################################# # On exclus le dossier @eaDir qui est utilise par Synology pour les miniatures et videos compressees find "${PHOTODIR}" \( -iregex "${PHOTOREGEX}" -o -type d -name "@eaDir" \) -prune -o -type f -fprint "${TMPFILE}" NON_PHOTO_COUNT=$(cat ${TMPFILE} | wc -l) cat >> ${LOGFILE} <<EOF Fichiers n etant pas des photos dans ${PHOTODIR} (non supprimes par le script) : ${NON_PHOTO_COUNT} ------------------------------------------------------------------- $(cat ${TMPFILE}) EOF ################################################################# # Pied du fichier de log # # ICI VOUS POUVEZ AJOUTER UNE FIN AU FICHIER DE LOG # ################################################################# cat >> ${LOGFILE} <<EOF EOF ################################################################# # Envoi du fichier log par e-mail # ################################################################# ERR=0 SUBJECT="Rapport du script" #Composition de contenu de l'e-mail cat > ${EMAIL_CONTENT_FILE} <<EOF Bonjour, Ci-joint le rapport detaile de l execution du script et un resume de l operation Maintenance: Fichiers systeme inutiles supprimes (Thumbs.db, Desktop.ini, .DS_Store) : ${PURGE_COUNT} Fichiers non musicaux dans ${MUSICDIR} (non supprimes par le script) : ${NON_MUSIC_COUNT} Fichiers n etant pas des photos dans ${PHOTODIR} (non supprimes par le script) : ${NON_PHOTO_COUNT} Cordialement, EOF cat ${EMAIL_CONTENT_FILE} | nail -s "${SUBJECT}" -a ${LOGFILE} ${EMAILADDRESS} sleep 3 while [ -f ${EMAIL_NOT_SENT_FILE} ]; do if [ ${ERR} -le 2 ]; then echo Envoi du message impossible - nouvelle tentative dans 1 minute sleep 60 rm ${EMAIL_NOT_SENT_FILE} echo Nouvelle tentative en cours cat ${EMAIL_CONTENT_FILE} | nail -s "${SUBJECT}" -a ${LOGFILE} ${EMAILADDRESS} sleep 10 ERR=$(($ERR +1 )) else rm "/root/dead.letter" echo Envoi de mail abandonne suite a $((${ERR} +1)) tentatives infructueuses fi done rm ${EMAIL_CONTENT_FILE} ################################################################# # Suppression des fichiers temporaires # ################################################################# rm ${TMPFILE}
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.