MySQLのバイナリログを、コピーして保存するスクリプト。
mysqlbin コマンドで展開後、gzipで圧縮するのでコンパクトにして保存が出来る。
下記の例は前日分のバイナリログを所定のディレクトリに保存する。
なお、サーバの負荷上昇を避けるため、1ファイルごとに15秒のスリープを設定している。
#!/bin/bash BINLOG_DIR='/var/mysql/data' BACKUP_DIR='/home/backup-mysql-binlog' MYSQLBINLOG='/usr/bin/mysqlbinlog' find ${BINLOG_DIR}/mysqld-bin.[0-9]* -daystart -mtime +0 -mtime -2 -type f | while read binlog ; do binlog_file=`basename ${binlog}` ${MYSQLBINLOG} $binlog | gzip -c > ${BACKUP_DIR}/${binlog_file}.sql.gz chown yoota:user ${BACKUP_DIR}/${binlog_file}.sql.gz sleep 15 done