cPanel cronジョブのmysqldumpの問題

cPanel cronジョブのmysqldumpの問題

データベースの自動バックアップを作成するには、cPanel cronジョブでこのコマンドを使用します。

mysqldump --opt -Q -u {mysql_user_name} --password='{password}' {database} | gzip > /home/[account_name]/db_backup/db_backup$(date +"%Y.%m.%d.%S.%N").sql.gz

SSH / puttyを介してこのコマンドを実行しようとすると正常に動作しますが、cPanel cron(サーバーOSはCENTOS 7.6 kvm)で使用するとこのエラーが発生します。

/bin/bash: -c: line 0: unexpected EOF while looking for matching `''
/bin/bash: -c: line 1: syntax error: unexpected end of file

ベストアンサー1

MySQLパスワードには特殊文字があるため、cronジョブでbareコマンドを使用するには%cronに特別な意味があるため、このコマンドをエスケープする必要があります。

代わりに、次の簡単なスクリプトを使用することをお勧めします。

#!/bin/bash

mysqldump --opt -Q -u'{mysql_user_name}' --password='{password}' {database} | gzip > /home/[account_name]/db_backup/db_backup$(date +"%Y.%m.%d.%S.%N").sql.gz

さらに 1 つのステップで、資格情報を変数に移動できます。

#!/bin/bash

MY_USER="{mysql_user_name}"
MY_PWD="{password}"

mysqldump --opt -Q -u"$MY_USER" --password="$MY_PWD" {database} | gzip > /home/[account_name]/db_backup/db_backup$(date +"%Y.%m.%d.%S.%N").sql.gz

これはあなたに役立ちます。

おすすめ記事