1. 遭遇した問題私たちは皆、mysqldump を使用した後、mysql パスワードを手動で入力する必要があることを知っています。そのため、定期的なバックアップを実現するために crontab で直接 mysqldump を使用することはできません。実際、expect スクリプトを使用してパスワードを自動的に入力することで、真の定期バックアップを実現できます。 expect が何なのか分からない場合は、まずこの記事を読むことをお勧めします: https://www.jb51.net/article/197865.htm 2. アイデア
考え方は次のとおりです。 3. コード3.1. 単一マシンのコールドバックアップ (1) mysqldumpシェルスクリプト #!/bin/bash mysql_ユーザー名=$1 バックアップデータベース=$2 バックアップパス=$3 mysqldump -u ${mysql_username} -p --databases ${backup_databases} > ${backup_path} (2)mysqldumpのexpectスクリプトを実行すると、mysqlコードを自動的に入力することができます。 #!/usr/bin/期待する タイムアウト5を設定 #ローカル情報を設定する set mysql_username [lindex $argv 0] バックアップデータベースを設定する [lindex $argv 1] バックアップパスを設定する [lindex $argv 2] #utils パス utils_path /home/hadoop/backup_script/utils を設定します bash ${utils_path}/backup.sh ${mysql_username} ${backup_database} ${backup_path} を起動します 期待する { "*assword*" {send "nimabidecao1\r"} #パスワードを入力} EOFを期待する (3)スクリプトを駆動し、expectを実行します。必要なパラメータを渡すことができます。 #!/bin/bash #ここでのデータはmysql_username=rootと記述できます バックアップデータベース=学校 バックアップパス=$HOME/backup_data/${backup_databases}.sql #expect スクリプトを実行します。expect $HOME/backup_script/single_cold_backup/single_cold_backup_service.exp ${mysql_username} ${backup_databases} ${backup_path} ここではパスに細心の注意を払わなければなりません。絶対パスを使用して実行することを強くお勧めします。 (4)crontabを使用して定期的にドライバースクリプトを実行し、crontabエディターに入ります: 0 9 * * 1 bash /home/hadoop/backup_script/single_cold_backup/single_cold_backup_driver.sh これは、毎週月曜日の午前 9 時にバックアップを実行することを意味します。希望する時間を確認したい場合は、この Web サイト (https://crontab-generator.org/) にアクセスして、希望する時間を選択できます。
(1)リモートファイルをコピーして、MySQLバックアップファイルをローカルマシンにコピーする #!/bin/bash ローカルバックアップパス=$1 別のユーザー=$2 別のIP=$3 別のバックアップパス=$4 scp ${local_backup_path} ${another_user}@${another_ip}:${another_backup_path} (2)mysqldumpのexpectスクリプトを実行すると、mysqlコードを自動的に入力することができます。 #!/usr/bin/期待する タイムアウト5を設定 #ホスト情報セット mysql_username [lindex $argv 0] バックアップデータベースを設定する [lindex $argv 1] バックアップパスを設定する [lindex $argv 2] #スレーブ情報セットslave_user [lindex $argv 3] slave_ip を設定する [lindex $argv 4] slave_backup_path を設定する [lindex $argv 5] #utils パス utils_path /home/hadoop/backup_script/utils を設定します bash ${utils_path}/backup.sh ${mysql_username} ${backup_database} ${backup_path} を起動します 期待する { "*assword*" {send "nimabidecao1\r"} #パスワードを入力} bash ${utils_path}/scp.sh ${backup_path} ${slave_user} ${slave_ip} ${slave_backup_path} を起動します 期待する { "*assword*" {send "nimabidecao1\r"} #パスワードを入力} EOFを期待する (3)スクリプトを駆動し、expectを実行します。必要なパラメータを渡すことができます。 #!/bin/bash #ローカルマシン情報 mysql_username=root バックアップデータベース=学校 バックアップパス=$HOME/backup_data/${backup_databases}.sql #スレーブ情報 slave_user=meizhaowei スレーブIP=172.20.10.14 スレーブバックアップパス=バックアップデータ/doule_cold_backup_data/${バックアップデータベース}.sql # 絶対パスの書き込みを実行します。期待値は $HOME/backup_script/double_cold_backup/double_cold_backup_service.exp ${mysql_username} ${backup_databases} ${backup_path} ${slave_user} ${slave_ip} ${slave_backup_path} です。 (4)crontabを使用してドライバースクリプトを定期的に実行する 0 9 * * 1 bash /home/hadoop/backup_script/double_cold_backup/double_cold_backup_driver.sh これは、毎週午前9時にバックアップを実行することを意味します Linux で mysqldump+expect+crontab を使用して MySQL の定期コールド バックアップを実装する方法についての説明はこれで終わりです。MySQL の定期コールド バックアップの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vueプロジェクトはログインと登録の効果を実現します
目次1. 計算プロパティ構文: 1. 省略形:文法: 2. 文章を完成させる: 2. モニタリング(...
方法1: CSSオーバーフロー省略を使用して解決する解決策は次のとおりです。 CSSコード: ディス...
場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...
目次目的npm init および package.json ファイルモジュールのインストールと管理モ...
ブラウザベンダーが標準を曲げて、ルールに従わないことをすると、問題や少なくとも混乱が生じる可能性があ...
序文Web 上でオンライン コード コンパイルの効果を実現したい場合は、 CodeMirrorを再度...
序文SSH 経由でさまざまなリモート システムに頻繁にアクセスする場合は、このトリックを使用すると時...
1. スケジュールタスクを作成する命令crontab -eは現在のユーザーの編集インターフェースに入...
目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...
Linux がすべてのコマンドをサポートしていない場合はどうすればいいですか?すべてのLinuxコマ...
環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...
目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...
1. nginxソースディレクトリに新しいrtmpディレクトリを作成し、git clone http...
GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアル1. プ...
目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...