Если я использую свой скрипт, всегда появляется эта ошибка:
IOError: [Errno 2] No such file or directory: "'/folder/my/20200114-013815/backup.sql.gz'"
Почему файл не может быть найден? Это на Пути. Или мне нужно добавить кодировку gzip или что-то еще в attachment.add_header
? Не знаю, что не так, я впервые пытался добавить вложение в python.
Спасибо
DB_HOST = 'XXXXXXX'
DB_USER = 'XXXXXXX'
DB_USER_PASSWORD = 'XXXXXXX'
DB_NAME = 'XXXXXXX'
BACKUP_PATH = '/folder/my'
DATETIME = time.strftime('%Y%m%d-%H%M%S')
TODAYBACKUPPATH = BACKUP_PATH + '/' + DATETIME
try:
os.stat(TODAYBACKUPPATH)
except:
os.mkdir(TODAYBACKUPPATH)
if os.path.exists(DB_NAME):
file1 = open(DB_NAME)
multi = 1
else:
multi = 0
if multi:
in_file = open(DB_NAME,"r")
flength = len(in_file.readlines())
in_file.close()
p = 1
dbfile = open(DB_NAME,"r")
while p <= flength:
db = dbfile.readline()
db = db[:-1]
dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
os.system(dumpcmd)
gzipcmd = "gzip " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
os.system(gzipcmd)
p = p + 1
dbfile.close()
else:
db = DB_NAME
dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
os.system(dumpcmd)
gzipcmd = "gzip " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
os.system(gzipcmd)
msg = MIMEMultipart()
message = "Test"
password = "XXXXXXXX"
msg['From'] = "XXXXXXXX"
msg['To'] = "XXXXXXXX"
msg['Subject'] = "Test"
filename = "'" + TODAYBACKUPPATH + "/backup.sql.gz'"
f = file(filename)
msg.attach(MIMEText(message, 'plain'))
attachment = MIMEText(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(attachment)
server = smtplib.SMTP('XXXXXXXX: 587')
server.starttls()
server.login(msg['From'], password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()