Crontab

Fermé
Bouba33 Messages postés 77 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 22 juin 2016 - 4 janv. 2014 à 21:35
Bouba33 Messages postés 77 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 22 juin 2016 - 6 janv. 2014 à 15:05
Bonjour à tous,

j'utilise des pi (distri rasbian, enfin assez proche de debian) depuis un petit moment et il y a une chose que je n'arrive pas à faire dans crontab.

J'ai suivi quelques tutos pour mettre en place quelques scripts et ça fonctionne bien jusque-là.
Ce genre de script sont placés dans /root et ils sont là pour "automatiser" de petites lignes de commandes que je tapais régulièrement.
Ex dans le crontab :
* 6 * * 0 /root/maj.sh

et le maj.sh a cette tête :

#! /bin/sh
sudo apt-get update
sudo apt-get upgrade -y
sudo shutdown -r now


Voilà, en gros le genre de trucs qui fonctionnent nickel.

Mais il y en a un qui me résiste et je comprend pas pourquoi il veut pas se lancer.

J'ai installé un programme dans le /home/pi/ que je vais appeler toto.
J'ai créé un script dans le /home/pi qui permet de lancer toto avec des paramètres spéciaux (pour l'exemple scripttoto.sh)
Pour suivre l'évolution de toto, j'ai mis screen qui permet de récupérer la session

Donc quand je lance manuellement la commande :
screen -S youpi sudo sh -u pi /home/pi/scripttoto.sh

ben pas de soucis, le script se lance bien dans un screen que je peux récupérer dans n'importe quelle session.

Mais si je crée un script qui résume la commande ci-dessus et que je mette ce script dans crontab, ben ça ne se lance pas.

J'ai même ajouté quelques lignes à crontab :
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/

Mais ça n'a rien fait.

J'avais pas précisé mais tout ça est dans le crontab "général". Je fais sudo crontab -e

J'ai essayé de mettre mon script récalcitrant dans un crontab utilisateur (pi en l'occurrence) mais rien de mieux.


Est-ce que quelqu'un aurait une piste pour que ça puisse fonctionner ?

Merci




3 réponses

salut,

plein de
sudo
dans un script, c'est pas "top"; écris-le avec
sudo
, et exécute-le en l'appelant avec un seul
sudo
.

un script est normalement exécutable, il n'a pas besoin d'être appelé à l'aide d'un shell.

deux trois consultations sur la recherche
crontab & screen
indiquent d'utiliser les options
-d
et
-m
de screen.

si ce n'est que pour suivre l'activité de ton script, tu ferais mieux d'envoyer une trace de ce dernier vers un fichier log(
/chemin/nomDuScript 2>&1 >fichier.log
), que tu pourrras ensuite lire "en direct" soit avec
tail -f fichier.log
, ou avec
less +F fichier.log
.
0
Bouba33 Messages postés 77 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 22 juin 2016 3
6 janv. 2014 à 14:10
Je n'ai pas réussi à lancer ce programme via crontab

Du coup, j'ai essayé différemment et ça fonctionne.

J'ai fait un script dans /etc/init.d et update-rc.d <service> default. Comme ça, il se lance au démarrage.

Et ça me suffit largement

Je laisse le post comme non résolu au cas où quelqu'un ait une idée
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
6 janv. 2014 à 14:18
Salut,

Rajoute les options
-d -m
à screen :
screen -dmS youpi sudo sh -u pi /home/pi/scripttoto.sh 


Extrait du man :
       -d -m   Start  screen  in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts.
0
Bouba33 Messages postés 77 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 22 juin 2016 3
6 janv. 2014 à 14:40
J'ai essayé mais ça ne veut pas.

Donc j'ai fait un service qui se lance au démarrage. Et si j'ai besoin, j'ai toujours mes 2 scripts qui permettent de lancer et arrêter le logiciel par ligne de commande (en utilisant le start ou stop du service).

Sinon, j'ai effectivement mis -dmS en option de screen et la commande que t'as écrite est exactement celle qui est dans le service.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
6 janv. 2014 à 14:54
Oups, je n'avais pas vu la réponse de qqcqcpq ;-[
0
Bouba33 Messages postés 77 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 22 juin 2016 3
6 janv. 2014 à 15:05
Pas de soucis, c'est toujours sympa de voir des personnes répondent ;)

Surtout quand on s'arrache les cheveux sur un truc qui fonctionne chez les autres et pas chez soi. mdr
0