Skip to contentSkip to main navigation Skip to footer

Tạo Script sao lưu dữ liệu trên máy chủ Linux

backup

Tạo Script sao lưu dữ liệu trên máy chủ Linux với 4 bước đơn giản..

Giới thiệu

Chắc hẳn trong quá trình vận hành máy chủ hay website, vấn đề backup dữ liệu luôn là vấn đề hàng đầu cần được lưu ý. Việc backup dữ liệu website thường xuyên khiến bạn luôn có một phương án dự phòng tốt nhất cho trường hợp xấu có thể xảy ra với website của mình.  

Trong quá trình sử dụng, việc bạn thao tác xoá sửa nhầm dữ liệu hoặc lỗi bị động từ nhà cung cấp dịch vụ đều có thể khiến cho dữ liệu của bạn bị thất thoát và không thể lấy lại được. Chưa kể nếu bạn sử dụng dịch vụ VPS, các bạn sẽ bị hạn chế về vấn đề hỗ trợ Backup từ nhà cung cấp, vì thường các nhà cung cấp chỉ hỗ trợ Backup dữ liệu theo tuần và backup đó là Backup full của VPS.  Vậy nếu trong trường hợp các bạn cập nhật dữ liệu hàng ngày, và chẳng may bị lỗi hay mất dữ liệu website cần được khôi phục, thì đúng là vấn đề nan giải.

Vậy làm sao để bạn có thể chủ động backup được dữ liệu của mình một cách nhanh chóng hoặc hơn nữa là thiết lập để máy chủ tự động chạy Backup theo lịch mà bạn muốn thì đây chắc hẳn là câu hỏi mà nhiều người thắc mắc cũng như đang tìm phương án cho vấn đề này.

Vậy ở bài viết này VINASTAR sẽ hướng dẫn bạn cách backup dữ liệu tự động thông qua Shell Script , các bạn cùng đón xem ở bước tiếp theo nhé.

Hướng dẫn thực hiện

Bước 1: SSH vào máy chủ Linux của bạn

Để tạo Script Backup dữ liệu trên Linux việc đầu tiên chúng ta cần làm là SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root trước. Nếu bạn chưa biết cách SSH vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:

Sau khi đã SSH thành công chúng ta tiếp tục với bước 2 để tiếp tục cấu hình.

Bước 2:  Tạo script backup dữ liệu ( Source + Database)

Các bạn vui lòng làm theo lần lượt các lệnh bên dưới để tạo File cũng như thêm nội dung script (các bạn có thể thay thế đường dẫn, tên file/folder tùy ý).

Giải thích lệnh bên trên:

– Lệnh 1: Tạo file auto-backup tại thư mục /bin

  • Thêm nội dung bên dưới vào file đã tạo
#!/bin/bash

 echo "Backup website Sitewp.tk"
 mkdir /home/backup/$(date +"%Y-%m-%d")/                         ## Tạo đường dẫn chứa File Backup
 mkdir /home/backup/$(date +"%Y-%m-%d")/sitewp.tk/
          
 echo "Starting backup database for sitewp.tk..."                ## Backup Database
 mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u sql_sitewp_tk  -p'EjWyP5fJmYSzSHZf' sql_sitewp_tk | gzip -9 > /home/backup/$(date +"%Y-%m-%d")/sitewp.tk/Database_$(date +"%Y-%m-%d").sql.gz

 echo "Starting backup files for sitewp.tk..."                   ## Backup Source
 zip -r /home/backup/$(date +"%Y-%m-%d")/sitewp.tk/Source_$(date +"%Y-%m-%d").zip /www/wwwroot/sitewp.tk/ -q

echo "BACKUP Database & Source thanh cong vao luc $(date +"%Y-%m-%d")!"
echo "File backup da duoc luu tai: /home/backup/sitewp.tk"

Chú thích các phần bôi đậm bên trên:

  • Tên website cần Backup: sitewp.tk
  • User Database: sql_sitewp_tk
  • Pass: EjWyP5fJmYSzSHZf
  • Tên Database: sql_sitewp_tk
  • Đường dẫn lưu Backup: /home/backup/sitewp.tk/
  • Đường dẫn website cần Backup: /www/wwwroot/sitewp.tk
  • Đường dẫn lưu file backup Source + Database: /home/backup
  • Tên File Backup Source: Source.zip
  • Ten File Backup Database: Database.sql.gz

Lưu ý: Các bạn chỉ chỉnh sửa phần được bôi đậm bằng thông tin của các bạn, còn lại các bạn nên giữ nguyên nhé.

  • Phân quyền cho File auto-backup
chmod +x /bin/auto-backup
    

Sau khi phân quyền xong, bạn hãy thử gõ tên file vừa tạo xem script backup có hoạt động hay không nhé. Nếu chạy được như hình thì đã cấu hình thành công.

CleanShot 2022 05 11 at

Và các bạn có thể di chuyển vào đường dẫn chứa File backup đã thiết lập để xem thành quả của mình.

CleanShot 2022 05 11 at

Bước 3: Tạo Cron để thiết lập thời gian chạy script

Ví dụ ở đây mình sẽ thiết lập thời gian chạy Backup là 1 ngày 1 lần , thì cách thiết lập Cron sẽ có cấu trúc như sau:

(crontab -u root -l ; echo "0 2 * * * auto-backup >> /home/backup/log-backup.txt") | crontab -u root -
systemctl restart crond
    

Giải thích lệnh trên:

– Lệnh 1: Thiết lập Cron Backup chạy vào 02:00 giờ sáng hàng ngày, và log sẽ được ghi lại tại đường dẫn /home/backup/log-backup.txt

– Lệnh 2: Khởi động lại dịch vụ Crond

Sau khi thêm Cron, bạn sử chạy lệnh bên dưới để kiểm tra Cron đã thêm thành công chưa,

Nếu kết quả ra như hình là thêm Cron thành công.

CleanShot 2022 05 11 at

Bước 4: Tạo Cron xóa Backup định kỳ

Do script này sẽ lưu trữ File Backup trực tiếp trên VPS nên về lâu dài sẽ chiếm dung lượng VPS. Nên chúng ta sẽ cần thiết lập Cron để xóa các File backup cũ định kỳ , ví dụ ở đây mình sẽ tạo Cron xóa xóa các File Backup cũ hơn 7 ngày, và xóa vào lúc 02:00 sáng hàng ngay.

(crontab -u root -l ; echo "0 2 * * * find /home/backup/sitewp.tk -type f -mtime +7 -exec rm -f {} ;") | crontab -u root -
systemctl restart crond
    

Như vậy, mình đã hướng dẫn các bạn chi tiết cách tạo Cron Backup tự động cho website của mình trên máy chủ Linux. Việc tạo Cron Backup định kỳ sẽ giúp các bạn đảm bảo được dữ liệu của mình trong một số trường hợp xấu có thể xảy ra. Hy vọng bài viết này hữu ích với các bạn, chúc các bạn thực hiện thành công.

Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới:

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

Was This Article Helpful?

0
0 Comments

There are no comments yet

Leave a comment

Your email address will not be published. Required fields are marked *