Vultr cung cấp sao lưu tự động như một tùy chọn cho bất kỳ VPS Dòng hiệu suất nào. Bài viết này cung cấp, ngoài tính năng này, một tùy chọn để tự động tạo bản sao lưu cơ sở dữ liệu hàng ngày trên máy chủ và cũng gửi chúng qua FTP đến máy chủ sao lưu của bạn hoặc thậm chí là máy chủ tệp.
Tổng quát
- Sao lưu tự động chạy hàng ngày. Thời gian sao lưu xảy ra là cấu hình.
- Nhiều máy chủ lưu trữ cung cấp truyền tệp qua FTP, vì vậy bạn có thể tự động gửi cơ sở dữ liệu của mình đến tài khoản cá nhân.
- Nó sẽ gửi một email sau khi sao lưu xong.
Sự miêu tả
Đầu tiên, tạo và thay đổi /backups
thư mục.
mkdir /backups
cd /backups
Sau đó, bằng cách sử dụng nano
hoặc trình chỉnh sửa yêu thích của bạn, tạo tệp tập lệnh:
nano backupdb.sh
Bây giờ, sao chép và dán tập lệnh này và chỉnh sửa các biến ở trên cùng theo cài đặt của bạn:
#!/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
Sau khi bạn chỉnh sửa xong tập lệnh và đã lưu tệp, chúng tôi làm cho tệp có thể thực thi được bằng cách áp dụng lệnh sau:
chmod +x backupdb.sh
Bạn có thể kiểm tra nó ngay bây giờ bằng cách gõ vào thiết bị đầu cuối.
/backups/backupdb.sh
... và sau khi hoàn thành việc thực thi, hãy nhập ls -a
để xem liệu cơ sở dữ liệu đã được sao lưu chưa. Cũng xác nhận nếu nó được gửi đến máy chủ FTP của bạn.
Nếu mọi thứ hoạt động tốt cho đến nay, chúng ta có thể làm cho nó chạy hàng ngày bằng cách sử dụng Crontab.
Phần Crontab
Bạn có thể chỉnh sửa crontab của mình bằng lệnh sau:
crontab -e
Điều này sẽ đưa ra một trình soạn thảo văn bản nơi bạn có thể nhập lịch biểu của mình với mỗi công việc trên một dòng mới.
Mỗi phần được phân tách bằng một khoảng trắng, với phần cuối cùng có một hoặc nhiều khoảng trắng trong đó. Đây là cách một công việc định kỳ được đặt ra:
phút (0-59), giờ (0-23, 0 = nửa đêm), ngày (1-31), tháng (1-12), ngày trong tuần (0-6, 0 = Chủ nhật), lệnh
Vì vậy, trong trình chỉnh sửa, nhập hoặc dán dòng này:
30 02 * * * /backups/backupdb.sh
Ví dụ trên sẽ chạy /backups/backupdb.sh
vào lúc 02:30 sáng mỗi ngày mỗi tháng. Tất nhiên, bạn có thể thay đổi thời gian tùy thích.
Bây giờ chỉ cần lưu và đóng tệp. Tại thời điểm dự kiến, sao lưu sẽ được thực hiện.