import
urllib,urllib2
from
ftplib
import
FTP_TLS
import
os
import
re
import
sys
import
time
import
zipfile
import
datetime
YestodayDir
=
(datetime.date.today()
-
datetime.timedelta(days
=
1
)).strftime(
"%Y%m%d"
)
file_root_dir
=
"D:\\backup"
TodayDir
=
str
(time.strftime(
"%Y%m%d"
,time.localtime()))
TodayFileName
=
TodayDir
+
'.zip'
FLAG
=
1
def
zip_dir(dirname,zipfilename):
filelist
=
[]
if
os.path.isfile(dirname):
filelist.append(dirname)
else
:
for
root, dirs, files
in
os.walk(dirname):
for
name
in
files:
filelist.append(os.path.join(root, name))
zf
=
zipfile.ZipFile(zipfilename,
"w"
, zipfile.zlib.DEFLATED)
for
tar
in
filelist:
arcname
=
tar[
len
(dirname):]
zf.write(tar,arcname)
zf.close()
def
check_bak_dir():
global
FLAG
os.chdir(file_root_dir)
if
os.path.exists(YestodayDir):
os.system(
"rmdir %s /Q/S"
%
YestodayDir)
else
:
pass
if
not
os.path.exists(TodayDir):
print
(
"no %s"
%
TodayDir)
os.mkdir(TodayDir)
FLAG
=
0
return
FLAG
else
:
pass
def
upload(filename):
os.chdir(file_root_dir)
ftp
=
FTP_TLS()
ftp.connect(
"Your ip or domain"
,port)
ftp.login(
'ftpuser'
, ftpuser')
ftp.prot_p()
ftp.cwd(
"home/back"
)
upload_file
=
unicode
(filename,
"utf8"
)
f
=
open
(upload_file,
'rb'
)
ftp.storbinary(
'STOR %s'
%
os.path.basename(upload_file),f)
f.close()
ftp.quit
if
__name__
=
=
"__main__"
:
check_bak_dir()
if
os.path.exists(TodayDir)
and
FLAG:
print
(
"Diractory is ziping ... "
)
zip_dir(TodayDir,TodayFileName)
print
(
"Upload bakcup ... "
)
upload(TodayFileName)
print
(
"Today %s upload success!"
%
TodayFileName)
print