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.
brew install inetutils
, lesen SieAntworten:
Versuchen Sie, den Binärmodus anstelle des ASCII-Modus zu verwenden. Es sollte so etwas sein wie:
quelle
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 ...
Wenn jemand eine bessere Lösung findet, wäre das großartig, aber das funktioniert auch.
quelle