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