シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

データベースを頻繁にバックアップするのは良い習慣です。データベースの破損やデータの損失の可能性は非常に低いですが、一度そのようなことが起こると、後悔しても仕方がありません。通常、Web サイトやアプリケーションのバックグラウンドでデータベースをバックアップするための機能ボタンはありますが、手動で実行する必要があります。毎日自動的にバックアップする安全な方法が必要です。次のシェル スクリプトは、MySQL データベースを毎日バックアップするように Crontab を設定する方法を示しています。

#!/bin/bash
# データベース認証 user=""
 パスワード=""
 ホスト=""
 db_name=""
# その他 backup_path="/path/to/your/home/_backup/mysql"
 日付=$(日付 +"%d-%b-%Y")
# エクスポートされたファイルのデフォルトの権限を umask 177 に設定します
# データベースを SQL ファイルにダンプする mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

上記のスクリプトを使用すると、SQL バックアップ ファイルを毎日エクスポートでき、ファイル名はその日の日付に応じて生成されます。時間が経つにつれて、このようなファイルが大量に生成されます。古いバックアップ ファイルを定期的に削除する必要があります。次のコマンドラインはこのタスク用です。上記のスクリプトの後に追加できます。

# 30 日以上経過したバックアップ ファイルを削除します。find $backup_path/* -mtime +30 -exec rm {} \;

上記のスクリプトを使用しているときに、問題が発生したことがあります。Crontab がスクリプトのエクスポートを定期的に実行したときにエラーは発生しませんでしたが、エクスポートされた SQL ファイルは空でした。ただし、コンソールにログインしてスクリプトを手動で実行すると、バックアップは成功しました。後で調べたところ、Crontab 実行スクリプトにシステム環境情報が不足しており、mysqldump が見つからないことがわかりました。修正方法は、mysqldump のフルパスを使用することでした。エラー メッセージがない理由は、mysqldump がエラー メッセージを stderr に出力するためです。エラー メッセージが表示されるように、コマンドの最後に「2>&1」を追加します。

mysqldump -ujoe -ppassword > /tmp/somefile 2>&1

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • HBASE でよく使用されるシェル コマンド、追加、削除、変更、クエリ メソッド
  • MySQL のスケジュールされたバックアップ、削除、および回復機能を実装するシェル スクリプト
  • MySQLクエリ結果をシェルで簡単に処理する方法
  • シェルを使用してMySQLデータバックアップスクリプトを作成する
  • シェルでパスワードなしでMySQLデータベースに素早くログインする方法
  • シェルスクリプトを使用して、mysql を追加、削除、変更、チェックし、my.cnf を構成します。

<<:  Linuxでプロセスが占有するポート番号を表示する

>>:  自作メニューをクリックする効果を実現するJavaScript

推薦する

HTML 基本構造_Powernode Java アカデミー

多くの場合、Web ページ開発を学ぶときに最初に印象に残るのは、html または htm サフィック...

Vueは製品の拡大鏡効果を実現します

この記事の例では、製品の拡大鏡効果を実現するためのVueの具体的なコードを共有しています。具体的な内...

ソースコードから MySQL 8.0.20 をコンパイルしてインストールする詳細なチュートリアル

前回の記事では、次のことを紹介しました。 MySQL8.0.20 インストール チュートリアルとイン...

...

鏡像効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスでミラーイメージ効果を実現するための具体的なコードを参考...

Nginx レベルで基本的なユーザー認証を構成する手順を完了します。

序文アプリケーション シナリオ: おそらく、内部 Web サイトは外部ユーザーにアクセス可能である必...

css n番目から始まるすべての要素を取得する

具体的なコードは次のとおりです。 <div id="ボックス"> &...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

Linux でハードディスクのサイズを確認し、ハードディスクをマウントする方法

Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...

MySQL 5.7.15 のインストールと設定方法のグラフィック チュートリアル (Windows)

MySQL をインストールする必要があるため、インストール手順を以下のように記録します。 自分なり...

MySQLにおけるACIDトランザクションの実装原理の詳細な説明

導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...

Linux で MySQL のデフォルト エンコーディングを変更する方法

開発プロセス中に、MySQL データベースを復元した後にデータベース データに文字化けが発生した場合...

モバイル端末の適応に関する簡単な説明

序文フロントエンド コードの記述では、「互換性」という言葉から逃れることはできません。過去の PC ...

Docker実行コンテナが作成状態にある問題についての簡単な説明

最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...

Apache Tomcat と IDEA エディターの統合に関する詳細なチュートリアル

1. Apache Tomcat 公式サイトから Tomcat 圧縮パッケージをダウンロードします。...