web-dev-qa-db-fra.com

Comment utiliser @reboot dans /etc/cron.d

Je migre les fichiers de contrôle d'utilisateurs individuels vers /etc/cron.d, car cela permettrait une sauvegarde, une restauration et un contrôle de version corrects.

Jusqu'à présent, si j'ai bien compris, la seule différence entre les crontabs de l'utilisateur et les autres est qu'il faut spécifier l'utilisateur comme 6ème colonne. Est-ce vrai?

Et ma question principale, pour laquelle je n'ai trouvé aucune réponse partout sur Internet: quelle est la bonne façon d'utiliser @reboot dans /etc/cron.d ou/etc/crontab?

quelque chose comme @reboot root command?

14
hyperknot

De la page de manuel de crontab :

Emplois dans /etc/cron.d/

Les travaux dans cron.d sont des travaux système, utilisés généralement par plusieurs utilisateurs. C'est la raison pour laquelle le nom de l'utilisateur est nécessaire. MAILTO sur la première ligne est facultatif.

EXEMPLE DE JOB IN /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

C’est l’ensemble de la section sur crontab dans /etc , donc je suppose que l’inclusion de l’utilisateur sous le nom duquel le travail est exécuté est bien le = différence.

Toujours à partir de la même page de manuel:

Ces "pseudonymes" spécifiés sont pris en charge. Ils remplacent les 5 champs de date et d'heure initiaux et sont précédés du caractère "@":

@reboot: Exécuter une fois après le redémarrage.

Ainsi, vous déduisez que la bonne façon d’utiliser @ reboot est

   @reboot user_name command

est correct.

17
MariusMatutiae

Dans le cas de /etc/crontab, il vous suffit d’ajouter ces lignes.

@reboot        command

Où commande peut être n’importe quel script ou un seul fichier.

1
Krishna