EOF inesperado ao procurar correspondência ')'

3

Eu recebo esse erro bater na minha hospedagem virtual, em tarefas cron. Meu comando está seguindo:

/usr/bin/mysqldump --user=USERNAME --password="C\(mRA0_ifmv\(" DATABASE > ROOTFOLDER/backup/$(date +%F).sql && gzip ROOTFOLDER/backup/$(date +%F).sql

Eu me escondi de verdade do utilizador , base de dados e pasta pessoal para fins de segurança. Então, eu entendo que minha senha causa esse erro, mas não quero alterá-lo.

Como posso escapar do caractere de colchete aberto ou evitar esse erro e por que o "\" não funciona?

wapmorgan
fonte
1
De man mysqldump: Especificar uma senha na linha de comando deve ser considerado inseguro. Consulte a Seção 6.1.2.1, “Diretrizes para usuários finais para segurança de senha”. Você pode usar um arquivo de opções para evitar fornecer a senha na linha de comando.
Hastur
Concordar. Seu problema aqui é que você está usando --password= em primeiro lugar. Use um arquivo ini e todo o problema desaparece E se torna mais seguro.
Shadur

Respostas:

2

Use aspas simples para a senha.

--password='C\(mRA0_ifmv\('

Bash Manual: Single Quotes

Incluir caracteres entre aspas simples (‘'’) preserva o literal   valor de cada caractere entre aspas. Uma simples cotação não pode   ocorre entre aspas simples, mesmo quando precedidas por uma barra invertida.

Bash Manual: Double Quotes

Incluir caracteres entre aspas duplas (‘“ ’) preserva o literal   valor de todos os caracteres entre aspas, com a exceção de "$",   "` "," \ "E, quando a expansão do histórico estiver ativada,"! ".

Steven
fonte
Como "\" não é parte da senha, eu preciso remover barras invertidas, certo?
wapmorgan
Está correto. Funcionou?
Steven
Não, "EOF inesperado ao procurar correspondência ')'". Mas eu esqueci de acrescentar que isso não é um verdadeiro golpe, é jailshell do cPanel distributivo.
wapmorgan