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

한 단계 더 나아가 자격 증명을 변수로 이동할 수 있습니다.

#!/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

이것은 당신에게 도움이 될 것입니다.

관련 정보