Lindsay Skrevet 2. februar 2009 Del Skrevet 2. februar 2009 Jeg kjører dette scriptet for backup av databaser men den tar ikke vare på eldre backups så hvordan gjør jeg dette. Og skulle ha hatt kommando for å restore en enkel database om det trengs Her er scriptet jeg bruker #!/bin/bash ### MySQL Server Login Info ### MUSER="root" MPASS="MYSQL-ROOT-PASSWORD" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" BAK="/backup/mysql" GZIP="$(which gzip)" ### FTP SERVER Login info ### FTPU="FTP-SERVER-USER-NAME" FTPP="FTP-SERVER-PASSWORD" FTPS="FTP-SERVER-IP-ADDRESS" NOW=$(date +"%d-%m-%Y") [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BAK/$db.$NOW-$(date +"%T").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPS Lenke til kommentar
ways Skrevet 3. februar 2009 Del Skrevet 3. februar 2009 Jeg kjører dette scriptet for backup av databaser men den tar ikke vare på eldre backups så hvordan gjør jeg dette. Og skulle ha hatt kommando for å restore en enkel database om det trengs Her er scriptet jeg bruker #!/bin/bash ### MySQL Server Login Info ### MUSER="root" MPASS="MYSQL-ROOT-PASSWORD" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" BAK="/backup/mysql" GZIP="$(which gzip)" ### FTP SERVER Login info ### FTPU="FTP-SERVER-USER-NAME" FTPP="FTP-SERVER-PASSWORD" FTPS="FTP-SERVER-IP-ADDRESS" NOW=$(date +"%d-%m-%Y") [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BAK/$db.$NOW-$(date +"%T").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPS fjern "||/bin/rm -f $BAK/*", der den sletter gamle backuper. men husk at dette fører til at backupkatalogen fylles opp. du kan evt. få den til å slette backuper eldre enn en viss dato. feks: $year=$(date +"%Y") year=$((year-1)) rm -f $BAK/$db.*$year".gz" dette er utestet kode, men hensikten er altså å slette alt som er fra 2008. du får prøve deg frem i et skall før du faktisk kjører scriptet på databasene dine. Lenke til kommentar
Patience Skrevet 3. februar 2009 Del Skrevet 3. februar 2009 Denne tråden var feilpostet og er nå flyttet til riktig kategori. Vær nøye med å påse at du poster rett. Lenke til kommentar
Dj_Offset Skrevet 3. februar 2009 Del Skrevet 3. februar 2009 fjern "||/bin/rm -f $BAK/*", der den sletter gamle backuper. men husk at dette fører til at backupkatalogen fylles opp. du kan evt. få den til å slette backuper eldre enn en viss dato.feks: $year=$(date +"%Y") year=$((year-1)) rm -f $BAK/$db.*$year".gz" find ${BAK} -type f -mtime +20 -name 'db.*.gz' -delete Denne sletter alle filer i $BAK, som er modifisert for mer enn 20 dager siden og har navn som begynner på "db." og slutter på ".gz" Lenke til kommentar
Lindsay Skrevet 4. februar 2009 Forfatter Del Skrevet 4. februar 2009 (endret) Nå har jeg endret scriptet og har også plassert den i /etc/cron.hourly/ men den kjører ikke hver time da Men jeg trenger et restore script også for databasene om det skulle trenges Endret 4. februar 2009 av Lindsay Lenke til kommentar
ways Skrevet 5. februar 2009 Del Skrevet 5. februar 2009 Nå har jeg endret scriptet og har også plassert den i /etc/cron.hourly/ men den kjører ikke hver time da Men jeg trenger et restore script også for databasene om det skulle trenges restore kan du gjøre manuelt =) er bare å pakke ut databasen, og gi den til mysql. heter vel mysqlimport eller noe sånt. evt. via den grafiske klienten. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå