Zabbixのデータベースをバックアップする方法(shellscript)
ShellScriptが苦手で日々勉強中です。
他の書き方もあるので是非シェアしていただきたいです。
ShellScriptの書き方(Zabbixの場合)
#!/bin/bash
DATE=`date "+%Y%m%d"`
BAKDIR=/mariadb_backup
# バックアップするDBの情報
DB_USER=zabbixuser
DB_PASS=zabbixpass
DB_NAME=zabbix
# mysqldumpコマンドでDBをバックアップ
mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BAKDIR}/${DB_NAME}_${DATE}.bak
# パーミッションの設定
chmod 755 ${BAKDIR}/${DB_NAME}_${DATE}.bak
# バックアップ日のログを保存する
l="${BAKDIR}/db.log" ←ご助言をいただき変更しました。
echo backup as ${BAKDIR}/${DB_NAME}_${DATE}.bak at ${DATE}>>$l
# 7日より古いファイルを削除
find ${BAKDIR} -type f -name "${DB_NAME}_*.bak" -mtime +7 -exec rm -f {} \;
# 30日より古いlogファイルを削除
find ${BAKDIR} -type f -name “backup as ${BAKDIR}/${DB_NAME}_${DATE}.bak at ${DATE}” -mtime +30 -exec rm -f {} \;
時間を決めて実行する方法
crontabコマンドを使用します。
crontab -e の設定 3amに設定
0 3 * * * sh /home/zabbix_bak.sh > /dev/null 2>&1