Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 10/03/2010, 10h18   #1
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
Par défaut Vérification envoi de fichier avec controle taille

Bonjour,
j'ai réalisé un petit shell qui appel un fichier texte ect...j'ai réutilisé les batch que j'avais fais pour windows, et je les ai modifiés (si y a des erreurs merci de m'en avertir ).

Bref, mon code envoi sous un fichier zip des pages html sur un serveur ftp.
J'aimerais vérifier que les fichiers se sont correctement envoyés, pour cela j'ai pensé a une vérification de la taille a l'octet près avant et après l'envoi. Si le fichier n'est pas entier, il faudrait qu'il ecrive dans un fichier log qu'il crée le nom des fichiers qui ont été mal envoyés.

De plus, j'aimerais trouver un code qui me permette de récupérer l'ip de ma machine linux afin de pouvoir la mettre dans une variable et de la mettre dans le nom de mon fichier zip.

Si je demande autant de choses c'est pas parce que je suis fénéant mais parce que je suis en stage en entreprise et qu'il se termine bientot, j'aimerais pouvoir finir mon projet, et je ne trouve rien de très concluant sur le net. J'ai bien trouvé des codes pr trouver l'ip avec ipconfig et find mais je ne sais pas comment le mettre dans une variable ( j'ai jamais vraiment vu les commandes linux ). Merci beaucoup pour votre aide!!
Voici les codes :

le .sh
Code :
1
2
3
4
5
6
7
8
9
10
11
mkdir /var/SpiralAFServunix
cd /var/SpiralAFServunix
mkdir as
cd as
ftp -s:envoi.txt ftp.X.net
del as.zip
cd /var/SpiralAFServunix
mkdir pagesgenere
cd pagesgenere
ftp -s:envoi2.txt ftp.X.net
del pg.zip
le .txt
Code :
1
2
3
4
5
6
7
ftu
ftu
bin
mkdir AF
cd AF
put as.zip
bye
merciiii
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 10h29   #2
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
dans ton fichier de commande ftp tu pourrais rajouter une commande:

logger ta sortie FTP et comparer la taille des fichiers
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 10h53   #3
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
non mais le problème c'est que ls -l m'affiche les droits d'accès , la date aussi en plus du poids en octets... et je ne veux pas le comparer à la main...
Comment je peux faire pour récupérer juste le poids et le comparer à l'autre poids ? deux variables peut-être ?

Dernière modification par al1_24 ; 10/03/2010 à 16h13.
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 11h12   #4
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Citation:
Envoyé par kavdo34 Voir le message
non mais le prob c'est que ls -l m'affiche les droits accès , la date aussi en plus du poids en octet... et je veux pas le comparer a la main...comment je peux faire pr récupérer juste le poids et le comparer a l-autre poids? deux variables peut etre?
Il est possible de récupérer la sortie de la commande FTP.

Il te reste la taille extraite de la sortie de la commande FTP, supprimer les lignes qui ne servent pas, ne garder que la ligne qui affiche la taille de as.zip, extraire cette taille et la comparer avec la taille de ton fichier as.zip local
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 11h27   #5
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
hum hum...plus facile a dire qu'a faire
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 11h42   #6
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Code :
1
2
3
4
5
6
7
8
9
#!/bin/bash
LOCAL_SIZE=`grep "as.zip" | awk '{printf("%d", $5}'`
 
ftp .......> transfert.log
 
REMOTE_SIZE=`grep "as.zip" transfert.log | awk '{printf("%d", $5}'`
if [ "$REMOTE_SIZE" != "$LOCAL_SIZE" ] ; then
    echo "error"
fi

