diff options
author | Christian Hesse <mail@eworm.de> | 2019-06-14 14:59:49 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2019-06-14 15:13:41 +0200 |
commit | 5101d57d52e60a3c10b974217af70166a3145c45 (patch) | |
tree | 4141698ae343d4fb4c0a0e3999d87413382da14f /email-backup | |
parent | 2252058202e66051aa6cd4b6dac6d885da9167e8 (diff) |
backup: split off cloud-backupchange-5
Currently backup to MikroTik cloud is pretty unreliable and script can
not catch errors at runtime. Looks like this does not change any time
soon (Ticket#2019052022003204).
So let's just split off the cloud backup to make sure email backup works
as expected.
Diffstat (limited to 'email-backup')
-rw-r--r-- | email-backup | 57 |
1 files changed, 16 insertions, 41 deletions
diff --git a/email-backup b/email-backup index 5fe4684..3050afc 100644 --- a/email-backup +++ b/email-backup @@ -10,21 +10,18 @@ :global EmailBackupCc; :global BackupSendBinary; :global BackupSendExport; -:global BackupCloud; :global BackupPassword; :if ($BackupSendBinary != true && \ - $BackupSendExport != true && \ - $BackupCloud != true) do={ + $BackupSendExport != true) do={ :log error ("Configured to send neither backup nor config export."); :error "Error: See log for details."; } # filename based on identity :local FileName ($Identity . "." . $Domain); -:local CloudStatus $BackupCloud; -:local BackupStatus $BackupSendBinary; -:local ConfigStatus $BackupSendExport; +:local BackupFile "none"; +:local ConfigFile "none"; :local Attach [ :toarray "" ]; # get some system information @@ -35,52 +32,30 @@ :local InstalledVersion [ / system package update get installed-version ]; # binary backup -:if ($BackupSendBinary = true || \ - $BackupCloud = true) do={ +:if ($BackupSendBinary = true) do={ / system backup save encryption=aes-sha256 name=$FileName password=$BackupPassword; - - # attach to mail - :if ($BackupSendBinary = true) do={ - :set BackupStatus ($FileName . ".backup"); - :set Attach ($Attach, $BackupStatus); - } - - # upload to cloud - :if ($BackupCloud = true) do={ - :do { - # we are not interested in output, but print without count-only is - # required to fetch information from cloud - / system backup cloud print as-value; - :if ([ / system backup cloud print count-only ] > 0) do={ - / system backup cloud remove-file ([ find ]->0); - } - / system backup cloud upload-file action=upload src-file=($FileName . ".backup"); - :set CloudStatus [ / system backup cloud get ([ find ]->0) secret-download-key ]; - } on-error={ - :set CloudStatus "failed"; - } - } + :set BackupFile ($FileName . ".backup"); + :set Attach ($Attach, $BackupFile); } # create configuration export :if ($BackupSendExport = true) do={ / export terse file=$FileName; - :set ConfigStatus ($FileName . ".rsc"); - :set Attach ($Attach, $ConfigStatus); + :set ConfigFile ($FileName . ".rsc"); + :set Attach ($Attach, $ConfigFile); } # send email with status and files / tool e-mail send to=$EmailBackupTo cc=$EmailBackupCc \ subject=("[" . $Identity . "] Backup & Config") \ body=("Backup and config export for " . $Identity . ".\n\n" . \ - "Board name: " . $BoardName . "\n" . \ - "Model: " . $Model . "\n" . \ - "Serial number: " . $SerialNumber . "\n" . \ - "Hostname: " . $Identity . "\n" . \ - "Channel: " . $Channel . "\n" . \ - "RouterOS: " . $InstalledVersion . "\n\n" . \ - "Backup attached: " . $BackupStatus . "\n" . \ - "Config attached: " . $ConfigStatus . "\n" . \ - "Cloud backup: " . $CloudStatus) \ + "Board name: " . $BoardName . "\n" . \ + "Model: " . $Model . "\n" . \ + "Serial number: " . $SerialNumber . "\n" . \ + "Hostname: " . $Identity . "\n" . \ + "Channel: " . $Channel . "\n" . \ + "RouterOS: " . $InstalledVersion . "\n\n" . \ + "Backup file: " . $BackupFile . "\n" . \ + "Config file: " . $ConfigFile) \ file=$Attach; } |