Lindsay Skrevet 2. februar 2009 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
ways Skrevet 3. februar 2009 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.
Patience Skrevet 3. februar 2009 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.
Dj_Offset Skrevet 3. februar 2009 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"
Lindsay Skrevet 4. februar 2009 Forfatter 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
ways Skrevet 5. februar 2009 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.
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å