Simple mail server report

Here is a small script I wrote a few minutes ago. It gather some informations from the local machine and send them by email to the administrator (me). I plays nice with a @weekly rule in Cron.

It is easily customizable without further explanation. However, I think some enhancements should be added (multiple recipients, generic information addition etc.)

#!/bin/bash

# Configuration
SUBJECT="Server repport of `date +%m.%d.%y`"
EMAIL="root@domain.tld"
MSG="/tmp/weekreport"
touch $MSG

# Uptime
echo "Uptime" >> $MSG
echo "`uptime`" >> $MSG
echo "" >> $MSG

# Disk usage
echo "Disk usage" >> $MSG
echo "==========" >> $MSG
echo "" >> $MSG
echo "`df -h`" >> $MSG
echo "" >> $MSG

# Lighty status
echo "Lighttpd" >> $MSG
echo "========" >> $MSG
echo "`/usr/local/etc/rc.d/lighttpd status`" >> $MSG
echo "" >> $MSG

/usr/bin/mail -s "$SUBJECT" "$EMAIL" < $MSG
rm $MSG
Posted in None at January 21st, 2010. Comments.

Déplacer des mails selon un critère donné dans une architecture Mailbox

Aujourd’hui, j’ai décidé d’utiliser les services de mon hébergeur afin de gérer mes mails. Le switch se passe bien, à un détail près : les newsgroups. Je suis abonné au groupe django-developers des Google groups. Le problème, c’est que c’est environ 15 mails de plus dans mon inbox tous les jours. Sur Gmail, j’utilisais un filtre. Pourquoi pas là ?

Me voila donc partit pour lire les bases de l’utilisation de Script Sieve afin de gérer côté serveur les filtres. Après 3 minutes de recherche, voici le "script" :

if header :contains "Reply-To" "django-developers@googlegroups.com" {fileinto "Django-dev";}

Hop. Mais, quid des emails déjà reçus ? Tant qu’à les filtrer, autant tous les ranger au même endroit. Et c’est après bien 20 / 25 minutes de recherche que me voilà prêt avec un gentil petit script bash :

#!/bin/bash

cd mail/kiznet.fr/thomas/cur/
FILES="*"

for f in $FILES
do
    result=$(cat $f | grep -i reply-to)
    if [[ $result =~ "django-developers@googlegroups.com" ]]; then

        echo "Processing $f file..."
        mv $f mail/kiznet.fr/thomas/.Django-dev/cur/
    fi

done

Et voilà. Le script regarde chaque fichier présent dans l’inbox. Il regarde si il trouve un champs reply-to ayant pour valeur django-developers@googlegroups.com (marque de tous les mails venant du groupe). Si il trouve, il déplace dans le dossier approprié (Django-dev chez moi).

En espérant que ces petits scripts pourront être utiles à quelques uns. Bonne journée.

Posted in None at June 17th, 2009. Comments.

Les alias Bash

Les alias avec Bash, voila une méthode pratique ! Cette méthode permet de substituer une commande par une autre. Par exemple, si comme moi, vous avez horreur d’utiliser ls sans arguments, au lieu de taper ls -ali à chaque fois, vous pouvez définir un alias et remplacer ls par ls -ali. Voici comment nous procédons: Lancez une console et tapez, pour notre exemple: alias ls='ls -ali' dans la même console, testez ls, normalement c’est bon ;) Pour garder cet alias et l’appliquer à toutes les instances de bash, rajoutez la ligne que vous venez d’entrer pour définir l’alias dans le fichier ~/.bashrc. Et voila :)

Posted in None at November 5th, 2008. Comments.