Script de test qui ne marche pas
Résolu/Fermé
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
-
1 août 2008 à 11:36
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 1 août 2008 à 17:16
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 1 août 2008 à 17:16
A voir également:
- Script de test qui ne marche pas
- Test performance pc - Guide
- Script vidéo youtube - Guide
- Test composant pc - Guide
- Redmi note 13 5g test - Accueil - Téléphones
- Test performance pc gratuit - Accueil - Utilitaires
17 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 11:42
1 août 2008 à 11:42
Salut,
Et il est où le "if" ???
Et il est où le "then" ???
Et il est où le "if" ???
Et il est où le "then" ???
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 11:45
1 août 2008 à 11:45
pardon mon copier coller a amputé mon script :
#!/bin/bash
#debut script
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# fin de script
#!/bin/bash
#debut script
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# fin de script
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 11:50
1 août 2008 à 11:50
Ok, et c'est quoi qui marche pas ?
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 11:52
1 août 2008 à 11:52
Le fichier est envoyé quelle que soit sa taille :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 11:56
1 août 2008 à 11:56
Exécute ton script en mode de débogage "set -xv" (à rajouter après la ligne shebang) pour voir où ça merdouille...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 août 2008 à 12:06
1 août 2008 à 12:06
Salut,
tu peux inserer dans ton script un
echo $taille pour voir
tu peux inserer dans ton script un
echo $taille pour voir
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 14:06
1 août 2008 à 14:06
il renvoi 11,
Je viens d'isoler mon probleme : la deuxieme instruction : le test sur la taille du fichier se lance avant la fin du compactage, le fichier n'existe donc pas.... Aurais tu une idée sur lal manière de contourner cela ?
Je viens d'isoler mon probleme : la deuxieme instruction : le test sur la taille du fichier se lance avant la fin du compactage, le fichier n'existe donc pas.... Aurais tu une idée sur lal manière de contourner cela ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 12:07
1 août 2008 à 12:07
Juste un truc... "$filename1.tar.gz" est défini où ?
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 12:25
1 août 2008 à 12:25
Il est défini comme ceci
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
soit le script complet :
#!/bin/bash
#debut script
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# fin de script
maintenant mon fichier ne part plus alors qu'il fais 11 MO :
line 70: [: : integer expression expected
le fichier est trop lourd, merci de supprimer des Shapefiles.
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
soit le script complet :
#!/bin/bash
#debut script
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# fin de script
maintenant mon fichier ne part plus alors qu'il fais 11 MO :
line 70: [: : integer expression expected
le fichier est trop lourd, merci de supprimer des Shapefiles.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 13:31
1 août 2008 à 13:31
Bon, soit tu nous affiches ton script en entier, ou bien tu lances le débogage et tu vois par toi même, on n'est pas devin :
line 70: [: : integer expression expected elle ressemble à quoi cette ligne ???
line 70: [: : integer expression expected elle ressemble à quoi cette ligne ???
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 14:04
1 août 2008 à 14:04
bonjour, j'auirais posté le script entier ainsi que le résultat du débug après execution s'il n'avait comporté un grnad nombre de variable compromettante.
Cette ligne apparait en retour une fois les scripts exécutés : avant le dernier echo.
Au début le script semblait focntionner une fois sur deux, mais je viens de comprendre :
Mon script :
- archive le contenu d'un répertoire dans un fichier $filename1.tar.gz
- envoie $filename1.tar.gz s'il est inférieure a 100Mo
sinon affiche le message : "fichier trop lourd"
Le probleme c'est que lors de l'execution de la deuxieme instruction, le fichier n'est pas encore créer : en l'absence de fichier, il n'envoie pas : il execute le else et affiche le message : fichier trop lourd...
pour le message d'erreur line 70: [: : integer expression expected /
Je pense qu'elle a à voir avec ce cas.
Auriez vous une idée pour etre sur que la seconde instruction ne se lance que si le fichier existe. Helas je ne peux pas laisser le fichier a la racine.
merci pour votre aide
Cette ligne apparait en retour une fois les scripts exécutés : avant le dernier echo.
Au début le script semblait focntionner une fois sur deux, mais je viens de comprendre :
Mon script :
- archive le contenu d'un répertoire dans un fichier $filename1.tar.gz
- envoie $filename1.tar.gz s'il est inférieure a 100Mo
sinon affiche le message : "fichier trop lourd"
Le probleme c'est que lors de l'execution de la deuxieme instruction, le fichier n'est pas encore créer : en l'absence de fichier, il n'envoie pas : il execute le else et affiche le message : fichier trop lourd...
pour le message d'erreur line 70: [: : integer expression expected /
Je pense qu'elle a à voir avec ce cas.
Auriez vous une idée pour etre sur que la seconde instruction ne se lance que si le fichier existe. Helas je ne peux pas laisser le fichier a la racine.
merci pour votre aide
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 14:24
1 août 2008 à 14:24
commande1 && commande2ou un truc du genre :
while : do if [ -f "$filename1.tar.gz" ]; then break else echo "Compactage en cours..." sleep 5 continue fi done;-))
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 14:40
1 août 2008 à 14:40
oui j'ai essayé wait, je commençait a regarder du cote de sleep en me disant que je ne peux pas connaitre le temps de compactage par avance, je me demandais si on peux passer d'autres argument que le temps.
J'ai reposté a ce sujet en me disans que la question du temps d'execution pouvait en interesser d'autre sur le theme sleep and wait....
Je tes cela derechef.
merci
J'ai reposté a ce sujet en me disans que la question du temps d'execution pouvait en interesser d'autre sur le theme sleep and wait....
Je tes cela derechef.
merci
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 15:15
1 août 2008 à 15:15
J'ai integré ton de différentes façon : avant, apres ou en integrant le tar : toujorus le mm résultat : l'envoi ne se fait pas et le message comme quoi le fichier est trop gros ressort.
c'est un truc de fou !
c'est un truc de fou !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 15:32
1 août 2008 à 15:32
Sans le débogage ou sans le script dans sa totalité, on ne peut pas deviner où ça coince ;-\
Donc soit tu vires (remplaces) les variables compromettantes et tu postes ton script, soit tu t'en sors seul...
Tiens une variante à placer entre la commande "tar" et le calcul de la taille :
Donc soit tu vires (remplaces) les variables compromettantes et tu postes ton script, soit tu t'en sors seul...
Tiens une variante à placer entre la commande "tar" et le calcul de la taille :
#! /bin/bash A="." B="." while : do if [ -f "$filename1.tar.gz" ]; then echo "Compactage terminé..." break else clear echo "Compactage en cours..${A}" A="${A}${B}" sleep 2 continue fi doneA essayer...
vitcz
Messages postés
46
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
8 septembre 2008
3
1 août 2008 à 15:47
1 août 2008 à 15:47
J'avais finalement bien compris ton script et c'est bien là que j'ai intégré le dernier... rien a faire, résultat invariable et pourtant je vérifie bien que les changments soient pris en compte et que tout sois raffarichis.
J'aité un sleep de 5000 pour voir et aussi un genre de Wait until tar cfz monfiochier.tar.gz $1; do.. rien non plus : mon od complet :
#!/bin/bash
#set -xv
#A modifier suivant les besoins
hostftp=255.255.255.255
dossierftp=/var/ftp/user1
racine=/var/....
dossier_shapefile=/var/...
dossier_export=/var/....
dossier_bckup=/var/......
dossier_tmp=/var/....
#dossier_shapefile_destination=/....a...Completer
fichier_addlist=/var/...
fichier_delllist=/var/......
scriptupdate=/var/....
scriptrestore=/var/....
fichier_database=/var/.....
#---------------------------------------------
#---------------------------------------------
heures=$(date +%H)
minutes=`date +%M`
datstr1=$(date +%Y_%m_%d_)
yesterday=`date --date '1 day ago' +%Y%m%d`
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
filename_yesterday=$(date --date '1 day ago' +"%Y_%m_%d_$(basename shapefile_list)")
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
#filename2=$(date +"%Y_%m_%d_$(basename shapefiles)")
#filename3=$(date +"%Y_%m_%d_$(basename add)")
#filename4=$(date +"%Y_%m_%d_$(basename dell)")
#---------------------------------------------
#debut du script
#déplace les fichiers listés dans le repertoire d'export
egrep -v '^(#| *$)' $fichier_addlist | while read line; do if [ -f "$dossier_shapefile/$line" ]; then mv "$dossier_shapefile/$line" "$dossier_export/$line" ; fi; done
#deplacement du fichier de la veille dans /bckup
mv $filename_yesterday.tar.gz $dossier_bckup
#deplacement du fichier addlist.txt dans le repertoire d export
cp $fichier_addlist $dossier_export
#copie du fichier delllist.txt dans le repertoire d export
cp $fichier_delllist $dossier_export
#compression du fichier pour exportation
tar cfz $filename1.tar.gz $dossier_export/* -R -v
#envoi ftp du fichier
#creation prealable du .netcr dans /root pour l'autorisation de l'utilisateur
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# confirmation de transfert
echo "FIN DU TRANSFERT VERS ---.---.---.---"
si je lance deux fois de suite le script l'envoi se fait bien, le probleme c'est qu'a terme je vais virer le fichier une fois l'envoi réalisé.... doncle probleme se reproduira...
J'aité un sleep de 5000 pour voir et aussi un genre de Wait until tar cfz monfiochier.tar.gz $1; do.. rien non plus : mon od complet :
#!/bin/bash
#set -xv
#A modifier suivant les besoins
hostftp=255.255.255.255
dossierftp=/var/ftp/user1
racine=/var/....
dossier_shapefile=/var/...
dossier_export=/var/....
dossier_bckup=/var/......
dossier_tmp=/var/....
#dossier_shapefile_destination=/....a...Completer
fichier_addlist=/var/...
fichier_delllist=/var/......
scriptupdate=/var/....
scriptrestore=/var/....
fichier_database=/var/.....
#---------------------------------------------
#---------------------------------------------
heures=$(date +%H)
minutes=`date +%M`
datstr1=$(date +%Y_%m_%d_)
yesterday=`date --date '1 day ago' +%Y%m%d`
filename1=$(date +"%Y_%m_%d_$(basename shapefile_list)")
filename_yesterday=$(date --date '1 day ago' +"%Y_%m_%d_$(basename shapefile_list)")
taille=$(du -sm $filename1.tar.gz |awk '{print $1}')
#filename2=$(date +"%Y_%m_%d_$(basename shapefiles)")
#filename3=$(date +"%Y_%m_%d_$(basename add)")
#filename4=$(date +"%Y_%m_%d_$(basename dell)")
#---------------------------------------------
#debut du script
#déplace les fichiers listés dans le repertoire d'export
egrep -v '^(#| *$)' $fichier_addlist | while read line; do if [ -f "$dossier_shapefile/$line" ]; then mv "$dossier_shapefile/$line" "$dossier_export/$line" ; fi; done
#deplacement du fichier de la veille dans /bckup
mv $filename_yesterday.tar.gz $dossier_bckup
#deplacement du fichier addlist.txt dans le repertoire d export
cp $fichier_addlist $dossier_export
#copie du fichier delllist.txt dans le repertoire d export
cp $fichier_delllist $dossier_export
#compression du fichier pour exportation
tar cfz $filename1.tar.gz $dossier_export/* -R -v
#envoi ftp du fichier
#creation prealable du .netcr dans /root pour l'autorisation de l'utilisateur
if [ "$taille" -lt "100" ]; then
ftp $hostftp <<EOF
bin
cd $dossierftp
send $filename1.tar.gz
quit
bye
EOF
echo "le fichier a été envoyé"
else
echo "le fichier est trop lourd, merci de supprimer des Shapefiles"
exit;
fi;
# confirmation de transfert
echo "FIN DU TRANSFERT VERS ---.---.---.---"
si je lance deux fois de suite le script l'envoi se fait bien, le probleme c'est qu'a terme je vais virer le fichier une fois l'envoi réalisé.... doncle probleme se reproduira...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 août 2008 à 16:36
1 août 2008 à 16:36
Bon il manque la déclaration de la variable "$taille" mais je suppose que c'est un oubli dans la copier/coller...
Sinon, rajoute ça dans ton script :
Sinon, rajoute ça dans ton script :
#compression du fichier pour exportation tar cfz $filename1.tar.gz $dossier_export/* -R -v # Vérification de l'existence de l'archive echo ls -lh sleep 10 #envoi ftp du fichier #creation prealable du .netcr dans /root pour l'autorisation de l'utilisateur taille=$(du -sm $filename1.tar.gz |awk '{print $1}') echo echo "Poids archive = $taille" sleep 10 if [ "$taille" -lt "100" ]; then
Merci,
ca tourne comme une horloge,
Alors parmis les erreurs : je n'avais pas oublier de déclarer la variable $taille, mais c'est pire : je l'ai déclarée trop tot : avant que le fichier soit compresser, donc elle s'inititalisait au début de l'appli s'il restait un fichier dans le repertoire. sipas de fichier = pas de valeur pour la variable.
Merci beaucoup. je suis pazs pret de l'oubliée celle là.
ca tourne comme une horloge,
Alors parmis les erreurs : je n'avais pas oublier de déclarer la variable $taille, mais c'est pire : je l'ai déclarée trop tot : avant que le fichier soit compresser, donc elle s'inititalisait au début de l'appli s'il restait un fichier dans le repertoire. sipas de fichier = pas de valeur pour la variable.
Merci beaucoup. je suis pazs pret de l'oubliée celle là.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 août 2008 à 17:16
1 août 2008 à 17:16
Salut,
Merci beaucoup. je suis pazs pret de l'oubliée celle là.
Nous, non plus ;-DDDD
Merci beaucoup. je suis pazs pret de l'oubliée celle là.
Nous, non plus ;-DDDD