スクリプト変数に2つの単語のパスワードを使用するには?

スクリプト変数に2つの単語のパスワードを使用するには?

既存のデータベースのバックアッププロセスを自動化するスクリプトを作成しようとしています。

私が経験している問題は、mysqldumpスペースで区切られた2つの単語からなるコマンド(以下を参照)にデータベースパスワードを渡すことです。

# database credentials
DATABASEHOST="localhost"
DATABASEUSER="username"
DATABASEPASSWORD="Compound Password"
DATABASESCHEMA="schema"

# Local directory of mysqldump file
LOCALDIR=/home/user/db-bkp

#--- end config

mysqldump --host=$DATABASEHOST --user=$DATABASEUSER --password=$DATABASEPASSWORD $DATABASESCHEMA > $LOCALDIR/`date +%Y%m%d`_bkp_$DATABASESCHEMA.sql

スクリプトを実行すると、関連するmysqldump関連メッセージは次のようになります。

mysqldump: Got error: 1045: "Access denied for user 'username'@'localhost' (using password: YES)" when trying to connect

ここで私は何を間違っているのですか?

ベストアンサー1

変数を引用:

mysqldump --host="$DATABASEHOST" \
          --user="$DATABASEUSER" \
          --password="$DATABASEPASSWORD" \
          --database="$DATABASESCHEMA" \
  > "$LOCALDIR"/"$(date +%Y%m%d)_bkp_$DATABASESCHEMA.sql"

また見なさい:bash / POSIXシェルで変数を引用することを忘れてしまうセキュリティリスク

おすすめ記事