Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/02/2012, à 13:54

music85

Lancer un script avec Cron

Bonjour, smile
je suis sous Ubuntu 10.10, et j'ai un petit problème.
Je dois lancer chaque jour à une heure précise (entre 17:00 et 17:05) un script csh dans un terminal.
J'ai essayé d'insérer la commande dans le crontab à l'aide de la documentation, comme ceci :

/home/leo/Bureau/scripts_v/principal.csh

Avec bien sûr la date et l'heure de part et d'autre.
Seulement, à l'heure précisée (17:00), rien ne se passe.
Pouvez-vous me guider pour réussir à programmer la tâche ?
Merci ! smile

Dernière modification par music85 (Le 27/02/2012, à 13:57)


Ubuntu 10.10 - Gnome

Hors ligne

#2 Le 27/02/2012, à 14:10

sputnick

Re : Lancer un script avec Cron

Salut,

- quel sont les droits sur le fichier ?
- pourquoi utiliser csh au lieu de bash ?
- donne la ligne de crontab complete


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 28/02/2012, à 15:17

Mpok

Re : Lancer un script avec Cron

+1 sputnick.
@music85 : notons d'autre part que ta demande est "en soi" incorrecte. Un script cron ne se lance pas dans un terminal, c'est un processus indépendant.

Hors ligne

#4 Le 03/03/2012, à 16:53

music85

Re : Lancer un script avec Cron

sputnick a écrit :

Salut,

- quel sont les droits sur le fichier ?
- pourquoi utiliser csh au lieu de bash ?
- donne la ligne de crontab complete

Mpok a écrit :

+1 sputnick.
@music85 : notons d'autre part que ta demande est "en soi" incorrecte. Un script cron ne se lance pas dans un terminal, c'est un processus indépendant.

Merci à vous deux pour vos réponses ! smile
L'accès est en lecture-écriture, et le fichier peut s'exécuter comme un programme.
J'utilise csh au lieu de bash car le script requiert absolument csh, sinon il ne fonctionne pas.
Voilà la ligne en question :

00 17 * * * /home/leo/Bureau/scripts_v/principal.csh

Merci d'avance pour vos réponses !


Ubuntu 10.10 - Gnome

Hors ligne

#5 Le 03/03/2012, à 17:04

Brunod

Re : Lancer un script avec Cron

Tu as bien fait un crontab -e pour éditer ?


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#6 Le 03/03/2012, à 17:09

music85

Re : Lancer un script avec Cron

Brunod a écrit :

Tu as bien fait un crontab -e pour éditer ?

Oui, bien sûr Brunod smile


Ubuntu 10.10 - Gnome

Hors ligne

#7 Le 03/03/2012, à 19:42

sputnick

Re : Lancer un script avec Cron

Si tu a un fichier csh avec tes variables genre PATH, tes fonctions, tes réglages de terminal etc... Il faut sourcer ce fichier apres le shebang :

#!/usr/bin/env csh

source ~/.cshrc

Regardes aussi si tu peux lancer le mode debug, genre

#!/usr/bin/env csh -x

et puis il te reste à loguer la sortie dans un fichier. Si ça marche pas, montre nous alors le fichier de log...

Voici la nouvelle crontab pour gerer un log :

00 17 * * * /home/leo/Bureau/scripts_v/principal.csh >  /home/leo/Bureau/scripts_v/principal.log 2>&1

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#8 Le 04/03/2012, à 14:04

music85

Re : Lancer un script avec Cron

Voilà ce que me donne le log :

Use of uninitialized value $ENV{"EMS"} in concatenation (.) or string at ems_autorun line 30.
Use of uninitialized value $ENV{"EMS"} in concatenation (.) or string at ems_autorun line 30.
Use of uninitialized value $ENV{"EMS"} in concatenation (.) or string at ems_autorun line 30.
Use of uninitialized value $ENV{"EMS"} in concatenation (.) or string at ems_autorun line 30.
Use of uninitialized value $ENV{"EMS"} in concatenation (.) or string at ems_autorun line 30.
Can't locate EMS_info.pm in @INC (@INC contains: /strc/ems_util /strc/ems_auto /strc/ems_autorun /strc/ems_run /strc/ems_post /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ems_autorun line 33.
BEGIN failed--compilation aborted at ems_autorun line 33.
mv: `grads.ctl' and `grads.ctl' are the same file
/home/leo/Bureau/scripts_v/principal.csh: line 5: grads: command not found
/home/leo/Bureau/scripts_v/principal.csh: line 6: grads: command not found

Pourtant, lancé manuellement dans un terminal, cela fonctionne parfaitement.
ÉDIT : je vous donne le script, pour vous aider à comprendre. smile

cd /home/leo/wrfems/runs/b/
perl ems_autorun
cd /home/leo/wrfems/runs/b/emsprd/grads/
mv *.ctl grads.ctl
grads -blc /home/leo/Bureau/scripts_v/cartes_vendee.gs
/home/leo/Bureau/scripts_v/ftp.csh

Dernière modification par music85 (Le 04/03/2012, à 16:26)


Ubuntu 10.10 - Gnome

Hors ligne

#9 Le 04/03/2012, à 18:17

music85

Re : Lancer un script avec Cron

Bon, j'ai un peu tout essayé, et finalement j'ai trouvé.
Il m'a suffit de rajouter cette ligne au début de mon script csh :

#!/bin/tcsh/

Merci à tous ceux qui ont pris du temps pour m'aider smile


Ubuntu 10.10 - Gnome

Hors ligne

#10 Le 04/03/2012, à 19:29

sputnick

Re : Lancer un script avec Cron

Heu, oui, c'est la base de base le shebang, je t'en ai parllé plus haut. Le / à la fin de ton shebang est suspect.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne