Leírás
Crontab szakaszok
A Vultr minden Performance Series VPS-hez opcióként kínál automatikus biztonsági mentést. Ez a cikk ezen a funkción kívül lehetőséget biztosít arra, hogy a kiszolgálón automatikusan napi adatbázis-mentéseket készítsen, és FTP-n keresztül elküldje azokat a biztonsági mentési kiszolgálóra vagy akár a fájlgazdagépekre.
Áttekintés
- Az automatikus biztonsági mentések naponta futnak. A biztonsági mentés időpontja konfigurálható.
- Sok fájlgazda kínál fájlátvitelt FTP-n keresztül, így automatikusan elküldheti adatbázisát személyes fiókjába.
- A biztonsági mentés befejezése után e-mailt küld.
Leírás
Először hozza létre és módosítsa a /backupskönyvtárat.
mkdir /backups
cd /backups
Ezután a nanovagy kedvenc szerkesztőjével hozza létre a szkriptfájlt:
nano backupdb.sh
Most másolja és illessze be ezt a szkriptet, és módosítsa a felül található változókat beállításai szerint:
#!/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
Miután befejezte a szkript szerkesztését és elmentette a fájlt, a következő paranccsal végrehajthatóvá tesszük a fájlt:
chmod +x backupdb.sh
Most tesztelheti, ha beírja a terminálba.
/backups/backupdb.sh
... és miután befejezte a végrehajtást, írja be, ls -ahogy megnézze, készült-e biztonsági mentés az adatbázisról. Azt is ellenőrizze, hogy elküldte-e az FTP-kiszolgálóra.
Ha eddig minden jól működött, akkor a Crontab használatával napi szinten futtathatjuk.
Crontab szakaszok
A crontab a következő paranccsal szerkeszthető:
crontab -e
Ez előhoz egy szövegszerkesztőt, ahol minden egyes feladathoz új sorban adhatja meg ütemezését.
Mindegyik szakaszt egy szóköz választja el, az utolsó szakaszban egy vagy több szóköz van. A cron feladat így van lefektetve:
perc (0-59), óra (0-23, 0 = éjfél), nap (1-31), hónap (1-12), hétköznap (0-6, 0 = vasárnap), parancs
Tehát a szerkesztőbe írja be vagy illessze be ezt a sort:
30 02 * * * /backups/backupdb.sh
A fenti példa minden hónap minden napján 02/backups/backupdb.sh : 30-kor fut . Természetesen az időt tetszés szerint módosíthatja.
Most csak mentse és zárja be a fájlt. A biztonsági mentés az ütemezett időpontban megtörténik.