FTP: So entfernen Sie „WARNUNG! 1 nackte Zeilenvorschübe im ASCII-Modus empfangen ”Nachricht?

7

Ich habe ein kleines Shell-Skript (unter CentOS) geschrieben, um Statistiken von unserem APC-USV-Gerät herunterzuladen. Es funktioniert großartig, aber Cron sendet jeden Tag eine E-Mail mit der folgenden Nachricht:

WARNING! 1 bare linefeeds received in ASCII mode File may not have transferred correctly.

Ich erhalte diese Nachricht auch, wenn ich die Datei manuell auf der Shell erhalte. Der FTP-Teil meines Skripts sieht folgendermaßen aus:

ftp -in $ftpip <<END_FTP_DOWNLOAD
user $ftpuser $ftppassword
get data.txt
bye
END_FTP_DOWNLOAD

Wie kann ich diese Warnmeldung entfernen, die meine Kollegen stören kann?

Die manuelle FTP-Verbindung sieht so aus. Ich habe diesmal versucht, "ascii" einzugeben:

220 AP9617 Network Management Card AOS v2.6.4 FTP server ready.
Name (192.168.0.50:myusername): username
331 User name okay, need password.
Password:
230 User logged in, proceed.
ftp> ascii
200 TYPE Command okay.
ftp> get data.txt
local: data.txt remote: data.txt
227 Entering Passive Mode (192,168,0,50,161,31).
125 Data connection already open; transfer starting.
WARNING! 1 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Closing data connection.
131468 bytes received in 19,3 secs (6,6 Kbytes/sec)
ftp> bye
221 Thank you for using APC products!

Die Datei data.txt hat zwischen 500 und 800 Zeilen und die letzte Zeile ist immer leer.

Apfelwein
quelle
Wenn jemand darüber stolpert, weil FTP in High Sierra fehlt und ausgeführt wird brew install inetutils, lesen Sie
unbedingt

Antworten:

11

Versuchen Sie, den Binärmodus anstelle des ASCII-Modus zu verwenden. Es sollte so etwas sein wie:

ftp -in $ftpip << END_FTP_DOWNLOAD
user $ftpuser $ftppassword
bin
get $filename
bye
END_FTP_DOWNLOAD
Maria Arias de Reyna Domínguez
quelle
1
Diese Lösung funktioniert gut und scheint zuverlässiger zu sein
Labynocle
6

Jetzt habe ich eine (schmutzige) Lösung gefunden:

Ich lade die Textdatei im BINARY-Modus herunter und ersetze dann das ^ M-Zeichen, das in die Datei eingefügt wird, da es so aussieht, als ob die APC-USV auf DOS basiert ...

tr -d '\015' < data.txt > data-$today.txt

Wenn jemand eine bessere Lösung findet, wäre das großartig, aber das funktioniert auch.

Apfelwein
quelle