Bonjour,
Je souhaites ajouter un cron job par script à un utilisateur qui n'a jamais eu de crontab.
1) Si l'utilisateur n'a jamais eu de crontab, le premier crontab -e demande de choisir un éditeur.
Est-ce que cette demande risque de poser la question lors du déroulement de mon script ? Chose que je ne souhaites pas.

2) Donc je souhaites mettre dans le crontab :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
# REBOOT
# &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron
@reboot bash /home/toto/reboot.sh &> /dev/null
Donc mettre dans mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
crontab <(crontab -l ; echo "# REBOOT")
crontab <(crontab -l ; echo "# &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron")
crontab <(crontab -l ; echo "@reboot bash /home/toto/reboot.sh &> /dev/null")
3) TESTS :
Ca, ca ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
crontab <(crontab -l ; echo "# REBOOT")
donne sans rien faire d'autre l'erreur :
/dev/fd/63: Not a regular file
Par contre, ca, ca semble marcher:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
(crontab -l ; echo "# REBOOT") 2>&1 | grep -v "no crontab" | uniq | crontab -
(crontab -l ; echo "# &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron") 2>&1 | grep -v "no crontab" | uniq | crontab -
(crontab -l ; echo "@reboot bash /home/francis/reboot.sh &> /dev/null") 2>&1 | grep -v "no crontab" | uniq | crontab -
Qu'en pensez-vous ?

Comment traduire en français ce que cela fait ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(crontab -l ; echo "mon job") 2>&1 | grep -v "no crontab" | uniq | crontab -
********
2>&1 : ?
-v : "Invert the sense of matching, to select non-matching lines." ???
grep -v "no crontab" : qu'est ce que cela veut dire, pourquoi ca marche avec ca ? je ne comprends pas la logique de cette portion ? Ce grep ne renvoie qu'un vrai ou faux ?
uniq : ?
crontab - ?
********
D'avance merci pour votre aide éventuelle