From a45be50943636b15ea19d855b8a788765f1a6132 Mon Sep 17 00:00:00 2001 From: L3D Date: Wed, 13 Jan 2021 11:36:25 +0100 Subject: [PATCH] Now HTML mail --- tasks/cron.yml | 4 +-- templates/restic_mailsummary.j2 | 60 ++++++++++++++++++++++++++------- vars/main.yml | 2 +- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/tasks/cron.yml b/tasks/cron.yml index e0676ab..b33efec 100644 --- a/tasks/cron.yml +++ b/tasks/cron.yml @@ -27,10 +27,10 @@ user: "{{ restic_archiver__owner }}" when: not restic_archiver__log_output -- name: setup cronjob for restic without logging +- name: setup cronjob for restic mailsummary become: true cron: - name: "archive restic backup with ansible_role_restic_archiver" + name: "archive restic mailsumary" job: /opt/restic-mailsummary.sh cron_file: /etc/crontab hour: "7" diff --git a/templates/restic_mailsummary.j2 b/templates/restic_mailsummary.j2 index 01ace5b..ea269f7 100644 --- a/templates/restic_mailsummary.j2 +++ b/templates/restic_mailsummary.j2 @@ -3,8 +3,16 @@ # This file is designed to create a overview # overof the restic backup and # send it by mail - if wanted -echo "SUMMARY for Restic BACKUP" > /tmp/mailcontent +cat < /tmp/mailcontent + + + +Restic summary + + +

SUMMARY for Restic BACKUP

+EOT {% for repo in restic_archiver__repos %} @@ -20,13 +28,31 @@ BACKUP_NAME="{{ repo.name }}" 2>/dev/null cat <> /tmp/mailcontent +

{{ repo.name }}

- -{{ repo.name }}" $(restic check --quiet 2>/dev/null) - $(restic --quiet stats --json | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print('Repo size: ', str(int(jsondata['total_size'] / 1024 / 1024 / 1024 * 1000 )/1000 ), 'GB with ', str(jsondata['total_file_count']), ' Files.')") - Latest Snapshots: -$(restic --quiet snapshots --last --json | jq -c '.[]' | while read i; do echo -e "$i" | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print(' Hostname: ', jsondata['hostname'], ' \tbackup time: ', jsondata['time'], ' \tPath: ', str(jsondata['paths'][0]))" ; done) + + +

Latest Snapshots

+ + + + + + +$(restic --quiet snapshots --last --json | jq -c '.[]' | while read i; do echo -e "$i" | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print('\n\n\n\n\n')" ; done) +
Hostnamelatest backupPath
', jsondata['hostname'], '', jsondata['time'], '', str(jsondata['paths'][0]), '
+ + + + + + + + + +$(restic --quiet stats --json | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print('\n')") + EOT {% if repo.archive|default(false) %} @@ -40,23 +66,33 @@ else fi {% endif %} + # ARCHIVE Settings for Server "{{ repo['name'] | string }}" echo "EXTERNAL_BACKUP: {{ repo.name }}" 2>/dev/null export RESTIC_REPOSITORY="{{ repo['archive_location'] }}" 2>/dev/null export RESTIC_PASSWORD='{{ repo['archive_password'] | regex_replace('\'', '\'\\\'\'') }}' 2>/dev/null BACKUP_NAME="{{ repo.name }}_archive" 2>/dev/null -echo " Backup at external Disk:" >> /tmp/mailcontent -restic check --quiet >> /tmp/mailcontent -restic --quiet stats --json | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print(' External Backup Repo size: ', str(int(jsondata['total_size'] / 1024 / 1024 / 1024 * 1000 )/1000 ), 'GB with ', str(jsondata['total_file_count']), ' Files.')" >> /tmp/mailcontent +restic --quiet stats --json | python3 -c "import sys, json; jsondata=json.load(sys.stdin); print('\n\n\n\n\n')" >> /tmp/mailcontent {% endif %} +echo -e "
nametotal sizetotal files
snapshots', str(int(jsondata['total_size'] / 1024 / 1024 / 1024 * 1000 )/1000 ), 'GB ', str(jsondata['total_file_count']), ' Files
external archive', str(int(jsondata['total_size'] / 1024 / 1024 / 1024 * 1000 )/1000 ), 'GB ', str(jsondata['total_file_count']), ' Files.
\n

" >> /tmp/mailcontent +restic check --quiet >> /tmp/mailcontent {% endfor %} sync -echo -e "\n\n\n\n\n\n\n -------------------------------------" >> /tmp/mailcontent -df -h >> /tmp/mailcontent -mail -s "restic backup report" {{ restic_archiver__mailaddress }} < /tmp/mailcontent +cat <> /tmp/mailcontent +


+


+


+ +$(df -h) + + + +EOT + +mail -a "Content-type: text/html" -s "restic backup report" {{ restic_archiver__mailaddress }} < /tmp/mailcontent {% if restic_archiver__umount_after_usage %} umount {{ restic_archiver__mount_disk }} diff --git a/vars/main.yml b/vars/main.yml index 3ce637a..b246986 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,3 +1,3 @@ --- -playbook_version_number: 36 # should be over ninethousand +playbook_version_number: 37 # should be over ninethousand playbook_version_path: 'role-restic_archiver_roles-ansible_github.com.version'