|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
bjr,
je cherche une solution simple pour corriger un problème de ftp. archi actuelle : Code :
ce qui marche parfaitement depuis des années. mais par contre il arrive désormais que l'on ai des fichiers à zéro en taille (0 bytes). hors le parametre -s dans un if comme l'indique le man page de ksh Citation:
le problème : le ftp est tout de même exécuté et provoque une erreur bien sur dans la suite des traitements. alors pourquoi le test if [ -s ... est t il outrepassé ? /!\ KSH pas BASH /!\ merci |
|||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
es-tu sûr que la taille est 0?
Code :
|
||
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
note que vu que tu transfères en ASCII, il se peut qu'un fichier ait 0 après le transfer
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
oui la taille est zéro ! et c'est ça le problème.
le outrepasse ses droits et execute tout de même le contenu jusqu'au . i fait très précisément le même test que toi (un echo suivi d'un ls du fichier) à la place du ftp et il entre quand même dans le si encore le fichier de taille zéro était crée sur la machine distante ça ne poserai pas problème mais là en plus ça génère une erreur au lieu d'un fichier à zéro. D'où extrême importance de forcer le if à fonctionner. |
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Taille vraiment à 0?
peux-tu faire Code :
|
||
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
j'ai déjà fait tout ça (peut être pas dans l'ordre)
mais bon voilà pour te rassurer : Citation:
|
|
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Citation:
|
|||
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
dans le script il marche pas
que j'utilise test ou if alors qu'avant que le cas de fichier vide soit possible le script tournait bien et ce depuis des lustres (enfin 2003) donc c'est pas l'architecture du script qui gène non plus.... d'où le fait que je comprenne pas ce qui se passe. deplus c'est le même squelette de script que partout ailleurs pour cette application (ça represente en gros 100 jobs sur une 10zaine de machines) donc hors de question de faire un cas à part pour 1 job en contournant le problème... J'ai fait des tas d'essais ce matin et ça change rien J'ai même été jusqu"a faire exécuter le job ailleurs (d'un autre disque au cas ou ce serai un pb d'enregistrement du fichier script) et ce en partant d'une copie du script sur la machine de dev pour ne pas partir d'un fichier corrompu. |
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
essaye encore dans ton script de rajouter
Code :
|
||
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
oui je vais le laisser pour qu'il tourne en prod avec le ls afin de voir si il est bien à zéro au moment du run et pas mis à zéro après ....
juste au cas ou.... on verra demain matin le log d'exécution. |
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
pareil avec un des deux à zéro l'autre s'est bien uploadé.
|
|
|
00
|
|
|
#12 |
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
heu sauf erreur le test -s est pour une taille > que 0 donc le test devrait etre
if [! -s fichier ] |
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
non le test est bon puisque si le fichier n'est pas à zéro il doit exécuter le ftp
|
|
|
00
|
|
|
#14 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Citation:
|
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
exactement pareil
affiche le fichier execute le ftp il est bien entré dans la boucle if comme l'indique le log : Code :
ça parceque le fichier est à zéro et que ce if ne m'en protège pas. provisoirement j'ai fait un if sur le grep de la taille du fichier mais ça craint ....parceque c'est 1-pas propre 2-ca romp notre standard |
||
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
très étrange en effet
plutôt que grep, je ferais ls pour voir la taille Code :
|
||
|
00
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
quel est l'OS?
|
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
tru64 version 5.1b rev 2650
|
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
es-tu sûr du déroulement?
Peux-tu rajouter un set -x dans ton script pour m'aider au déboggage? |
|
00
|
Copyright © 2000-2012 - www.developpez.com