У меня есть проблема, которую я действительно не могу выяснить.
Следующие фрагменты из моего скрипта Python архивируют каталог и отправляют письмо в случае успеха.Он также отправляет письмо, если произошла ошибка.И вот в чем проблема:
Когда я выполняю скрипт вручную , все работает нормально. 1 письмо в случае успеха, 1 письмо в случае возникновения ошибки.
Если скрипт запускается из cron, Я получаю более 50 писем в случае возникновения ошибки (в случае успеха только один)! Все письма имеют одинаковое содержимое (сообщение об ошибке), и все письма отправляются одновременно (точно как "чч: мм").
Это фрагмент скрипта:
def backup(pathMedia, pathZipMedia):
[...]
try:
createArchive(pathMedia, pathZipMedia)
except Exception as e:
sendMail('Error in zipping the media dir: ' + str(e))
sys.exit()
sendMail('Backup successfully created!')
def sendMail(msg):
sent = 0
SMTPserver = '[...]'
sender = '[...]'
destination = ['...']
USERNAME = '[...]'
PASSWORD = '[...]'
text_subtype = 'plain'
subject='Backup notification'
content=msg
try:
msg = MIMEText(content, text_subtype)
msg['Subject'] = subject
msg['From'] = sender
conn = SMTP(SMTPserver)
conn.set_debuglevel(False)
conn.login(USERNAME, PASSWORD)
try:
if (sent == 0):
conn.sendmail(sender, destination, msg.as_string())
sent = 1
finally:
conn.quit()
except Exception as e:
sys.exit()
Мой crontab выглядит следующим образом:
## run the backup script every 3 days at 4am
* 4 */3 * * /root/backup.py >/dev/null 2>&1
Я исправил ошибки orrucring сейчас, но это все еще может произойти снова.И мне действительно любопытно, почему эта проблема возникает!
Спасибо!