Придумал и набросал пару строк для резервного копирования mysql базы данных и директории с http файлами.
Первым делом делаем копию mysql базы данных zabbix (ключом —ignore-table исключим ненужные таблицы с историей, так как они могу занимать гигабайты) и архивируем ее:
mysqldump --ignore-table=zabbix.history --ignore-table=zabbix.history_uint --ignore-table=zabbix.trends --ignore-table=zabbix.trends_uint -u USERNAME -h localhost -pPASSWORD zabbix | gzip -c > /backups/zabbix_`date +%Y-%m-%d`.sql.gz
Вторым шагом будет архивация http файлов zabbix:
tar -cvjf /backups/`date +%Y-%m-%d`_zabbix.tar.bz2 /usr/share/zabbix/
Вместо директории /backups/ можно монтировать и указать какой нибудь сетевой диск из интернета и на него делать резервные копии.
Обе строки можно добавить в /etc/crontab чтобы копии выполнялись например ежедневно, или добавить их в скрипт, дать скрипту права на выполенение, а в /etc/crontab/ указать путь к этому скрипту, вот например каждый день в 3 утра:
0 3 * * * root /backups/script.sh > /dev/null 2>&1
Можно также не делать резервную копию http файлов, а просто знать какая версия zabbix сервера установлена и потом на новом сервере ее установить, создать пустую базу данных zabbix, импортировать в нее дамп, если в дампе нет некоторых таблиц с историей, то их создадим вручную (примеры есть в директории /usr/share/doc/zabbix-server-mysql), например вот несколько для Zabbix 6.4.10, которые я исключал из дампа:
CREATE TABLE `history` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_uint` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` bigint unsigned DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `trends` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`num` integer DEFAULT '0' NOT NULL,
`value_min` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`value_avg` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`value_max` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;
CREATE TABLE `trends_uint` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`num` integer DEFAULT '0' NOT NULL,
`value_min` bigint unsigned DEFAULT '0' NOT NULL,
`value_avg` bigint unsigned DEFAULT '0' NOT NULL,
`value_max` bigint unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;
Смотрите также мои статьи:
Использование и настройка CRON
Скрипт удаления старых файлов
Установка Zabbix в Ubuntu из пакетов дистрибутивов