- 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