質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

1回答

495閲覧

スクリプト内でmysqldumpを取得したいです。

ysysys

総合スコア16

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2017/07/12 07:23

編集2017/07/13 00:25

スクリプト内で、mysqldumpでバックアップを取る手順を行いたいのですが、
想定通りに動かなくて困っております。

ご教示いただければ幸いです。スクリプトの内容は以下の内容になります。

#!/bin/bash

hogedb=/share/backup/hogedb

cd $hogedb
expect -c "
spawn mysqldump --add-drop-table -u root -p hogedb > test_date +%Y%m%d.bak.sql
expect "Enter password: "
send "hogehoge\n"
"

上記のスクリプトを実行し、バックアップが取れることを想定していたのですが、以下のようにプロンプトが戻り、バックアップも作成されませんでした。

spawn mysqldump --add-drop-table -u root -p hogedb > test_20170712.bak.sql
Enter password: [root@hoge 15:57:17 ~]#
[root@hoge 15:57:18 ~]#
[root@hoge 15:57:18 ~]#

スクリプトの記述で間違いのある部分を教えていただけないでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suama

2017/07/12 13:38 編集

mysqldumpコマンドを直に使うのではなくて、一旦expectを経由して呼び出すのは必須ですか?
ysysys

2017/07/13 00:25 編集

返信ありがとうございます。必須ではありません。 ただ、mysqldumpを取得する際に、パスワードを聞かれるので、そのパスワードを自動で返すのに適しているのが、expectコマンドだというのをネットで調べて使用しています。 expectコマンド以外でパスワードをシェルの中で自動で返す方法などありましたらご教示いただけないでしょうか。。
suama

2017/07/13 02:47

自己解決されたようで良かったです!場合によってはパスワードをコマンドラインで渡すとセキュリティ設定でエラーになることがあるので、その際は環境変数に設定する方法があります。今回は大丈夫そうですね。
ysysys

2017/09/04 07:45

返信が遅くなり申し訳ありません。 エラーになる場合もあるのですね。。。色々試してみます!ありがとうございました!
guest

回答1

0

自己解決

ありがとうございました。

file=/share/backup/hogedb/test_date +%Y%m%d.bak.sql

mysqldump --add-drop-table -u root -p hogedb --password=hogehoge > $file

上記の記述でシェルの修正を行いました。

投稿2017/07/13 02:19

ysysys

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問