Menu

Erreur scrpit shell : fin de fichier prématuré. [Résolu/Fermé]

Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
Bonjour,
Je suis assez débutante en script shell.
J'ai un script shell qui, d'abord exporte les données de la base de données mysql vers fichier.csv puis comprèsse ce fichier et enfin l'envoi vers un autre serveur dont l'adresse IP est 192.168.56.103.

Voici mon code :



#!/bin/sh
currentTimeStartExp=`date +'20%y-%m-%d %H:%M:%S'`
#currentfile="/data/barring/cdr_rated_$1"+".csv"
#currentfile="/data/tmp/cdr_rated_$1.csv"
#currentfile="/DWH2017/SAVE/Reste/cdr_rated_$1"+".csv"
if [ $# -eq 0 ]
then
    currentfile="/archives/export_base/export_"`date +'20%y-%m-%d' -d '-1 day'`".csv"
    currentdate=`date +'20%y-%m-%d' -d '-1 day'`
else
    currentfile="/archives/export_base/export_$1.csv"
    currentdate=$1
fi
echo "Start EXPORT $currentfile at $currentTimeStartExp"
#Declaring mysql BIG5 DB connection 
DBIG_MASTER_DB_USER='root'
DBIG_MASTER_DB_PASSWD=''
DBIG_MASTER_DB_PORT=3306
DBIG_MASTER_DB_HOST='192.168.56.102'
DBIG_MASTER_DB_NAME='bdorange'

#mysql command to connect to database prod
/usr/bin/mysql -u$DBIG_MASTER_DB_USER -p$DBIG_MASTER_DB_PASSWD -P$DBIG_MASTER_DB_PORT -h$DBIG_MASTER_DB_HOST -D$DBIG_MASTER_DB_NAME <<EOF
select * from $DBIG_MASTER_DB_NAME.affecter where iddate between '$currentdate' and '$currentdate 23:59:59' into outfile '$currentfile' fields terminated by '|';
EOF
#currentTimeEndExp=`date +'20%y-%m-%d %H:%M:%S'`
if [ -f "$currentfile" ]
then
 currentfilegz="$currentfile.gz"
 gzip $currentfile
 if [ -f "$currentfilegz" ]
 then

  sshpass -p "rasoamanarivo" ssh root@192.168.56.102<<EOF
         sshpass -p "rasoamanarivo" scp -p -r root@192.168.56.103:$currentfilegz /DWHFB/archivecsvprod
EOF
         echo  "FTP :$currentfilegz OK ."
  currentTimeEndExp=`date +'20%y-%m-%d %H:%M:%S'`
  echo "End EXPORT $currentfilegz at $currentTimeEndExp"
  rm -rf $currentfilegz
 fi

fi





Mais voilà, quand j’exécute mon script il retourne toujours l'erreur : " ligne44: Erreur de syntaxe : fin de fichier prématurée"
J'essai de trouver ou se trouve exactement l'erreur mais je n'y arrive pas. Est ce que quelqu'un peut m'aider s'il vous plait, je sais plus du tout quoi faire.Merci beaucoup.
Afficher la suite 

1 réponse

Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
119
0
Merci
Salut,

Le script a été écrit sous GNU/Linux ou sous Windows ?

UnGnU
Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
119 > Lacapricorne
Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
T'es sûr qu'il a été écrit sous Gnu/linux ???
Toutes les fins de lignes sont au format Micro$oft (^M$) ;-((
Lacapricorne
Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
en fait,j'ai procédé comme ceci : j'ai édité script avec notepad++ de Windows, avant de le recopié dans le répertoire de GNU/Linux, puis je l'ai exécuté. Il fallait pas faire comme ça?
UnGnU
Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
119 > Lacapricorne
Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
Ben non ;-((

Windows, MacOS et Gnu/Linux ne formatent pas leur fin de ligne de la même façon, donc il est préférable d'éditer les fichiers de scripts, sur le système où ils sont supposés tourner, et dans le cas contraire, il faut choisir le format dans les préférences de l'éditeur, c'est le cas pour NotePad.

Là tu peux aussi convertir le fichier avec la commande (si installée)
dos2unix
.
UnGnU
Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
119 > Lacapricorne
Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
Ah, et aussi, la prochaine fois où on te demande d'emblée où a été créé le script, essaie de répondre correctement du 1er coup ;-(
Lacapricorne
Messages postés
17
Date d'inscription
mardi 6 février 2018
Statut
Membre
Dernière intervention
8 février 2018
-
ça a marcher, merci beaucoup!