[RESOLU] Envoi un rapport par mail PostFix & Mailx

Bonjour, toujours dans le but d’améliorer configuration d’un server tournant sous Debian 4.0r2 Etch, je me suis mis à la recherche d’un script me permettant d’envoyer automatique un rapport par mail de l’état des disque dur et des mises à jours à effectuer, après quelques recherches j’ai trouvé ceci:

[quote]#!/bin/bash
apt-get update
(
echo Rapport de hostname
echo Usage du disque :
if [ “$( df -h | grep hda1 | cut -c40-42)” -ge “80” ]; then
echo ESPACE DISQUE FAIBLE !!!
echo
else echo
fi
df -h
echo
echo Charge du serveur :
echo
uptime
echo
echo Mises à jour nécessaires
echo
apt-get -s upgrade
) | mail -s "Rapport du date +%e\ %B\ %Y - hostname" mail@domain.tld[/quote]

Donc je créer mon fichier .sh que j’éxecute ensuite mais j’obtient ce message d’erreur:

[quote]Nas03:/opt/Partage# sh rapport.sh
n’est pas valabledate
rapport.sh: line 20: syntax error near unexpected token )' rapport.sh: line 20:) | mail -s "Rapport du date +%e\ %B\ %Y - hostname" mail@domain.tld’[/quote]

J’ai beau cherché des solution, refaire un script tout basique genre: echo “Rapport de mon Server” | mail -s "Rapport du date +%e\ %B\ %Y" mail@domain.tld et là ça marche.

Je n’y connait vraiment rien en script je cherche j’essaye de comprendre mais là je sature ^^
Merci d’avance du coup demain :smt006

hello,

Enlève la parenthèse à la ligne 3 et dans la dernière ligne, les parenthèse servent à faire des fonctions ou des tests.

Voici ce que j’obtient après avoir enlevé les parenthèses:

hello,

Le mieux est que tu te documente sur les scripts shell et que tu essaies quelques exemples…

pas forcément la peine de réinventer la roue:

[code]roc@roc:~$ aptitude show logwatch
Paquet : logwatch
État: installé
Automatiquement installé: oui
Version : 7.3.6-1
Priorité : optionnel
Section : admin
Responsable : Willi Mann willi@wm1.at
Taille décompressée : 2220k
Dépend: perl, exim4 | mail-transport-agent
Recommande: libdate-manip-perl
Suggère: fortune-mod
Description : log analyser with nice output written in Perl
Logwatch is a modular log analyser that runs every night and mails you the results. It can also be run from command line.

The output is by service and you can limit the output to one particular service. The subscripts which are responsible for the output, mostly convert the
raw log lines in structured format.

Logwatch generally ignores the time component in the output, that means, you will know that the reported event was logged in the requested range of time,
but you will have to go to the raw log files to get the exact details.

Homepage: http://www.logwatch.org/

Tags: admin::monitoring, implemented-in::perl, role::program, security::log-analyzer, use::monitor, works-with::logfile

[/code]Il fournit dans la config par defaut un état des disques, mais il n’est que quotidien.
Pour un rapport temps réel:

[quote]roc@roc:~$ aptitude show logcheck
Paquet : logcheck
État: non installé
Version : 1.2.63
Priorité : optionnel
Section : admin
Responsable : Debian logcheck Team logcheck-devel@lists.alioth.debian.org
Taille décompressée : 266k
Dépend: adduser, exim4 | mail-transport-agent, cron (>= 3.0pl1-68), sysklogd | system-log-daemon | syslog-ng, mailx, logtail (>= 1.2.59), lockfile-progs
Recommande: logcheck-database (>= 1.2.63)
Suggère: syslog-summary
Description : mails anomalies in the system logfiles to the administrator
Logcheck was part of the Abacus Project of security tools, but this version has been rewritten.

Logcheck helps spot problems and security violations in your logfiles automatically and will send the results to you in e-mail.

Tags: admin::logging, implemented-in::shell, interface::daemon, network::server, role::program, scope::utility, use::monitor, works-with::logfile,
works-with::mail[/quote]

#!/bin/bash apt-get update echo Rapport de `hostname` > /tmp/message echo Usage du disque : >> /tmp/message if [ "$( df -h | grep hda1 | cut -c40-42)" -ge "80" ]; then echo ESPACE DISQUE FAIBLE !!! >> /tmp/message echo >> /tmp/message else echo >> /tmp/message fi df -h >> /tmp/message echo >> /tmp/message echo Charge du serveur : >> /tmp/message echo >> /tmp/message uptime >> /tmp/message echo >> /tmp/message echo Mises à jour nécessaires >> /tmp/message echo>> /tmp/message apt-get -s upgrade >> /tmp/message mail -s "Rapport du `date +%e\ %B\ %Y` - `hostname`" mail@domain.tld < /tmp/message

devrait fonctionner. C’est plus simple.

logwatch est simple aussi: tu l’installes, il fonctionne.

:smiley: :smiley: :smiley:

Un grand merci, ça marche niquel maintenant!

Problème résolu! :smt002