読者です 読者をやめる 読者になる 読者になる

MyController

WEB業界素人の僕がまた見返しそうなことのメモです。

指定したDBをmysqldumpで日時バックアップして15日たったら削除するシェルとクーロン

こぴぺでおけ

#!/bin/sh

# バックアップファイルのパーミッション設定。他のユーザからバックアップを読み込めないようにする
umask 077

# バックアップファイルを何日分残しておくか(15日分)
period=15
# バックアップファイルを保存するディレクト
dirpath='/var/www/backup/mysql'

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
filename=`date +%y%m%d`

# mysqldump実行(ファイルサイズ圧縮の為gzで圧縮しておきます。)
mysqldump --opt --single-transaction --events --default-character-set=utf8 -u ユーザ名 -p DB名 --password=ぱすわーど | gzip > $dirpath/$filename.sql.gz

# 古いバックアップファイルを削除
oldfile=`date --date "$period days ago" +%y%m%d`
rm -f $dirpath/$oldfile.sql.gz

 

/etc/crontab

0 1 * * * root /var/www/backup/backupmysql.sh

 

便利便利