データベースのバックアップ用Linuxシェルスクリプト
データベースのバックアップのためのスクリプトをいろいろ試したが、うまくいかなかった。1時間ごとにデータベースをバックアップしたいのですが。
quot;/etc/cron.hourly/"フォルダにファイルを追加し、chmodを755に変更したが、実行されない。
とりあえず擬似コードを書いてみた。
この操作のためのスクリプトを作成し、さらに何をすべきかを教えていただけると幸いです。
このスクリプトを /etc/cron.hourly/
フォルダに追加すると、次のようになります。
- 現在の日付を取得し、変数
date=date(d_m_y_H_M_S)
を作成する。 - ファイル名の変数を作成する、
filename="$date".gz
。 - 以下のようにデータベースのダンプを取得する
mysqldump --user=my_user --password=my_pass --default-character-set=utf8 my_database | gzip > "/var/www/vhosts/system/example.com/httpdocs/backups/$("filename")
) - フォルダ
/var/www/vhosts/system/example.com/httpdocs/backups/
内の8日以上前のファイルをすべて削除する。 - ファイル
"/var/www/vhosts/system/example.com/httpdocs/backup_log.txt"
に、次のテキストが書き込まれます:バックアップは $("date")` に作成されます。 - ファイルの所有者をrootから"my_user"に変更する(chown)。なぜなら、"my_user"のFTPアカウントからバックアップファイルとログファイルを開きたいからです。
- クーロンが終わるたびにメールが来るのは勘弁してほしい。
>/dev/null 2>&1
が追加されます。
38
9
何時間も何時間もかけて、私は下のような解決策を作りました。他の方々のために、コピーペーストします。
まず、スクリプトファイルを作成し、このファイルに実行可能なパーミッションを与えます。
次に、次の行をShift+Insでファイルにコピーします。
編集してください: InnoDBを使用していて、バックアップに時間がかかる場合は、ロックを防ぐために "single-transaction" 引数を追加することができます。そのため、mysqldumpの行は次のようになります:
このようなスクリプトを作成します:
次に、このスクリプトを実行するユーザーの
crontab
を編集します:というエントリーを追加します。
これで、毎日毎時1分に実行されるようになります。
あとは、ロールケーキなどの機能を追加すればOKです。
同じ問題が発生しました。 しかし、なんとかスクリプトを書きました。 これが役立つことを願っています。
これが誰かを助ける場合に備えて、ubuntu用のmysqlバックアップスクリプトを次に示します。
PS:ubuntuにpvとzipをインストールすることを忘れないでください。
6時間ごとに実行するためにubuntuで
crontab -e
を使用してcrontabを設定する方法は次のとおりです。すばらしいのは、どこからでも解凍しやすいzipファイルを作成することです。
このオープンソースツール、matiri、https://github.com/AAFC-MBB/matiriを検討してください。これは、Sqlite3のメタデータを含む同時mysqlバックアップスクリプトです。 特徴:
マルチサーバー:複数のMySQLサーバーは、同じまたは個別の物理サーバーに同じ場所に配置されているかどうかに関係なくサポートされます。 並列:バックアップするサーバー上の各データベースは、並列に別々に行われます(通貨設定可能:デフォルト:3)。 圧縮:各データベースバックアップが圧縮されています。 チェックサム:保存されている各圧縮バックアップファイルのSHA256とすべてのファイルのアーカイブ。 アーカイブ済み:すべてのデータベースバックアップが一緒になって単一のファイルになりました。 記録:Sqlite3データベースに保存されているバックアップ情報。
完全な開示:元のマティリ作者。
DBAとして、問題が発生した場合にMySQLデータベースのバックアップをスケジュールして、現在のバックアップからデータベースを回復できるようにする必要があります。
ここでは、mysqldumpを使用してmysqlデータベースのバックアップを取得しています。これは、スクリプトに入れることができるのと同じです。
[orahow@oradbdb DB_Backup] $ cat .backup_script.sh。
読み続けます。 .... MySQLバックアップ。
MYSQLデータベースのバックアップを作成するために、シェルスクリプトを準備しました。 データベースのバックアップを作成するために使用できます。
スクリプトでは、ユーザー名、パスワード、データベースの名前(または複数の場合はデータベース)と、異なる場合はポート番号を指定するだけです。
スクリプトを実行するには、コマンドを次のように使用します。
また、次のようなファイルで結果を表示する場合は、次のことをお勧めします。 失敗が発生するか、バックアップに成功します。 次に、コマンドを次のように使用します。
ありがとうございました。