|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Malmö (Svezia) - Copenhagen
Messaggi: 962
|
[help] MySQL: backup di DB remoto
hola amigos,
per fare i backup in locale sul mio serverino casalingo utilizzo questo script: Codice:
#!/bin/sh
#
# MySQL database backup script
#
##### CONFIG ###################################################################
MYSQLUSER="root"
MYSQLPW="`cat /etc/mysql/mysql.passwd`" # MySQL admin password
MYSQLDB="/var/lib/mysql" # MySQL database directory
BACKDIR="/var/backup/mysql" # Directory for backups
MYSQLDMP="/usr/bin/mysqldump" # Location of dump binary
DAYSKEEP="5" # Days to keep old backups
##### CODE #####################################################################
DATE=`date "+%Y-%m-%d"`
cd ${MYSQLDB}
mkdir -p ${BACKDIR}
function dbbackup()
{
mkdir -p ${BACKDIR}/${1}
BACKFILE=${BACKDIR}/${1}/${1}-${DATE}.dmp.bz2
${MYSQLDMP} -u ${MYSQLUSER} --password=${MYSQLPW} ${1} | bzip2 > ${BACKFILE}
}
# For each directory run the backup
for i in * ; do
if test -d $i ; then
dbbackup $i
fi
done
# Delete old backups
rm -f `find ${BACKDIR} -type f -mtime +${DAYSKEEP}`
Il mio problema é che mi occupo di un sito su un server shared, dove non ho accesso shell né cron. Quello che vorrei fare é modificare lo script qui sopra, in modo da farlo connettere al server remoto mysql.dominio.com e farmi un backup settimanale del db Quando mi loggo a mysql.dominio.com alla mia username e passwd corrisponde un solo db, x cui non ci sarebbe nemmeno da selezionare il db, ma semplicemente dirgli di fare il backup del db che gli si presenta (e di cui in caso cmq ho anche il nome volendo) Il mio obiettivo é adattare lo script di cui sopra per fargli fare questa connessione dal mio serverino casalingo e salvare su di esso il backup del db remoto. Questo script verrebbe inserito in un cronjob sul mio server ed eseguito settimanalmente. Ora peró non ci capisco una ceppa di programmazione, anche se mi rendo conto che probabilmente non dovrebbe essere una cosa troppo difficile... qualcuno mi aiuta? Grassie
__________________
http://www.francescoinsvezia.net Il mio blog scandinavo! aka "La mia vita fra la gnokka"
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Malmö (Svezia) - Copenhagen
Messaggi: 962
|
help
__________________
http://www.francescoinsvezia.net Il mio blog scandinavo! aka "La mia vita fra la gnokka"
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Messaggi: 442
|
se il server MySQL accetta connessioni per quell'utente anche da hostnames diversi da 127.0.0.1 e localhost puoi usare mysqldump --opt -h hostname -u utente -p password database e opzionalmente puoi aggiungere | gzip > nome.gz per avere la compressione gzip.
Altrimenti ci vuole una pagina PHP nel server. Questa se non c'e' safe_mode attivo dovrebbe andare. Codice:
<?PHP
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/backup-db.gz',
localhost,
tuouser,
tuapass,
database,
getenv('DOCUMENT_ROOT')
));
echo '+DONE';
?>
Per quanto riguarda poi spedirlo sul tuo PC, dovresti collegarti periodicamente all'ftp e fare il GET e il DELETE.
__________________
- Ultima modifica di Maestro : 21-01-2005 alle 15:34. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Re: [help] MySQL: backup di DB remoto
non ho mai usato mysqdump o cose del genere... ma guardando la man di mysqldump, questo dovrebbe funzionare.... pero' provalo prima tu e poi provo io
Ciao! Codice:
#!/bin/sh
#
# MySQL database backup script
#
##### CONFIG ###################################################################
MYDB="nome_del_mio_database"
HOST="ip_mio_mysql_server"
MYSQLUSER="utente_con_cui_ti_logghi_nel_db"
MYSQLPW="`cat /etc/mysql/mysql.passwd`" # MySQL password dell'utente
BACKDIR="/var/backup/mysql" # Directory for backups
MYSQLDMP="/usr/bin/mysqldump" # Location of dump binary
DAYSKEEP="5" # Days to keep old backups
##### CODE #####################################################################
DATE=`date "+%Y-%m-%d"`
mkdir -p ${BACKDIR}
function dbbackup()
{
mkdir -p ${BACKDIR}/${1}
BACKFILE=${BACKDIR}/${1}/${1}-${DATE}.dmp.bz2
${MYSQLDMP} --opt --host=${HOST} -u ${MYSQLUSER} --password=${MYSQLPW} ${1} | bzip2 > ${BACKFILE}
}
dbbackup $MYDB
# Delete old backups
rm -f `find ${BACKDIR} -type f -mtime +${DAYSKEEP}`
EDIT: ovviamente funziona solamente se mysql accetta connessioni anche dal tuo ip.... EDIT2: ho corretto un po di boiate... EDIT3: ho aggiunto --opt
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ Ultima modifica di HexDEF6 : 21-01-2005 alle 16:05. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Malmö (Svezia) - Copenhagen
Messaggi: 962
|
Allora... intanto ti ringrazio x l´aiuto.
Il test con mysqldump funziona perfettamente... con questa sintassi: Codice:
mysqldump --opt -h mysql.domovanje.com -u <username> -p <nomedb> | gzip > nome.gz Codice:
mysqldump --opt -h mysql.domovanje.com -u <username> -p <password> <nomedb> | gzip > nome.gz A parte questo... é ottimo
__________________
http://www.francescoinsvezia.net Il mio blog scandinavo! aka "La mia vita fra la gnokka"
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Malmö (Svezia) - Copenhagen
Messaggi: 962
|
azz... nel frattempo ha risposto anche Hex... che mi risparmia un mare di lavoro
Adesso provo il tuo scriptino
__________________
http://www.francescoinsvezia.net Il mio blog scandinavo! aka "La mia vita fra la gnokka"
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
Ciao!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Malmö (Svezia) - Copenhagen
Messaggi: 962
|
nono... testato or ora... funzica come un orologio svizzero
Complimenti e grazie x l´aiuto ad entrambi
__________________
http://www.francescoinsvezia.net Il mio blog scandinavo! aka "La mia vita fra la gnokka"
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:52.



















