ansible-roles/roles/zabbix_server/templates/pre_backup.sh.j2
2021-12-01 19:13:34 +01:00

48 lines
2.1 KiB
Django/Jinja

#!/bin/sh
set -eo pipefail
{% if zabbix_server_backup_hooks %}
mkdir -p /home/lbkp/zabbix
# First, backup the schema
/usr/bin/mysqldump --user={{ zabbix_server_db_user | quote }} \
--password={{ zabbix_server_db_pass | quote }} \
--host={{ zabbix_server_db_server | quote }} \
--port={{ zabbix_server_db_port }} \
--no-data \
--quick --single-transaction \
--add-drop-table {{ zabbix_server_db_name | quote }} | zstd -T0 -c > /home/lbkp/zabbix/{{ zabbix_server_db_name }}_schema.sql.zst
# Then, backup data
{% if zabbix_server_backup_on_full_only %}
if [[ "$1" == "full" ]]; then
/usr/bin/mysqldump --user={{ zabbix_server_db_user | quote }} \
--password={{ zabbix_server_db_pass | quote }} \
--host={{ zabbix_server_db_server | quote }} \
--port={{ zabbix_server_db_port }} \
--no-create-info \
--quick --single-transaction \
--add-locks \
{{ zabbix_server_db_name | quote }} | zstd -T0 -c > /home/lbkp/zabbix/{{ zabbix_server_db_name }}_data.sql.zst
else
{% endif %}
/usr/bin/mysqldump --user={{ zabbix_server_db_user | quote }} \
--password={{ zabbix_server_db_pass | quote }} \
--host={{ zabbix_server_db_server | quote }} \
--port={{ zabbix_server_db_port }} \
--no-create-info \
{% if zabbix_server_backup_on_full_only %}
{% for table in ['events', 'history', 'history_uint', 'history_str', 'history_text', 'trends', 'trends_uint'] %}
--ignore-table={{ zabbix_server_db_name }}.{{ table }} \
{% endfor %}
{% endif %}
--quick --single-transaction \
--add-locks \
{{ zabbix_server_db_name | quote }} | zstd -T0 -c > /home/lbkp/zabbix/{{ zabbix_server_db_name }}_data.sql.zst
{% if zabbix_server_backup_on_full_only %}
fi
{% endif %}
{% else %}
# pre and post backup hooks are disabled on this host
{% endif %}