3 votes

Utilisation de liens dans crontab

Puis-je utiliser un lien vers un fichier pour définir une tâche crontab dessus ?

J'ai essayé ce qui suit :

$ crontab -e
$ 10***** /chemin-vers-le-lien/

4voto

Yaron Points 12081
  • Vous devez avoir des espaces entre les *
  • Comme mentionné par @steeldriver, vous avez trop de champs

Ajouter des espaces et supprimer le * supplémentaire devrait fonctionner:

10 * * * * /chemin-vers-le-lien/

Plus d'informations - comment ajouter des tâches à cron sous Linux

Exemple : Exécuter un script de sauvegarde cron job

Si vous souhaitez exécuter un script nommé /racine/sauvegarde.sh tous les jours à 3h du matin, votre entrée crontab ressemblerait à ce qui suit. Tout d'abord, installez votre tâche cron en exécutant la commande suivante :

crontab -e

Ajoutez l'entrée suivante :

0 3 * * * /racine/sauvegarde.sh

Enregistrez et fermez le fichier.

Comment utiliser les opérateurs ?

Un opérateur vous permet de spécifier plusieurs valeurs dans un champ. Il existe trois opérateurs :

  • L'astérisque (*) : Cet opérateur spécifie toutes les valeurs possibles pour un champ. Par exemple, un astérisque dans le champ de temps de l'heure serait équivalent à chaque heure ou un astérisque dans le champ du mois serait équivalent à chaque mois.

  • La virgule (,) : Cet opérateur spécifie une liste de valeurs, par exemple : "1,5,10,15,20, 25".

  • Le séparateur (/) : Cet opérateur spécifie une valeur de pas, par exemple : "0-23/" peut être utilisé dans le champ des heures pour spécifier l'exécution de la commande toutes les deux heures. Les pas sont également autorisés après un astérisque, donc si vous souhaitez dire toutes les deux heures, utilisez simplement */2.

4voto

steeldriver Points 118154

Oui, vous pouvez utiliser un lien vers un fichier dans les crontabs - avec les mêmes conditions qu'à l'habitude, par exemple :

  • le fichier auquel le lien renvoie doit être exécutable
  • il doit pouvoir s'exécuter dans l'environnement limité fourni par cron

En fait, de nombreuses commandes exécutables courantes sont des liens symboliques - même /bin/sh lui-même :

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 janv. 11 13:58 /bin/sh -> dash

Par exemple

# m h  dom mon dow   command
40 * * * * /bin/sh -c 'echo "Bonjour de la part de $0 (qui est en fait $(readlink -f $0))"' > /home/steeldriver/cron.out

donne comme résultat

$ cat ~/cron.out
Bonjour de la part de /bin/sh (qui est en fait /bin/dash)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X