Voilà un petit guide pour les crontabs, mais c’est quoi d’abord ?
Un Crontab est l’exécution d’une tache toutes les x heures où x jours où x semaines où x mois. Vous pourriez très bien vous en servir pour relancer des processus, un générateur de statistiques, effacement de fichiers log tout les X temps.
Visualisation
Afin d’afficher le contenu de la table cron (pour l’utilisateur courant), il suffit d’exécuter la commande suivante :
crontab -l
Modification
Afin d’éditer la table cron (pour l’utilisateur courant), il suffit d’exécuter la commande suivante :
crontab -e
Supression
Pour supprimer toutes les actions qui ont été ajouté dans le fichier crontab :
crontab -r
Quelques scripts de crontab pour IRC
Crontab sBNC :
#! /bin/sh repertoire="/home/username/sbnc" cd $repertoire if [ -f sbnc.pid ] then pid=`cat sbnc.pid` if [ `ps -p $pid | wc -l` -eq 2 ] then exit fi rm -rf sbnc.pid fi ./sbnc
Crontab Eggdrop :
#! /bin/sh # chemin du dossier de l'eggdrop: botdir="/home/username/eggdrop" # Lancement du script qui est eggdrop pour la comande ./eggdrop: botscript="eggdrop" # Pseudo du bot: botname="Game" # Fichier user qui est normalement eggdrop.user: userfile="eggdrop.user" # Fichier pid qui est normalement eggdrop.pid: pidfile="eggdrop.pid" ########## On change rien en dessous ########## cd $botdir # is there a pid file? if test -r $pidfile then # there is a pid file -- is it current? botpid=`cat $pidfile` if `kill -CHLD $botpid >/dev/null 2>&1` then # it's still going -- back out quietly exit 0 fi echo "" echo "Stale $pidfile file, erasing..." rm -f $pidfile fi if test -r CANTSTART.$botname then if test -r $userfile || test -r $userfile~new || test -r $userfile~bak then echo "" echo "Userfile found, removing check file 'CANTSTART.$botname'..." rm -f CANTSTART.$botname fi fi # test if we have run botchk previously and didn't find a userfile if test ! -f CANTSTART.$botname then echo "" echo "Couldn't find bot '$botname' running, reloading..." echo "" # check for userfile and reload bot if found if test -r $userfile then # It's there, load the bot ./$botscript exit 0 else if test -r $userfile~new then # Bot f*@!ed up while saving the userfile last time. Move it over. echo "Userfile missing. Using last saved userfile..." mv -f $userfile~new $userfile ./$botscript exit 0 else if test -r $userfile~bak then # Userfile is missing, use backup userfile. echo "Userfile missing. Using backup userfile..." cp -f $userfile~bak $userfile ./$botscript exit 0 else # Well, nothing to work with... echo "No userfile. Could not reload the bot..." echo "no userfile" > CANTSTART.$botname exit 1 fi <|!REG3XP0!> fi fi|> fi exit 0
Cron thales ( statistiques ) :
#! /bin/sh repertoire="/home/username/thales" cd $repertoire if [ -f thales.pid ] then pid=`cat thales.pid` if [ `ps -p $pid | wc -l` -eq 2 ] then exit fi rm -rf thales.pid fi ./thales
Pour faire l’exécution de ces script nous allons faire de cette manière qui est la création d’un dossier cron sur votre shell avec les scripts qui se trouvent au dessus dedans.
Ensuite dans le même dossier nous allons crée le script suivant :
# Crontab Eggdrop /home/username/cron/eggdrop # Crontab sBNC /home/username/cron/sbnc # Crontab Thales /home/username/cron/thales
Vous allez nommer le fichier shellbox ( oubliez pas de modifier les chemins des répertoires 😀 )
Pourquoi ce script ? vous allez voir maintenant en ssh tapez :
crontab -e
Pour éditer vos taches crontabs puis :
0,15,30,45 * * * * /home/username/cron/shellbox >/dev/null 2>&1
et enfin ctrl+x et O pour valider.
Voilà maintenant toutes les 15 minutes l’exécution de shellbox seras faite et ainsi il feras de même pour les autres scripts .
C’est fini et normalement c’est bon mais si y’a des erreurs vous avez qu’a me le dire dans les commentaires et je corrigerais