Beskrivelse
Crontab-seksjoner
Vultr tilbyr automatisk sikkerhetskopiering som et alternativ for alle Performance Series VPS. Denne artikkelen gir, i tillegg til denne funksjonen, et alternativ for automatisk å lage daglige databasesikkerhetskopier på serveren, og også sende dem over FTP til backupserveren eller til og med filverter.
Oversikt
- Automatiske sikkerhetskopier kjøres daglig. Tidspunktet for sikkerhetskopieringen kan konfigureres.
- Mange filverter tilbyr filoverføring over FTP, slik at du automatisk kan sende databasen til din personlige konto.
- Den sender en e-post etter at sikkerhetskopieringen er fullført.
Beskrivelse
Først må du opprette og endre til /backupskatalogen.
mkdir /backups
cd /backups
Deretter, bruk nanoeller din favorittredigerer, lag skriptfilen:
nano backupdb.sh
Nå, kopier og lim inn dette skriptet, og rediger variablene øverst i henhold til innstillingene dine:
#!/bin/bash
############### Infos - Edit them accordingly ########################
DATE=`date +%Y-%m-%d_%H%M`
LOCAL_BACKUP_DIR="/backups"
DB_NAME="database_name"
DB_USER="root"
DB_PASSWORD="root_password"
FTP_SERVER="111.111.111.111"
FTP_USERNAME="ftp-user"
FTP_PASSWORD="ftp-pass"
FTP_UPLOAD_DIR="/upload"
LOG_FILE=/backups/backup-DATE.log
############### Local Backup ########################
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz
############### UPLOAD to FTP Server ################
ftp -nv $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
put "$DATE-$DB_NAME.sql.gz"
bye
EndFTP
############### Check and save log, also send an email ################
if test $? = 0
then
echo "Database Successfully Uploaded to the Ftp Server!"
echo -e "Database Successfully created and uploaded to the FTP Server!" | mail -s "Backup from $DATE" your_email@email.com
else
echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi
Etter at du er ferdig med å redigere skriptet og har lagret filen, gjør vi filen kjørbar ved å bruke følgende kommando:
chmod +x backupdb.sh
Du kan teste det nå ved å skrive inn terminalen.
/backups/backupdb.sh
... og etter at den er fullført, skriv inn for ls -aå se om databasen har blitt sikkerhetskopiert. Bekreft også om den ble sendt til FTP-serveren din.
Hvis alt fungerte bra så langt, kan vi få det til å kjøre daglig ved å bruke Crontab.
Crontab-seksjoner
Du kan redigere crontab med følgende kommando:
crontab -e
Dette vil få opp et tekstredigeringsprogram der du kan legge inn tidsplanen din med hver jobb på en ny linje.
Hver av seksjonene er atskilt med et mellomrom, der den siste seksjonen har ett eller flere mellomrom. Slik er en cron-jobb lagt opp:
minutt (0-59), time (0-23, 0 = midnatt), dag (1-31), måned (1-12), ukedag (0-6, 0 = søndag), kommando
Så, i redigeringsprogrammet, skriv eller lim inn denne linjen:
30 02 * * * /backups/backupdb.sh
Eksemplet ovenfor vil kjøre /backups/backupdb.shklokken 02:30 hver dag i hver måned. Selvfølgelig kan du endre tiden slik du foretrekker.
Nå er det bare å lagre og lukke filen. Til det planlagte tidspunktet vil sikkerhetskopieringen bli utført.