2009-10-27 4 views
0

Je travaille dans un script bash où j'ai besoin d'analyser la sortie d'une session FTP. Mais j'ai rencontré un problème avec le client FTP SUSE Linux lors de la connexion à un serveur ftp AIX. Le problème est que la sortie de la commande FTP est affichée sur l'écran, mais n'est pas envoyée à un tube si vous faites un "| grep" ou "| awk". De plus, si j'ouvre la session FTP avec une redirection de fichier (ftp -n nom_serveur> ftplog.log) le contenu du fichier après la session est comme ceci:
ftp>
ftp>
ftp>
ftp>
Est-ce que quelqu'un a rencontré ce problème? Y a-t-il un paramètre qui me manque? J'ai essayé de rediriger l'erreur standard vers la sortie standard mais cela n'a pas fonctionné non plus.
MerciProblème avec la redirection de sortie ftp dans SUSE Linux

Edit: J'accède au terminal en utilisant SSH Putty, je n'ont pas directement accès au serveur. Je ne pense pas que cela importe, mais juste au cas où ...

Répondre

1

Il travaille actuellement.
Il me manquait le paramètre -v pour FTP. La documentation prête à confusion car elle indique que le paramètre -v est le dafault, et qu'il fonctionne comme s'il était activé (affichant toutes les sorties dans le terminal), mais il ne l'a pas imprimé dans stdout. Lorsque je l'ai activé, les tuyaux et la redirection de fichiers ont commencé à fonctionner.
Merci

+0

Bonne découverte! Ça m'a aidé aussi. – MicNeo

0

Vous avez besoin de rediriger stderr APRÈS stdout, comme dans:

ftp -n servername > ftplog.log 2>&1 

PAS

ftp -n servername 2>&1 > ftplog.log [wrong!] 
+0

J'ai essayé mais ça ne fonctionne pas. Il semble que la sortie ne passe pas par stdout ni stderr, mais elle est toujours affichée dans la console. –

Questions connexes