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

推薦する

アニメーションとトランジションの違い

CSS3アニメーションとJSアニメーションの違いJSはフレームアニメーションを実装しますCSS3はト...

Bootstrapグリッドの垂直および水平配置の詳細な説明

目次1. Bootstrap グリッドレイアウト2. 垂直方向の配置2.1 行タグの垂直方向の配置を...

sysbenchツールによるMySQLデータベースのパフォーマンステストの実装方法

1. 背景Sysbench は、システムのハードウェア パフォーマンスをテストできるストレス テスト...

CSS のインライン スタイルに変換するソリューション (css-inline)

シーンについて話すメールを送信サードパーティのウェブサイトにHTMLを埋め込む他の編集者の記事をコピ...

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

React Routerの歴史について簡単に説明します

React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...

DOCTYPEタイプの詳細な紹介

<br />通常、HTML では次の方法で DOCTYPE を宣言します。 <!D...

Vue.jsはシンプルなタイマー機能を実装します

この記事では、参考までに、簡単なタイマー機能を実装するためのvue.jsの具体的なコードを紹介します...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

Centos 7.4 でリモート アクセス制御を実装する方法

1. SSHリモート管理SSH はセキュア チャネル プロトコルであり、主にリモート ログイン、リモ...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

Docker ビルド kubectl イメージ実装手順

プログラムサービスがgitlab ci/cdと統合されたk8sを使用してデプロイされている場合、gi...

MySQL v5.7.18 解凍バージョンのインストール詳細チュートリアル

MySQLをダウンロード5.1.1.1 より前のバージョン私のコンピュータは64ビットなので、Win...

JavaScript でプロトタイプ パターンを実装する方法

概要プロトタイプ パターンは、プロトタイプ インスタンスによって作成されるオブジェクトの型を指し、こ...

Apache Bench で Web ストレス テストを実装する方法

1. Apache Benchの紹介ApacheBench は、Apache サーバーに付属する W...