parent
83db4f1009
commit
fec398a851
|
@ -6,19 +6,22 @@ function display_help() {
|
|||
|
||||
USAGE
|
||||
$scriptname [options] /path/to/crontab
|
||||
$scriptname -l [/path/to/crontab]
|
||||
|
||||
Ce script doit normalement être lancé toutes les minutes par une tâche cron. A
|
||||
chaque lancement, il examine quels scripts doivent être exécutés dans le fichier
|
||||
crontab spécifié. Ce fichier est composé de lignes d'une des formes suivantes,
|
||||
qui sont analysées et traitées dans l'ordre:
|
||||
La première forme du script doit normalement être lancé toutes les minutes par
|
||||
une tâche cron. Utiliser l'option --install pour ajouter automatique la ligne
|
||||
dans la crontab de l'utilisateur.
|
||||
|
||||
A chaque lancement du script, il examine quels scripts doivent être exécutés
|
||||
dans le fichier crontab spécifié. Ce fichier est composé de lignes d'une des
|
||||
formes suivantes, qui sont analysées et traitées dans l'ordre:
|
||||
|
||||
# commentaire ignoré
|
||||
var=\"initialiser une variable\"
|
||||
minutes hours days months dows command [args]
|
||||
|
||||
Quelles que soient les lignes qui sont sélectionnées pour le lancement, elles
|
||||
sont garanties de s'exécuter sériellement dans l'ordre du fichier, d'où le nom
|
||||
de ce script.
|
||||
sont garanties de s'exécuter dans l'ordre du fichier, l'une après l'autre.
|
||||
|
||||
Certaines extensions par rapport à la syntaxe de crontab sont autorisées. Il est
|
||||
en particulier possible de spécifier plusieurs planifications pour une seule
|
||||
|
@ -39,12 +42,22 @@ enlèvent /opt/rogue au PATH:
|
|||
|
||||
|
||||
OPTIONS
|
||||
--install
|
||||
-A, --install
|
||||
Installer une planification toutes les minutes de ce script dans la
|
||||
crontab de l'utilisateur.
|
||||
--uninstall
|
||||
crontab de l'utilisateur. L'argument /path/to/crontab est requis.
|
||||
-R, --uninstall
|
||||
Désinstaller la planification toutes les minutes de ce script du crontab
|
||||
de l'utilisateur.
|
||||
de l'utilisateur. L'argument /path/to/crontab est requis, et seule cette
|
||||
instance est désinstallée le cas échéant.
|
||||
-l, --list
|
||||
Lister les contenus des fichiers crontab dont l'exécution a été
|
||||
planifiée avec --install
|
||||
Si /path/to/crontab est spécifié, ne lister le contenu de ce fichier que
|
||||
si et seulement si son exécution a été planifiée.
|
||||
-n, --fake
|
||||
Afficher au lieu de les exécuter les commandes qui doivent être lancées
|
||||
|
||||
OPTIONS AVANCEES
|
||||
--lock LOCKFILE
|
||||
Inscrire dans le fichier spécifié des informations permettant d'éviter
|
||||
les invocations simultanées de ce script. Si selon ce fichier, le script
|
||||
|
@ -58,8 +71,6 @@ OPTIONS
|
|||
--lockdelay LOCKDELAY[=$LOCKDELAY]
|
||||
Changer le nombre d'heures pendant lesquelles on autorise le script a
|
||||
verrouiller l'exécution avant d'afficher un avertissement.
|
||||
-n, --fake
|
||||
Afficher au lieu de les exécuter les commandes qui doivent être lancées
|
||||
-c, --continuous
|
||||
Par défaut, ce script s'arrête à la première commande qui retourne avec
|
||||
une code d'erreur. Avec cette option, ce script ne s'arrête jamais, bien
|
||||
|
@ -88,15 +99,36 @@ continuous=
|
|||
stopec=101
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
--add,--install action=install \
|
||||
--remove,--uninstall action=uninstall \
|
||||
-A,--add,--install action=install \
|
||||
-R,--remove,--uninstall action=uninstall \
|
||||
--lock: lockfile= \
|
||||
--lockdelay: lockdelay= \
|
||||
-n,--fake fake=1 \
|
||||
-c,--continuous continuous=1 \
|
||||
-k:,--stop: stopec=1 \
|
||||
-l,--list action=list \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
if [ "$action" == "list" ]; then
|
||||
crontab="$1"; shift
|
||||
[ -n "$crontab" ] && crontab="$(abspath "$crontab")"
|
||||
|
||||
array_from_lines ctfiles "$(crontab -l 2>/dev/null | awkrun script="$script" '$6 == script { print $7 }')"
|
||||
found=
|
||||
for ctfile in "${ctfiles[@]}"; do
|
||||
if [ -z "$crontab" -o "$ctfile" == "$crontab" ]; then
|
||||
found=1
|
||||
etitle "$(ppath "$ctfile")"
|
||||
cat "$ctfile"
|
||||
eend
|
||||
fi
|
||||
done
|
||||
if [ -n "$crontab" -a -z "$found" ]; then
|
||||
ewarn "$(ppath "$crontab"): non planifié"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
crontab="$1"; shift
|
||||
[ -n "$crontab" ] || die_with "Vous devez spécifier le fichier crontab" display_help
|
||||
[ -f "$crontab" ] || die "$crontab: fichier introuvable"
|
Loading…
Reference in New Issue