ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Crontab + Tâche Planifiée

Tue Feb 11, 2020 7:35 pm

Bonjour à tous,

J'ai mis en place un Test de Reboot (Toutes les 10mn) dans le fichier Crontab mais cela n'a pas fonctionné.

Image

J'ai une erreur dans mon status du cron qui est la suivante :

Image

Merci pour votre aide

mike913
Posts: 18
Joined: Thu Dec 19, 2019 6:38 am
Location: FRANCE
Contact: Website

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 7:28 am

Bonjour,

On ne doit pas éditer directement le fichier /etc/crontab mais utiliser la commande ;

Code: Select all

crontab -e 		// pour éditer le crontab de l'utilisateur 
ou 
sudo crontab -e 	// pour éditer le crontab du root
 
pour lister les crontab on utilise la commande crontab -l
enfin on peu créer un fichier (par exemple crontab.txt) avec un éditeur de texte et utiliser la commande

Code: Select all

crontab crontab.txt
puis 
crontab -l

ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 8:27 am

Merci Mike en effet c'est mieux.

J'ai testé en éditant le fichier en mode “root“

Code: Select all

*/5 * * * * /home/itrecords/scripts/restart.sh reboot
le reboot n'a pas fonctionné.

JumpZero
Posts: 1051
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 8:50 am

Bjr,

Code: Select all

crontab -e
edite la crontab du user
donc

Code: Select all

sudo crontab -e
edite la crontab du user root. Celle qui est dans /var/spool/cron/crontabs/root
Different de la crontab system qui est /etc/crontab.
A la difference des users crontabs (/var/spool/cron/crontabs/UserName) cette dernière comprend un champ "user" comme indiqué dans le texte en tête.
/etc/crontab peut s’éditer directement, et il n'y a pas à relancer le deamon cron. Il prendra en compte la nouvelle crontab.
Les crontabs des users ne doivent pas s'editer directement mais il faut utiliser la commande "crontab -e" comme indiqué par mike913

@ITrecords ta première cronatb semble valide, peut-être y a t-il un caractère qui fout le bazar
essaies de remplacer 1-5 par * (dans un premier temps) et de mettre des tabs entre les champs à la place des espaces...
--
Jmp0

ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 9:10 am

Salut Jump,

Merci pour ces infos. Alors voici comment j'ai procédé

J'ai crée dans mon home/itrecords/

Dossier scripts et mon fichier restart.sh qui comprend les informations suivantes:

Code: Select all

*/1 * * * * /home/itrecords/scripts/restart.sh
Pour un teste toutes les 1mn

J'ai mis ensuite ma tâche avec la commande que vous m'avez indiqué:

Code: Select all

sudo crontab -e

et j'ai mis l'information suivante:

Code: Select all

@reboot root /home/itrecords/scripts/restart.sh

Mais rien ne se passe.

Merci
Last edited by ITRecords on Wed Feb 12, 2020 10:51 am, edited 2 times in total.

JumpZero
Posts: 1051
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 10:36 am

Oh! tu as peu tout mélangé.
si je lis bien ce que tu as écrit tu as crée une crontab pour le user root qui n'est pas valide car elle contient un nom de user (root. Seule /etc/crontab contient des noms de user)
de plus cette crontab s'executerais une fois et une seule quand la machine boot (le @reboot) ce n'est pas ce que tu veux
Et ton restart.sh contient une ligne qui n'est pas une commande shell donc => erreur. C'est une ligne de crontab.

Si ce que tu veux c'est rebooter toutes les 5 minutes tapes (copier coller évitera les erreurs) cette commande

Code: Select all

echo "*/5 * * * * sudo reboot" | crontab
Et pendant que tu y es supprimes la crontab du user root que tu as crée précédemment

Code: Select all

sudo crontab -r

ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 10:49 am

Ah oui j'ai fais un jolie mélange lol

Tout à fait tu as bien résumé ce que je veux faire. C'est bien un reboot que je veux définir.

Je dois y mettre la commande que tu m'a indiqué dans mon “restart.sh“ de cette façon

Code: Select all

#!/bin/bash
echo "*/2 * * * * sudo reboot" | crontab
et ensuite indiqué dans le crontab mon fichier si j'ai bien compris ?

