[AIX] script shell qui fonctionne bizarre

script shell qui fonctionne bizarre [AIX] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 06-03-2007 à 09:41:17    

Si vous avez la soluce, je suis trés curieux de la comprendre  :jap:  
 
Au taf, le script shell suivant est exécuté toutes les nuits (via crontab) :
 

Code :
  1. DM_COMMANDS=/toto/titi/dm/bin/pouet.sh; export DM_COMMANDS
  2. . $DM_COMMANDS
  3. . $DM_RUNDMK/userlognm
  4. /DOC/toto/programme/reciproque/recipro.pl /DOC/log
  5. /DOC/toto/programme/reprod/reprod.pl /DOC/log


 
L'avant-dernière ligne du script shell concerne un script perl nommé "recipro.pl".
 
Celui-ci vient de subir une légère modification par mes soins mais, depuis que le S.I. a déployé la nouvelle version du script au même endroit, le script shell ne lance plus le programme mais il indique chaque nuit le sempiternel message d'erreur :

Code :
  1. ksh: recipro.pl:  not found

 [:sadistyk]  
 
Si je lance le programme "recipro.pl" à la main depuis un telnet, ça me donne ceci :
 

Code :
  1. >recipro.pl /DOC/log
  2. ksh: recipro.pl:  not found
  3. >./recipro.pl /DOC/log
  4. ksh: recipro.pl:  not found


 
Par contre, cette méthode là fonctionne :
 

Code :
  1. >perl recipro.pl /DOC/log


 
Sachant que les droits d'exécution sont strictement les mêmes entre l'ancienne version du script et la nouvelle version, ET que le shebang n'a pas bougé d'un iota, quelqu'un peut-il m'expliquer pourquoi, subitement, un script Perl qui autrefois se lançait rien qu'avec son nom doit maintenant être préfixé par le nom du langage de programmation ?
 
Si vous avez la moindre piste, je suis preneur parce que sinon, j'en suis réduit à faire une demande au S.I. pour qu'ils bidouillent leur script et... heu, on passe  [:zeusy]  
 


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 06-03-2007 à 09:41:17   

Reply

Marsh Posté le 06-03-2007 à 09:49:15    

chmod 755 recipro.pl :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 06-03-2007 à 09:57:15    

wedgeant a écrit :

chmod 755 recipro.pl :o


 
Heu, ouais ?  :heink:  
 

Code :
  1. >ll
  2. -rwxr-xr-x   1 basadm bas         14517 Mar  6 09:11 recipro.pl
  3. -rwxr-xr-x   1 basadm bas         10648 Jul 29 2002  recipro.pl.OLD
  4. zola:basadm(/DOC/toto/programme/reciproque)
  5. >chmod 755 recipro.pl
  6. zola:basadm(/DOC/toto/programme/reciproque)
  7. >ll
  8. -rwxr-xr-x   1 basadm bas         14517 Mar  6 09:11 recipro.pl
  9. -rwxr-xr-x   1 basadm bas         10648 Jul 29 2002  recipro.pl.OLD
  10. zola:basadm(/DOC/toto/programme/reciproque)
  11. >


 
Comme tu le vois, je viens de faire ta manip et je ne vois rien d'inchangé dans les droits du script perl.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 06-03-2007 à 10:03:53    

N'importe quoi, je n'y pige strictement rien !
 

Code :
  1. zola:basadm(/DOC/toto/programme/reciproque)
  2. >recipro.pl /DOC/log
  3. ksh: recipro.pl:  not found
  4. zola:basadm(/DOC/toto/programme/reciproque)
  5. zola:basadm(/DOC/toto/programme/reciproque)
  6. >./recipro.pl /DOC/log
  7. ksh: ./recipro.pl:  not found
  8. zola:basadm(/DOC/toto/programme/reciproque)
  9. zola:basadm(/DOC/toto/programme/reciproque)
  10. >perl recipro.pl /DOC/log


 
Sur ces 3 commandes effectuées, seule la dernière fonctionne. C'est complètement dingue ce truc !!  :heink:  
 


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 06-03-2007 à 10:17:58    

