Ciao, sto usando questo script per fare il backup di un sito:
codice:
#!/bin/bash
# CONFIG #
USER_DB="user001"
PASSWORD_DB="pass001;"
DBNAME="nomedb"
DIR_BACKUP="/root/";
PROJECT_DIR="/srv/www/htdocs/workingprogress/001"
TODAY=`date +%Y-%m-%0e`;
SQLFILE=progetto${TODAY}.sql
GZIPFILE=progetto${TODAY}.tgz
CMD="mysqldump -u\"${USER_DB}\" -p\"${PASSWORD_DB}\" ${DBNAME} > ${PROJECT_DIR}${SQLFILE}";
echo $CMD
`$CMD`
La cosa che crea problemi è la password con il ; finale (che non posso cambiare).
In pratica come vedete dallo script do un echo del comando e ricevo:
codice:
mysqldump --user="user001" --password="pass001;" nomedb> /srv/www/htdocs/workinprogress/001/progetto2008-11-25.sql
Se copio e incollo nella shell questo comando funziona perfettamente, mentre se eseguito nello script ottengo:
codice:
mysqldump: Got error: 1045: Access denied for user '"user001"'@'localhost' (u
sing password: YES) when trying to connect
Siccome il comando da shell funziona, penso sia una problematica dello script, sapete darmi una mano?
Grazie, ciao