シェルスクリプトを使用した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

推薦する

JavaScript における変数と関数の昇格の詳細な例

js 実行字句解析フェーズ: 形式パラメータ解析、変数宣言解析、関数宣言解析の 3 つの部分が含まれ...

Linux システムの最適化 (カーネルの最適化) に関するいくつかの提案

スワップを無効にするサーバーがデータベース サービスまたはメッセージ ミドルウェア サービスを実行し...

MySQL 5.5.27 winx64 のインストールと設定方法のグラフィックチュートリアル

1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

アーティストの自己啓発におけるいくつかの経験

会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...

ORM モデル フレームワークを使用して MySQL データベースを操作する方法

ORM とは何ですか? ORM は Object Relational Mapping の略で、オブ...

一般的な HTTP ステータス コード 10 個の詳細な説明

HTTP ステータス コードは、Web サーバーの HTTP 応答ステータスを示すために使用される ...

CentOS での mysql5.7 の詳細なインストールと設定のチュートリアル

インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...

モバイル端末におけるビューポートの具体的な使用法についての簡単な説明

目次1. 基本概念1.1 2種類のピクセル1.2 3つのビューポート2. ビューポート設定3. 1回...

Nginx 静的サービス設定の詳細な説明 (ルートとエイリアスの指示)

静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...

Vueリストデータを削除した後、ページを自動的に更新する方法と更新方法の詳細な説明

問題の説明:フロントエンドがデータの一部を削除したり、新しいデータを追加したりすると、バックエンドの...

MySQL交換パーティションの詳細な例

MySQL交換パーティションの詳細な例序文exchange パーティションを紹介する前に、まず my...

MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...

リフレッシュリダイレクトを実現する HTML ヘッドタグメタ

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

CentOS 8 カスタム ディレクトリ インストール nginx (チュートリアルの詳細)

1. ツールとライブラリをインストールする# PCRE は、Perl 互換の正規表現ライブラリを含...