Управление освещением
Презентации
Технические решения на LogicMachine
Визуализация
  logicmachine.net.ru    Технические решения на LogicMachine    Отправка back-up файла раз в месяц по E-mail

Отправка back-up файла раз в месяц по E-mail

Создаем скрипт По расписанию (Scheduled), который будет посылать back-up  файл электронной почтой каждый месяц.

В примере используются настройки для Gmail.

 

--***************************************************************--
--** Email backup as attachment created by Erwin van der Zwart **--
--****** For HL from FW 1.5 and SL from FW 1.2 with NGINX *******--
--***************************************************************--
--********************* Start of parameters *********************--
--***************************************************************--
--Gmail (smtp) username !IMPORTANT!
user = 'YOUR EMAIL ADRESS'
--Gmail (smtp) password !IMPORTANT!
password = 'YOUR PASSWORD'
--Sender for e-mail
from = ''
alias_from = 'YOUR ALIAS'
--Recipient for e-mail
to = ''
alias_to = 'receiver'
--Subject for e-mail
subjectpart1 = 'Back-up file'
subjectpart2 = 'automaticly send by homeLYnk'
--Message on bottom of email (will only be showed when client don't understand attachment)
epilogue = 'End of message'
--***********************************************************--
--******************** End of parameters ********************--
--***********************************************************--
--********** DON'T CHANGE ANYTHING UNDER THIS LINE **********--
--***********************************************************--
--Create table to include mail settings
local settings = {
    from = from,
    rcpt = to,
    user = user,
    password = password,
    server = 'smtp.gmail.com',
    port = 465,
    secure = 'sslv23',
}
--Create attachment inside FTP server
id = 'HL_192.168.0.10-' -- Give here your details of your HL
src = 'backup-'..id.. os.date('%Y.%m.%d.%H.%M.%S') .. '.tar.gz'
dst = '/home/ftp/' .. src
-- prepare files for backup
os.execute('sh /lib/genohm-scada/web/general/backup.sh')
-- create cleanup archive
os.execute('cd /lib/genohm-scada/storage && tar -c -z -f ' .. dst .. ' ./')
-- post-backup cleanup
os.execute('cd /lib/genohm-scada/storage && rm -rf user userlib.luas blockly.luas initscript.lua
helpers.js genohm-scada.config filter*')
--Create subject
subject = subjectpart1 .. ": " .. src .. " " .. subjectpart2
--Load required modules to send email with attachment
local smtp = require("socket.smtp")
local mime = require("mime")
local ltn12 = require("ltn12")
--Create e-mail header
settings.source = smtp.message{
headers = {
          from = '' .. alias_from .. ' ' .. from .. '',
          to = '' .. alias_to .. ' ' .. to .. '',
          subject = subject
},
--Load attachment inside body
body = {
preamble = "",
 [1] = {
      headers = {
         ["content-type"] = 'application/x-7z-compressed',
         ["content-disposition"] = 'attachment; filename="'..src..'"',
         ["content-description"] = '.. src ..',
         ["content-transfer-encoding"] = "BASE64",
      },
      body = ltn12.source.chain(
        ltn12.source.file(io.open(dst, "rb")),
      ltn12.filter.chain(
      mime.encode("base64"),
      mime.wrap()
        )
      )
    },
      epilogue = epilogue
  }
}
--Send the email
r, e = smtp.send(settings)
--Create alert when sending gives an error with error message
if (e) then
  log (e)
  log (r)
  alert("Could not send email: ", e, "\n")
end
log("Mail Send")
--Delete created backup file from ftp folder inside HL
os.remove(dst)

Пример создан Erwin van der Zwart из Schneider Electric




Copyright
© Embedded Systems Rus
2019. All Rights Reserved