ホームページ >運用・保守 >Linuxの運用と保守 >Linux MySQL のスケジュールされたバックアップと Git リポジトリへのアップロード
はじめに
小規模および中規模のプロジェクトをデプロイするとき、通常、データ ストレージ用のストレージ ツールとして mysql を選択します。データは非常に大きく、毎日生成されるデータは、ある日ウェブサイトやサーバーが攻撃されれば爆発的なデータ損失となるため、データベースのバックアップを設計するのは当然です。必要ですか?
バックアップされたデータ ファイルをサーバー ディレクトリに保存する場合があります。バックアップ サイクルは、もちろんデータの量に基づいています。ここでは通常、毎朝 1 回バックアップします。バックアップ後、ファイルは保存されますサーバーのディレクトリにありますが、ある日サーバーがクラッシュすると、バックアップされたファイルは失われます。そこで、データベースを毎日バックアップし、各バックアップを自動的にリモート ウェアハウスに送信するのが良い解決策だと考えています。 Code Cloud を例にします。
推奨される学習: 「linux チュートリアル」
Code Cloud
最初にリモート ウェアハウスを確立します。ここでは、新しいプライベート ウェアハウスを作成するために Code Cloud
を選択しました。もちろん、毎回パスワードなしでファイルを送信するために、サーバーで ssh キーを生成できます
サーバー上に新しいバックアップを作成します
バックアップされたファイルをサーバーに保存するには、新しいバックアップ ディレクトリを作成します
$ mkdir /bak
ディレクトリに入った後、続けて 2 つのバックアップ ディレクトリを作成しますフォルダー、mysqlBak と shDir、1 つはスクリプト ファイル用、1 つは特定のバックアップ ファイルを配置することです。
これで、新しいスクリプトを作成し、shDir ディレクトリに入り、実行します
$ vim mysqlBak.sh
コードは次のとおりです:
#!bin/sh ################### 数据库配置信息 ####################### createAt=`date +%Y-%m-%d-%H:%M:%S` user=root passwd=ghc1996 dbname=ispace mysql_back_path=/bak/mysqlBak ################### 执行命令 ####################### mysqldump -u $user -p$passwd $dbname > $mysql_back_path/$createAt.sql cd /bak/mysqlBak /usr/local/git/bin/git add . /usr/local/git/bin/git commit -m $createAt /usr/local/git/bin/git push
これは単なるスクリプトです。Linux を知っている人には理解しやすいと思います。データベースをバックアップし、リモート ウェアハウスにプッシュします。 .
したがって、これはスクリプトであるため、このスクリプトをいつ実行するかを指定し、スクリプトの実行を指定する必要があります。
$ crontab -e
毎年早朝にバックアップを実行したいと考えています。日を指定してリモート ウェアハウスに追加し、
$ 0 0 * * * /bin/sh /bak/shDir/mysqlbak.sh
Linux crontab で指定されている時間は 5 つの部分だけです
コマンド crontab を使用します-e を使用してタイミング スクリプトを直接編集します。時刻の具体的な名前
例:
0 0,3,7,9,12,15,18,21,23 * * * /bin/sh /bak/shell/mysqlBak.sh
この場合、私は0,,3,7,9,12,15,18,21,23時になります毎日時計 このスクリプト ファイルを実行すると、基本的なデータベース バックアップが実現します。
スケジュールされたタスクを実行します:
$ crontab -l
サービスが開始しない場合は、スケジュールされたタスクを再起動します
$ systemctl restart crond
その後、スケジュールされたタスクが開始されたので、リモート ウェアハウスを送信するための前提条件は、サーバー上で SSH キーを生成し、それをコード クラウドに追加することです (これについても上で説明しました)。ファイルを送信する必要があるディレクトリ、git ディレクトリの初期化。わかりました。このラウンドで必要なタスクを構成できます。
もちろん、プロセス中にいくつかの問題が発生する可能性があります。関連するリンクにそれらをリストしました。
#この方法により、毎日早朝にデータベースをバックアップし、同時にコード クラウドのリモート ウェアハウスに送信することができます。これも私たちが望んでいる効果です。 . また、バックアップ サイクルは私たち次第であるとも言いました。それは、プロジェクトのデータ ボリュームのサイズによって決まります。各フレームワークには独自のバックアップ メカニズムがあります。ここで書くことは、独自に実装した一般的なバックアップ メカニズム以上がLinux MySQL のスケジュールされたバックアップと Git リポジトリへのアップロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。