Vultr offre il backup automatico come opzione per qualsiasi VPS serie Performance. Questo articolo fornisce, oltre a questa funzione, un'opzione per creare automaticamente backup giornalieri del database sul server e inviarli tramite FTP al server di backup o persino agli host di file.
Panoramica
- I backup automatici vengono eseguiti quotidianamente. Il tempo in cui si verifica il backup è configurabile.
- Molti host di file offrono il trasferimento di file tramite FTP, quindi puoi inviare automaticamente il tuo database al tuo account personale.
- Invia un messaggio di posta elettronica al termine del backup.
Descrizione
Innanzitutto, crea e modifica nella /backups
directory.
mkdir /backups
cd /backups
Quindi, utilizzando il nano
tuo editor preferito, crea il file di script:
nano backupdb.sh
Ora copia e incolla questo script e modifica le variabili in alto in base alle tue impostazioni:
#!/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" [email protected]
else
echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi
Dopo aver finito di modificare lo script e aver salvato il file, rendiamo eseguibile il file applicando il seguente comando:
chmod +x backupdb.sh
Puoi provarlo ora digitando nel terminale.
/backups/backupdb.sh
... e al termine dell'esecuzione, digitare ls -a
per verificare se è stato eseguito il backup del database. Conferma anche se è stato inviato al tuo server FTP.
Se finora tutto ha funzionato bene, possiamo farlo funzionare ogni giorno usando Crontab.
Sezioni Crontab
Puoi modificare il tuo crontab con il seguente comando:
crontab -e
Verrà visualizzato un editor di testo in cui è possibile inserire la pianificazione con ciascun lavoro su una nuova riga.
Ciascuna delle sezioni è separata da uno spazio, con la sezione finale che contiene uno o più spazi. Ecco come è strutturato un cron job:
minuto (0-59), ora (0-23, 0 = mezzanotte), giorno (1-31), mese (1-12), giorno della settimana (0-6, 0 = domenica), comando
Quindi, nell'editor, digita o incolla questa riga:
30 02 * * * /backups/backupdb.sh
L'esempio sopra si svolgerà /backups/backupdb.sh
alle 02:30 di tutti i giorni di ogni mese. Certo, puoi cambiare l'orario come preferisci.
Ora salva e chiudi il file. All'ora programmata, verrà eseguito il backup.