Bonjour à tous,

Alors voilà j'ai trouvé ici même un petit script pour envouyer un mail listant les nouveaux fichiers téléchargés sur mon serveur (trouvé ici : https://mondedie.fr/d/7051-Script-listant-les-torrents-telecharges-ce-jour)

Voilà à quoi ressemble mon script à l'heure actuelle :
https://paste.mondedie.fr/?ea98184b73337790#TVZuG7Fp0hCVatQmyvUwpTtb3TIapLe5AJeXgOLwvCk=

Maintenant que le script est en place et fonctionnel, j'aimerais bien l'améliorer de telle sorte que #⃣
- Si un dossier n'a pas eu de nouveaux torrents télechargés alors ils n'apparaissent pas dans le mail
- Si aucun des dossier n'a pas eux de nouveaux torrents téléchargés alors qu'il n'y est pas de mail qui parte (inutile d'envoyer un mail vide...).

Cela doit être faisable mais je ne sais pas comment le formater.

Je vous remercie.

Cordialement.

Hello le script telle qu'elle ne pourra pas faire ca.
Il faudrait faire une fonction qui retourne le resultat si il y en a un, et rien si il n'y en a pas.
et un if else pour sendmail

Merci pour la réponse

Tu pourrais m'aider à mettre ça en place ? Pour tout dire je ne suis pas calé en script : ce que j'ai fais c'est plus du bricolage lol

Meric

l'idée est rigolote, j'aime bien chercher pour ce genre de connerie ! 😃
pas oublier de modifier mail@mail.com en bas 😉

EDIT 15h40: peut-être mieux si j'oublie pas des double quote partout et un variable mail & user aussi:
https://paste.mondedie.fr/?c1e4dff803a72321#DmU96ezMMpod8Oro21zFR1ya5q9gvX5EnrpDMlff/5Y=

EDIT 16H15: là, ça doit être propre après vérif shellcheck, ça nous dit toujours pas si ça marche mais...
https://www.ratbox.nl/paste/?dc5ba9cccda5699e#wQbbKiGVtFUfLdizMIQ5RQldvVrgUlX6Q3Fqflnq/XI=

Je mets le truc ici pour ne pas que ça se perde:

#!/bin/bash
#

USER="toto"
MAIL="mail@mail.com"

###############################################

REP_FILMS="/home/$USER/torrents/Films"
REP_LIVRES="/home/$USER/torrents/Livres"
REP_LOGICIELS="/home/$USER/torrents/Logiciels"
REP_MUSIQUES="/home/$USER/torrents/Musiques"
REP_SERIES="/home/$USER/torrents/Séries"

DATE=$(date +"%d/%m/%y")
FIC_MAIL="/tmp/mail.body"
ENVOI="0"

# Usage: RECHERCHE "dossier" "maxdepth" "catégorie" / RECHERCHE "$REP_FILM" "2" "Films"
function RECHERCHE ()
{
FICHIER=$(find "$1" -maxdepth "$2" -type f -ctime -1)
if test -n "$FICHIER" ; then
	# Si commande renvoi résultat on écrit dans le fichier
	echo -e "\n$3 : " >> "$FIC_MAIL" # Titre
	echo "$FICHIER" >> "$FIC_MAIL" # Torrents
	ENVOI="$((ENVOI+1))" # On égraine le compteur
fi
}

echo -e "Bonjour.\n\nVoici les nouveaux ajouts du $DATE" > "$FIC_MAIL"
RECHERCHE "$REP_FILMS" "2" "Films"
RECHERCHE "$REP_LIVRES" "1" "Livres"
RECHERCHE "$REP_LOGICIELS" "1" "Logiciels"
RECHERCHE "$REP_MUSIQUES" "1" "Musiques"
RECHERCHE "$REP_SERIES" "3" "Series"

# Envoi si compteur différent de 0
if [ "$ENVOI" -ne 0 ]; then
	sendmail "Nouveaux ajouts" "$MAIL" < "$FIC_MAIL"
	exit
else
	exit
fi

Yep ça marche pas mal, bravo et merci

Par contre (je passe en mode chiant lol) est-ce que tu penses que c'est possible de changer la chaine de la commande find en fonction du dossier (par exemple pour n'afficher que les fichiers pour la catégorie Séries, et que les dossiers pour la catégorie Musiques ?

Encore merci

Tu dois pouvoir gerer ça en faisant deux function, donc à la place de RECHERCHE et tu fais sur le même modele un truc qui ressemble à ça:

function SEARCH_FILE ()
{
FICHIER=$(find "$1" -maxdepth "$2" -type f -ctime -1)
if test -n "$FICHIER" ; then
	# Si commande renvoi résultat on écrit dans le fichier
	echo -e "\n$3 : " >> "$FIC_MAIL" # Titre
	echo "$FICHIER" >> "$FIC_MAIL" # Torrents
	ENVOI="$((ENVOI+1))" # On égraine le compteur
fi
}
function SEARCH_DIR ()
{
FICHIER=$(find "$1" -maxdepth "$2" -type d -ctime -1)
if test -n "$FICHIER" ; then
	# Si commande renvoi résultat on écrit dans le fichier
	echo -e "\n$3 : " >> "$FIC_MAIL" # Titre
	echo "$FICHIER" >> "$FIC_MAIL" # Torrents
	ENVOI="$((ENVOI+1))" # On égraine le compteur
fi
}

Que tu appelles dans l'ordre que tu veux comme l'autre en choisisant dir ou file comme t'as besoin:

SEARCH_FILE "$REP_SERIES" "3" "Series"
SEARCH_DIR "$REP_MUSIQUES" "1" "Musiques"

Je suis pas sure mais ça devrait le faire...
Pour la commande find je ne sais pas si elle est bonne comme ça ou pas je connais pas trop, à toi de fourgonner avec ça comme piste.
Ex.

Okey...

Je testerais ça et je viendrais faire un retour 😉

Merci beaucoup

Bonjour tout le monde.

Alors j'ai fais mumuse avec le script et ça fonctionne impeccable.

Pour ma part c'est résolu, merci beaucoup

Répondre…