FTP Upload socket.error [Errno 104] Connection reset by peer
Verfasst: Dienstag 15. September 2015, 19:36
Nabend zusammen,
bin ganz neu in der Programmierung mit Python und brauche eigentlich nur ein kleines upload Script. Jedoch will mein bisheriges kleines Script nicht so wie ich es will.
Ich möchte, dass wenn man das Script ausführt, ein Ordner mit dem aktuellen Datum und der Uhrzeit angelegt wird. Anschließend sollen die Dateien die als Argument, hinter dem ausführen des Scripts eingegeben werden, in eine .tar gesteckt werden und auf den FTP geladen werden. Komprimiert sollen sie nicht werden.
Das funktioniert auch fast alles so weit gut. Wenn ich jedoch einen bestimmten Ordner mit etwa 6 GB als Argument eintrage, bricht das Script immer bei 2 GB ab und gibt mir diese Fehlermeldung aus:
Woran kann das liegen? Gibt es bei Python irgendeine Beschränkung, in der vorgegeben wird, wie groß maximal eine hochzuladene Datei sein darf, oder was mache ich falsch? Habe ich vielleicht irgendwas vergessen, oder kann man es sogar komplett anders bzw. performanter programmieren?
Gruß Janik
bin ganz neu in der Programmierung mit Python und brauche eigentlich nur ein kleines upload Script. Jedoch will mein bisheriges kleines Script nicht so wie ich es will.
Code: Alles auswählen
import ftplib
import os,sys
import datetime
try:
sys.argv[1]
except IndexError:
print "usage:",__file__,"<dir>"
exit()
ftp_dir="/ZIELORDNER"
server="IP FTP ZIELSERVER"
user="FTP USER ZIELSERVER"
pw="FTP PASSWORT ZIELSERVER"
sdir = " ".join(sys.argv[1:])
ftp = ftplib.FTP(server)
ftp.login(user, pw)
ftp.cwd(ftp_dir)
targetname=datetime.datetime.now().strftime("%d.%m.%y_%H-%M")
ftp.mkd(targetname)
tp=os.popen("nice -1 tar cf - "+sdir)
ftp.storbinary('STOR %s' % targetname+"/Upload.tar", tp)
ftp.close()
Das funktioniert auch fast alles so weit gut. Wenn ich jedoch einen bestimmten Ordner mit etwa 6 GB als Argument eintrage, bricht das Script immer bei 2 GB ab und gibt mir diese Fehlermeldung aus:
Code: Alles auswählen
Traceback (most recent call last):
File "/ftp_backup/ftp_backup.py", line 38, in <module>
ftp.storbinary('STOR %s' % targetname+"/Upload.tar", tp)
File "/usr/lib/python2.7/ftplib.py", line 465, in storbinary
conn.sendall(buf)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 104] Connection reset by peer
tar: -: Nur 2048 von 10240 Bytes geschrieben
tar: Error is not recoverable: exiting now
Gruß Janik