- Trang chủ
- ›
- Thủ thuật backup tự động toàn bộ VPS trong 5p
Thủ thuật backup tự động toàn bộ VPS trong 5p
Máy chủ ảo VPS có nhiều ứng dụng cài đặt rất tiện lợi cho người dùng. Trong đó có thao tác backup tự động toàn bộ VPS mà có thể nhiều người không biết. Vì vậy trong bài viết này kỹ thuật viên VDO Data sẽ hướng dẫn mọi người thủ thuật tự động sao lưu toàn bộ VPS cực kỳ nhanh chóng và dễ thực hiện.
Hiện tại có nhiều người đang sử dụng script này để sao lưu dữ liệu hàng ngày và upload lên Google Drive với Rclone.
Bộ các bài viết liên quan chúng tôi đã giới thiệu cho mọi người
- Làm sao để trỏ tên miền về VPS?
- Hướng dẫn Reset mật khẩu truy cập VPS Vultr
- Làm sao khi quên mật khẩu truy cập VPS OVH
Hướng dẫn backup tự động toàn bộ VPS nhanh nhất
Để backup tự động toàn bộ VPS bước đầu tiên chúng ta cần tạo bash script backup
1. Tạo bash script backup
– Tạo file backup.sh ở thư mục /root/
nano /root/backup.sh
– Copy toàn bộ nội dung script bên dưới rồi paste vào.
Script 1: Áp dụng cho HocVPS Script v2.0 trở lên:
# HocVPS Script Plugin – Backup Server
#!/bin/bash
. /etc/hocvps/scripts.conf
SERVER_NAME=VPS
TIMESTAMP=$(date +”%Y-%m-%d_%H-%M”)
BACKUP_DIR=”/root/backup/$TIMESTAMP”
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
SECONDS=0
mkdir -p “$BACKUP_DIR/mysql”
echo “Starting Backup Database”;
databases=`$MYSQL -e “SHOW DATABASES;” | grep -Ev “(Database|information_schema|performance_schema|mysql)”`
for db in $databases; do
$MYSQLDUMP –force –opt $db | gzip > “$BACKUP_DIR/mysql/$db.gz”
done
echo “Finished”;
echo ”;
echo “Starting Backup Website”;
#Loop through /home directory
for D in /home/*; do
if [ -d “${D}” ]; then #If a directory
domain=${D##*/} # Domain name
echo “- “$domain;
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache
fi
done
echo “Finished”;
echo ”;
echo “Starting Backup Nginx Configuration”;
cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
echo “Finished”;
echo ”;
echo “Starting Compress Files”;
zip -r /root/backup/$SERVER_NAME-$TIMESTAMP.zip $BACKUP_DIR -q
rm -rf $BACKUP_DIR
size=$(ls -lah /root/backup/$SERVER_NAME-$TIMESTAMP.zip | awk ‘{ print $5}’)
echo “Finished”;
echo ”;
#Remove older backups (14 days)
find /root/backup/ -mindepth 1 -mtime +14 -delete
duration=$SECONDS
echo “Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.”
Script2: Với HocVPS Script v2.0 trở xuống hoặc hệ quản trị khác
Lưu ý:
- Tên file backup được tự động đặt theo ngày giờ hiện tại.
- MYSQL_USER mặc định là root, password được lấy trong file cấu hình /etc/hocvps/scripts.conf.
– Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát.
– Phân quyền cho script
chmod +x /root/backup.sh
Đến đây là xong giờ bạn có thể test lại bằng cách chạy lệnh /root/backup.sh
Sau đó kiểm tra trong thư mục /root/backup/ đã có file backup .ZIP hay chưa chưa.
2. Tạo cronjob tự động backup hàng ngày
Ví dụ chúng tôi sẽ đặt giờ cho script tự động sao lưu lúc 2h00 sáng.
EDITOR=nano crontab -e
Dán nội dung sau vào cửa sổ Terminal
0 2 * * * /root/backup.sh > /dev/null 2>&1
Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát
Như vậy cứ 2h sáng hàng ngày script sẽ backup tự động toàn bộ dữ liệu của VPS.
Nếu các bạn thực hiện thành công theo các bước trên là chúng ta sẽ sao lưu được toàn bộ dữ liệu trên máy chủ bao gồm:
- Database MySQL, mỗi database một file .SQL
- Code trong thư mục public_html của domain, có dạng /home/domain.com/public_html/
- Cấu hình Nginx trong thư mục /etc/nginx/conf.d/
Tất cả dữ liệu sẽ được nén lại thành một file .ZIP và để ở thư mục /root/backup/, đồng thời tự động xóa những file backup cũ, chỉ giữ lại những file trong vòng 14 ngày trở lại.
Chúng ta hoàn toàn có thể sử dụng script này để di chuyển VPS, hoặc khôi phục bất kỳ phần dữ liệu nào đó.
Rất cảm ơn mọi người đã theo dõi bài viết. Ở cá bài viết sau chúng tôi sẽ hướng dẫn một số mẹo cực kỳ tiện ích, hãy cùng theo dõi.
(Bài viết có tham khảo của Học VPS)