Quelque chose comme celà
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 11h46   #7
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
oula ok^^
je comprend pas grand chose mais jvais le tester.
merci beacoup!
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 11h56   #8
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
Citation:
[root@spiral-majuv6test ~]./test1.sh
awk: cmd. ligne:1: {printf("%d", $5}
awk: cmd. ligne:1: ^ syntax error
c'est peut etre parce que mon serveur ftp a un mot de passe non?
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 12h18   #9
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Citation:
Envoyé par kavdo34 Voir le message
c'est peut etre parce que mon serveur ftp a un mot de passe non?
oops....excuse moi y a une fôoote! Décidement j'ai écrit n'importe quoi
Code :
1
2
3
4
5
6
7
8
9
10
 
#!/bin/bash
LOCAL_SIZE=`ls -l as.zip | awk '{printf("%d", $5}'`
 
ftp .......> transfert.log
 
REMOTE_SIZE=`grep "as.zip" transfert.log | awk '{printf("%d", $5)}'`
if [ "$REMOTE_SIZE" != "$LOCAL_SIZE" ] ; then
    echo "error"
fi
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 13h40   #10
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
Bonjour,

Je ne connais pas ftp, mais j'ai bien l'impression qu'il manque une parenthèse fermante à la deuxième ligne (le printf dans awk).

Cela étant, j'imagine mal un protocole qui n'avertirait pas l'utilisateur si le transfert ne s'était pas bien fait.
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 13h42   #11
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Citation:
Envoyé par jmelyn Voir le message
Bonjour,

Je ne connais pas ftp, mais j'ai bien l'impression qu'il manque une parenthèse fermante à la deuxième ligne (le printf dans awk).
Oui, il manquait la parenthèse et plein d'autre chose
Citation:
Cela étant, j'imagine mal un protocole qui n'avertirait pas l'utilisateur si le transfert ne s'était pas bien fait.
Le client a toujours raison (même quand il demande quelque chose d'inutile)
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 14h15   #12
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
????
je pense que dans ma demande on sentait bien que je ne connaissais pas du tout le sujet! Si il existe une maniere plus intelligente par exemple de reprendre une reponse console je suis tout a fait intéressé! Le truc c'est que je suis incapable de dire si lors d'une microcoupure (et non coupure qui arreterait la connexion reseau), si certains octets n'ont pas été transférés, si le protocole d'échange ftp me signalerait l'abscence de ces derniers
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 14h32   #13
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Citation:
Envoyé par kavdo34 Voir le message
????
je pense que dans ma demande on sentait bien que je ne connaissais pas du tout le sujet! Si il existe une maniere plus intelligente par exemple de reprendre une reponse console je suis tout a fait intéressé! Le truc c'est que je suis incapable de dire si lors d'une microcoupure (et non coupure qui arreterait la connexion reseau), si certains octets n'ont pas été transférés, si le protocole d'échange ftp me signalerait l'abscence de ces derniers
En fait dans un transfert de fichier il peut y avoir deux problèmes:
- des données corrompues
- des données tronquées

Pour détecter des données tronquées c'est par la taille du fichier
Pour détecter des données corrompues c'est par le calcul d'une clé sur l'ensemble du fichier (md5sum par exemple)

Mais tu peux te reposer sur le code retour de FTP pour savoir si ca c'est bien passé. Sinon, il y a peut être la commande rsync qui pourrait être utilisée si tu es paranoiaque
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 14h41   #14
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
Ce n'est pas une question de paranoïa ; je dois gérer environ 200 serveurs via une application... Cette application doit être utilisée tous les jours par une tache planifiée. Je dois pouvoir couvrir toutes les erreurs possibles...
Ce n'est pas simplement pour de la culture générale.

Dernière modification par al1_24 ; 10/03/2010 à 16h16.
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 14h53   #15
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Tu peux envoyer avec chaque fichier, sa clé MD5. Et sur tes 200 serveurs dès que tu a reçu les fichier zip, ils calculent le MD5 des fichiers reçus et comparent la clé avec celle que tu as envoyée. Comme celà tu seras tranquille et tes 200 serveurs tourneront sans problème.

Exemple:
si tu envoies un fichier as.zip tu envoies aussi sa clé MD5 dans un fichier nommé as.zip.MD5.

Dernière modification par al1_24 ; 10/03/2010 à 16h17.
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 15h03   #16
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
ok merci j'vais essayer de trouver ça
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 15h14   #17
Futur Membre du Club
 
Arnaud
Étudiant
Inscription : octobre 2008
Messages : 184
Détails du profil
Informations personnelles :
Nom : Arnaud
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 184
Points : 17
Points : 17
non en fait j'ai consulté mes supérieurs et je pense que je vais juste faire un fichier dans lequel je mettrais le retour console lors de l'envoi du fichier a une ligne précise. J'ai juste a trouver la ligne de commande qui va me l'écrire dans mon fichier
kavdo34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 01h44.


 
 
 
 
Partenaires

Hébergement Web