Vultr menawarkan sandaran automatik sebagai pilihan untuk setiap Performance Series VPS. Artikel ini memberikan, selain fitur ini, pilihan untuk membuat sandaran pangkalan data harian secara automatik di pelayan, dan juga mengirimnya melalui FTP ke pelayan sandaran anda atau bahkan host fail.
Gambaran keseluruhan
- Sandaran automatik dijalankan setiap hari. Masa sandaran berlaku boleh dikonfigurasi.
- Banyak host fail menawarkan pemindahan fail melalui FTP, jadi anda boleh menghantar pangkalan data anda ke akaun peribadi anda secara automatik.
- Ia menghantar e-mel setelah sandaran selesai.
Penerangan
Pertama, buat dan ubah ke /backups
direktori.
mkdir /backups
cd /backups
Kemudian, menggunakan nano
atau editor kegemaran anda, buat fail skrip:
nano backupdb.sh
Sekarang, salin dan tampal skrip ini, dan edit pemboleh ubah di bahagian atas mengikut tetapan anda:
#!/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
Setelah selesai mengedit skrip dan menyimpan failnya, kami membuat file dapat dilaksanakan dengan menerapkan perintah berikut:
chmod +x backupdb.sh
Anda boleh mengujinya sekarang dengan menaip terminal.
/backups/backupdb.sh
... dan setelah selesai pelaksanaan, ketik ls -a
untuk melihat apakah pangkalan data telah disandarkan. Sahkan juga jika ia dihantar ke pelayan FTP anda.
Sekiranya semuanya berfungsi dengan baik setakat ini, kita dapat membuatnya berjalan setiap hari dengan menggunakan Crontab.
Bahagian Crontab
Anda boleh mengedit crontab anda dengan arahan berikut:
crontab -e
Ini akan memaparkan editor teks di mana anda dapat memasukkan jadual anda dengan setiap pekerjaan pada baris baru.
Setiap bahagian dipisahkan oleh spasi, dengan bahagian terakhir mempunyai satu atau lebih ruang di dalamnya. Inilah cara kerja cron:
minit (0-59), jam (0-23, 0 = tengah malam), hari (1-31), bulan (1-12), hari kerja (0-6, 0 = Ahad), perintah
Jadi, dalam editor, taip atau tampal baris ini:
30 02 * * * /backups/backupdb.sh
Contoh di atas akan dijalankan /backups/backupdb.sh
pada pukul 02:30 pagi pada setiap hari setiap bulan. Sudah tentu, anda boleh mengubah masa mengikut kehendak anda.
Sekarang hanya simpan dan tutup fail. Pada masa yang dijadualkan, cadangan akan dilakukan.