Merci

JumpZero
Posts: 1051
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 11:08 am

ITRecords wrote:
Wed Feb 12, 2020 10:49 am
Je dois y mettre la commande que tu m'a indiqué dans mon “restart.sh“ de cette façon
Non
tu tapes la commande c'est tout.
Option: tu pourras ensuite verifier le contenu de ta crontab avec la commande "crontab -l"
tu oublies ton restart.sh

ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 11:13 am

Ok encore mieux. je n'avais pas compris comme cela.

C'est bon ça fonctionne parfaitement.

Merci pour toutes ces explications. Maitrise parfaite :)

JumpZero
Posts: 1051
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 12:25 pm

Parfait!
Le problème avec cron c'est que deux éléments portent le même nom: crontab.
La commande "crontab" et les tables "crontab" ça prête à confusion.
Je vais essayer d'expliquer un peu, autrement il y plein de doc sur cron, car cron existe depuis la nuit des temps, enfin du temps Unix ;-)
La commande "man cron" donne accès à la doc (le manuel) de cron
cron est un service, c'est un programme qui tourne en tache de fond, en terminologie Unix/GNU Linux on dit un daemon. Il est actif par défaut sur Raspbian/Debian. Mais on peut le stopper, redémarrer, voir son status etc.. si l'on souhaite (comme tout les services)la commande "systemctl status cron" nous renseigne sur l'état de ce service.
cron a pour but de gérer les taches planifiées.
Ces taches sont décrites dans des tables nommées "crontab" (les tables de cron).
Il en existe plusieurs: les crontab systeme (/etc/crontab mais aussi celles dans /etc/cron.d/   /etc/cron.daily   /etc/cron.hourly etc..)
Et les tables utilisateurs qui sont stockées dans /var/spool/cron/crontabs/ avec un fichier par utilisateur, fichier qui porte le nom de l'utilisateur.
Ces dernières tables ne doivent pas être éditées directement mais via la commande crontab (là il aurait sans doute été judicieux de trouver un autre nom à cette commande)
Le manuel d'utilisation de cette commande est accessible par la commande "man crontab"
Toutes ces tables ont plus ou moins la même syntaxe qui est décrite en tête de fichier et qui se résume à donner la date/heure de la tache et la commande qui lance la tache.
Plus ou ou moins la même syntaxe car les crontab système ont en plus un champ pour définir un nom d’utilisateur. L'utilisateur qui exécutera la commande.
Il n'est pas nécessaire de redémarrer cron après la modification d'une table c'est automagik.

Voilà donc en résumé un daemon (cron) qui lit des tables (les crontab). Les tables décrivent des taches à exécuter et donnent la périodicité de ces taches. cron exécute ces taches au moment indiqué. Pour modifier ou créer une table utilisateur il faut utiliser la commande crontab -e. Les tables systèmes sont modifiables directement.

Debian utilises Vixie cron qui est un peu différent du cron de base, ce qui est décrit ici c'est Vixie cron.

Bon cron
--
Jmp0

ITRecords
Posts: 6
Joined: Tue Feb 11, 2020 7:18 pm

Re: Crontab + Tâche Planifiée

Wed Feb 12, 2020 4:38 pm

1/ Pour les 2 éléments je te confirme que cela m'a perturber et je en savais ou taper lol

2/ Je savais que cela était un “service“ et que celui-ci tourner lors de l'installation de notre système (un bon point hein 😜)

3/ Chaque distrib à son manuel sur le fonctionnement d'un programme. Je l'avais utilisé mais ce n'était pas totalement clair pour moi comme ta pu le voir.

4/ Justement cette partie que tu m'a parlé “/var/spool/cron/crontabs/“ à rajouter automatiquement ta ligne de commande que tu m'a indiqué si j'ai bien suivi.

En faisant des recherches je suis tombé sur ce site qui est pour moi plus explicite et à la fin on y retrouve ta commande que tu m'a indiqué justement.

https://www.shellhacks.com/crontab-form ... les-linux/

En tout cas je tiens à te remercier à nouveau pour ta disponibilité et tes explications très précise sur son utilité. c'est très intéressant.

Je sais qui demandé la prochaine fois 👍🏻

Merci pour tout

Return to “Français”