Script de suppression de vieux dossiers et fichiers

Le script est en shell, il permet de supprimer des fichiers et des dossiers d’un répertoire selon une date d’ancienneté.

Un seul paramètre est passé en argument au lancement du script: le nombre de jours (60 jours par défaut)

#!/bin/sh
date=`date +%d.%m.%Y`
log=delete_incoming_error.$date.log
dir=/fs/incoming

if [ $1 ]
then
 day=$1
else
 day=60
fi
find $dir -name "*" -mtime +$day -exec rm -rf "{}" 2>/var/log/ $log \;

Ce script est utilisé en cron tous les jours, il faut le placer dans le répertoire:

/etc/cron.daily

Le nom du fichier doit suivre le standart LSB

Pour vérifier que le fichier sera bien exécute utiliser « run-parts »

run-parts --test /etc/cron.daily

Crontab

Le démon « cron » est un processus qui exécute des commandes à une date et une heure spécifique.

Pour les lister les jobs définies dans la cron:

crontab -l

Pour éditer:

crontab -e

Le fichier de conf est « /etc/cronlog.conf » (pour AIX) cron.conf pour divers systèmes Linux

Pour modifier la gestion des jobs dans AIX vérifier le fichier de conf « /var/adm/cron/queuedefs » et pour les logs: /var/adm/cron/logs

Comment l’utiliser:

* * * * * command
^ ^ ^ ^ ^  ^
| | | | |  |-> la commande a exécuter
| | | | |-> le jour de la semaine
| | | |-> le mois (1-12)
| | |-> le jour (1-31)
| |-> l'heure (0-23)
|-> les minutes (0-59)

Pour les jours de la semaine : 0 = dimanche/ 1= lundi, etc

Exemple: sauvegarde système tous les premiers dimanches du mois à 6h30

30 06 1-7 * 0 /usr/bin/mksysb  -m -e  -V -i -X  /dev/rmt0 > /tmp/save.log