FTPを介してMySQLデータベースをバックアップする

Vultrは、Performance Series VPSのオプションとして自動バックアップを提供します。この記事では、この機能に加えて、サーバーで毎日データベースのバックアップを自動的に作成し、FTP経由でバックアップサーバーまたはファイルホストに送信するオプションも提供します。

概観
  • 自動バックアップは毎日実行されます。バックアップを実行する時間は設定可能です。
  • 多くのファイルホストはFTP経由のファイル転送を提供しているため、データベースを個人用アカウントに自動的に送信できます。
  • バックアップが完了するとメールを送信します。

説明文

まず、/backupsディレクトリを作成して変更します。

 mkdir /backups
 cd /backups

次に、nanoまたはお気に入りのエディタを使用して、スクリプトファイルを作成します。

nano backupdb.sh

次に、このスクリプトをコピーして貼り付け、設定に応じて上部の変数を編集します。

#!/bin/bash

############### Infos - Edit them accordingly  ########################

DATE=`date +%Y-%m-%d_%H%M`
LOCAL_BACKUP_DIR="/backups"
DB_NAME="database_name"
DB_USER="root"
DB_PASSWORD="root_password"

FTP_SERVER="111.111.111.111"
FTP_USERNAME="ftp-user"
FTP_PASSWORD="ftp-pass"
FTP_UPLOAD_DIR="/upload"

LOG_FILE=/backups/backup-DATE.log

############### Local Backup  ########################

mysqldump -u $DB_USER  -p$DB_PASSWORD $DB_NAME | gzip  > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz

############### UPLOAD to FTP Server  ################

ftp -nv $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
put "$DATE-$DB_NAME.sql.gz"
bye
EndFTP

############### Check and save log, also send an email  ################

if test $? = 0
then
    echo "Database Successfully Uploaded to the Ftp Server!"
    echo -e "Database Successfully created and uploaded to the FTP Server!" | mail -s "Backup from $DATE" [email protected]

else
    echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi

スクリプトの編集が完了してファイルを保存したら、次のコマンドを適用してファイルを実行可能にします。

 chmod +x backupdb.sh

ターミナルに入力することでテストできます。

 /backups/backupdb.sh

...実行が終了しls -aたら、入力してデータベースがバックアップされているかどうかを確認します。また、FTPサーバーに送信されたかどうかも確認してください。

これまでのところすべてがうまくいった場合、Crontabを使用して毎日実行することができます。

Crontabセクション

次のコマンドでcrontabを編集できます。

 crontab -e

これにより、各行のスケジュールを新しい行に入力できるテキストエディタが表示されます。

各セクションはスペースで区切られ、最後のセクションには1つ以上のスペースがあります。これは、cronジョブのレイアウト方法です。

分(0〜59)、時間(0〜23、0 =午前0時)、日(1〜31)、月(1〜12)、平日(0〜6、0 =日曜日)、コマンド

したがって、エディターで次の行を入力するか貼り付けます。

 30 02 * * * /backups/backupdb.sh

上記の例は、毎月毎日午前2時30分に実行さ/backups/backupdb.shれます。もちろん、時間は自由に変更できます。

次に、ファイルを保存して閉じます。スケジュールされた時刻に、バックアップが実行されます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。