Backup Directadmin lên Drive dễ dàng vơi Script V2

Cách đây không lâu mình có chia sẻ các bạn Script Backup Directadmin lên Google Drive bằng phương pháp nén source code từng website và upload lên Drive. Tuy vậy với phương án này chứa quá nhiều nhược điểm nên hôm nay mình cập nhật version 2 cho mọi người cùng sử dụng.

Nhược điểm khi sử dụng Script Backup Directadmin lên Google Drive V1

Khi muốn restore lại website bạn cần upload thủ công từng website một, đặc biệt thời gian vừa qua sau khi mình bị lỗi hệ thống Directadmin cần phải cài lại các bước mình cần phải thực hiện để restore lại hosting như sau:

  1. Tạo thủ công từng hosting.
  2. Upload code lên hosting vừa tạo.
  3. Tạo và Import Database.
  4. Chỉnh sửa lại file config.
  5. Kích hoạt SSL nếu có.

Nếu như bạn có 1-2 website thì mọi việc quá dễ dàng, nhưng nếu server có đến 10-20 website thì mọi việc lại rất phức tạp và mất quá nhiều thời gian.

Script Backup Directadmin lên Google Drive V2 có gì mới?

Script Backup Directadmin này đơn giản chỉ tận dụng hệ thống backup có sẵn của Directadmin và upload nó lên Google Drive, Onedrive .v.v. Vì vậy tất cả các file backup là file của Directadmin nên bạn có thể dễ dàng Restore lại website bằng 1 click.

Ngoài ra Script còn có tính năng xóa đi file đã upload lên Drive để giải phóng Disk cho VPS. Chúng ta cùng tiến hành các bước cài đặt và cấu hình hệ thống.

Lên lịch backup cho Directadmin

Directadmin cung cấp sẵn tính năng Backup và Tranfer cho Directadmin nên bạn chỉ cần vào Admin Tools -> Admin Backup/Transfer chọn Schedule để lên lịch.

Lên lịch backup tự động cho Directadmin

Lên lịch backup tự động cho Directadmin

Bạn lưu ý chọn các mục sau:

  • Who: Chọn user cần backup hoặc All user nếu bạn muốn backup toàn bộ.
  • When: Thời điểm backup, chọn Cron Schedule để lên lịch. Tại Cron Settings mình chọn 1 giờ sáng vì thời điểm đó visit của server mình ít nhất.
  • Where: Chọn vị trí lưu – Local. Path:  /home/backup
  • What: Bạn muốn backup gì? Mình chọn All data.

Như vậy mình đã lập lịch thành công Directadmin tự động backup vào thời điểm 1h sáng hằng ngày và lưu trữ tất cả các file vào thư mục có đường dẫn /home/backup

Cài đặt Rclone và kết nối Directadmin với Drive.

Với bài viết này bạn vui lòng xem chi tiết ở link này. 2 Drive phổ biến và được sử dụng nhiều nhất là OneDrive và Google Drive tuy nhiên mỗi tài khoản bị giới hạn 5gb và 15gb nên bạn cân nhắc việc sử dụng tính năng backup tại Drive nào hợp lý nhé.

Riêng mình hiện đang cung cấp gói OneDrive 5 Tb với mức giá siêu rẻ giúp các bạn có thể thoải mái backup server của mình nên nếu bạn nào có nhu cầu hãy liên hệ mình qua email: kythuat@vinastar.net nhé.

Script backup Directadmin lên Drive V2

Và cuối cùng rất quan trọng là Script Backup V2.

# PUS EDU Plugin – Backup Server and Upload to Cloud
# Version: 2.0
#!/bin/bash
SERVER_NAME=DANEW2020
TIMESTAMP=$(date +”%F”)
BACKUP_DIR=”/home/backup/$TIMESTAMP”
SECONDS=0
size=$(du -sh $BACKUP_DIR | awk ‘{ print $1}’)
echo “Bat Dau Backup thu muc $BACKUP_DIR”;
/usr/sbin/rclone move $BACKUP_DIR “remote:$SERVER_NAME/$TIMESTAMP” >> /var/log/rclone.log 2>&1
# Clean up
rm -rf $BACKUP_DIR
/usr/sbin/rclone -q –min-age 6w delete “remote:$SERVER_NAME” #Remove all backups older than 2 week
/usr/sbin/rclone -q –min-age 6w rmdirs “remote:$SERVER_NAME” #Remove all empty folders older than 2 week
/usr/sbin/rclone cleanup “remote:” #Cleanup Trash
echo “Finished”;
echo ”;
duration=$SECONDS
echo “Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.”

Bạn vui lòng chỉnh sửa DANEW2020 thành thư mục bạn muốn chứa file backup ở trên Drive nhé.

Phân quyền cho script

chmod +x /root/backup.sh

Kiểm tra Script đã hoạt động hay chưa:

/root/backup.sh

Sau khi nhận được dòng thông báo sau bạn có thể truy cập vào drive để kiểm tra xem source code mình hoạt động chưa.

Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.

Tạo Cronjob tự động backup Directadmin hằng ngày

Thường mình sẽ chọn script chạy lúc về đêm, khi đó lượng visit vào website ít nên không ảnh hưởng quá nhiều đến trải nghiệm của khách hàng khi sử dụng web.

Ở đây mình chọn 4h sáng vì thời gian Directadmin backup là 1h, mình cần cho nó có một thời gian để backup dư giả 1 chút.

EDITOR=nano crontab -e

0 4 * * * /root/backup.sh > /dev/null 2>&1

Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát.

Vậy là xong, bây giờ bạn có thể yên tâm rằng toàn bộ website trên Directadmin đều được backup về Drive hằng đêm nhé.

Bài viết liên quan