regarde voir la 1ere ligne de ce script pour voir s'il fait reference à perl :??:  
tu sais ce fameux #!/bin/bash à adapter selon ta situation

Reply

Marsh Posté le 06-03-2007 à 10:20:02    

memaster a écrit :

regarde voir la 1ere ligne de ce script pour voir s'il fait reference à perl :??:  
tu sais ce fameux #!/bin/bash à adapter selon ta situation


 
Déjà regardé  :) le shebang est celui-ci : #!/opt/bas/dm/bin/nph-perl
 
Strictement identique au shebang de l'ancienne version du script (qui fonctionne toujours d'ailleurs).
 
Je l'ai remplacé par le classique #!/usr/bin/perl et ça ne fonctionne pas non plus.


Message édité par Aricoh le 06-03-2007 à 10:20:54
Reply

Marsh Posté le 06-03-2007 à 10:22:32    

les attributs sont les mêmes?

Reply

Marsh Posté le 06-03-2007 à 10:25:32    

memaster a écrit :

les attributs sont les mêmes?


 
Qu'entends-tu par "attributs identiques" ?
 
Si tu parles des 2 versions du script Perl, oui, les attributs sont identiques : même shebang en ligne 1 dans les deux scripts, mêmes droits de lecture/écriture/exécution, etc.

Reply

Marsh Posté le 06-03-2007 à 10:31:54    

non les attributs du fichier avec la commande lsattr et chattr (cela dépend de ton systeme de fichier,
je ne sais pas si cela existe sous AIX)

Reply

Marsh Posté le 06-03-2007 à 10:41:17    

memaster a écrit :

non les attributs du fichier avec la commande lsattr et chattr (cela dépend de ton systeme de fichier,
je ne sais pas si cela existe sous AIX)


La commande chattr n'existe pas sur notre AIX (ou alors, pas dans mon path pour que je puisse la lancer).
 
Quant à lsattr, ça fait référence à des "devices" et malgré le man, je vois pas trop comment lancer ce truc là.  :heink:  

Reply

Marsh Posté le 06-03-2007 à 10:41:17   

Reply

Marsh Posté le 06-03-2007 à 10:52:44    

sinon "bidouille" ton cron pour prefixer ton script par perl.

Reply

Marsh Posté le 06-03-2007 à 10:55:38    

memaster a écrit :

sinon "bidouille" ton cron pour prefixer ton script par perl.


C'est ça que je voulais éviter  :D  
 
Je suis obligé de faire une demande au S.I. car je n'ai pas les droits d'écriture sur le script shell lancé chaque nuit.
 
Et ça m'explique pas pourquoi, sur 2 scripts identiques dans les droits d'exécution et le shebang invoqué, l'un fonctionne en l'appelant tel quel par son nom tandis que l'autre doit être préfixé par le nom du langage de programmation.
 
Mais bon, si y a pas d'issue à ce truc bizarre, je vais être contraint de contacter le S.I.  :pfff:  

Reply

Marsh Posté le 06-03-2007 à 13:51:00    

J'ai eu problème qui semble similaire ya un ptit temps.
Ca provenait du transfert des fichiers,  
Qd je les passait en smb ou nfs ca me donnais le meme type d'erreur que toi,
impossible d'invoquer l'interpreteur via le script lui meme, avec perl devant ca marchait.
Apres j'ai retransferer le fichier via ftp en ascii et la ca marchait impec.
C'est juste une piste comme ca...

Reply

Marsh Posté le 06-03-2007 à 13:58:53    

Nico5779 a écrit :

J'ai eu problème qui semble similaire ya un ptit temps.
Ca provenait du transfert des fichiers,  
Qd je les passait en smb ou nfs ca me donnais le meme type d'erreur que toi,
impossible d'invoquer l'interpreteur via le script lui meme, avec perl devant ca marchait.
Apres j'ai retransferer le fichier via ftp en ascii et la ca marchait impec.
C'est juste une piste comme ca...


 
C'est vrai qu'au boulot, on se coltine un vieux client FTP (WS_FTP Pro, version 98  :D ) mais c'est bien la première fois que j'aurais un soucis sur un transfert de script Perl.
 
Piste à creuser néanmoins, merci  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed