Centos7 MariaDB バックアップ

DB
  • VPSでMariaDBを使用中
  • バックアップを作成していなかったので作成することに
  • 2021/02/21追記 スタートとエンドのタイムログを /var/log/cronwork.logへ保存することに変更

シェルスクリプトの作成

#!/bin/sh
# 他のユーザからバックアップを読み込めないようにする
umask 077
# バックアップ保存日数
period=7
# バックアップを保存するディレクトリ
dirpath='/root/backup/db'
# ファイル名
filename=`date +%y%m%d`

#start 2021/02/21追加
ST="`date +%Y%m%d%H%M%S`"
echo "Bckup_cron_start ""$ST" >> /var/log/cronwork.log 2>&1
# mysqldump(gzで圧縮) mysqldump --opt --all-databases --events --default-character-set=binary -u root --password=実際のパスワード | gzip > $dirpath/$filename.sql.gz # メールで送信(gz圧縮ファイルを送信→今回は行わない) # uuencode $dirpath/$filename.sql.gz $dirpath/$filename.sql.gz | mail -s "件名" -r 送信元(from)アドレス 送信先(to)アドレス # パーミッション変更 chmod 700 $dirpath/$filename.sql.gz # 古いファイルを削除 oldfile=`date --date "$period days ago" +%y%m%d` rm -f $dirpath/$oldfile.sql.gz

#end 2021/02/21追加
ET="`date +%Y%m%d%H%M%S`"
echo "Bckup_cron_end ""$ET" >> /var/log/cronwork.log 2>&1

注意:Windowsで作成してからSCPすると動かない場合があるので
   その場合は 改行コードをCRLFからLFに変更して実行してみる。

sh /root/backup/db/db_backup.shで実行テストを行う

cron設定

  • crontab使用
    crontab -u root -e
  • 00 5 * * * /root/backup/db/db_backup.sh

 

タイトルとURLをコピーしました