データベースの自動バックアップを作成するには、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
これはあなたに役立ちます。