ホームページ  >  記事  >  運用・保守  >  Linux MySQL のスケジュールされたバックアップと Git リポジトリへのアップロード

Linux MySQL のスケジュールされたバックアップと Git リポジトリへのアップロード

藏色散人
藏色散人転載
2019-12-24 14:29:292342ブラウズ

はじめに

小規模および中規模のプロジェクトをデプロイするとき、通常、データ ストレージ用のストレージ ツールとして 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 つの部分だけです

Linux MySQL のスケジュールされたバックアップと Git リポジトリへのアップロード

コマンド 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 サイトの他の関連記事を参照してください。

声明:
この記事はruoxiaozh.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。