Trong môi trường Linux, việc sao lưu (backup) dữ liệu không chỉ là một biện pháp phòng ngừa rủi ro xảy ra sự cố mất dữ liệu quan trọng – đó là một nhu cầu thiết yếu để bảo vệ hệ thống. Bất kể bạn là system admin hay kỹ sư DevOps, việc đảm bảo dữ liệu trong server Linux được backup theo định kỳ sẽ giúp tránh mất dữ liệu do sự cố, hay bị virus tấn công hay do lỗi phần cứng của máy chủ. Bài viết này sẽ hướng dẫn bạn cách sử dụng hai công cụ phổ biến miến phí nhất của Linux là rsync và tar trong việc #LinuxBackup – từ các thao tác cơ bản đến chiến lược backup nâng cao – nhằm xây dựng một quy trình sao lưu và khôi phục dữ liệu hiệu quả cho công ty của bạn. Chúng ta sẽ tìm hiểu tầm quan trọng của backup, cách dùng lệnh rsync và tar để sao lưu/khôi phục dữ liệu, các chiến lược backup thực tiễn (incremental với hard link, backup theo ngày), cách kết hợp rsync và tar, cùng với sơ đồ minh họa mô hình backup đơn giản, script mẫu dùng cron để tự động hóa #BackupAutomation.
Contents
- 1 Tầm Quan Trọng Của Backup Dữ Liệu Trong Linux Server
- 2 Hướng Dẫn Cơ Bản: Sao Lưu và Khôi Phục Với Tar và Rsync
- 3 Chiến Lược Backup Trong Thực Tế (Incremental, Hard Link, Lưu Lịch Sử)
- 4 Kết Hợp Rsync và Tar Trong Quy Trình Backup Dữ liệu Hoàn Chỉnh
- 5 Mô Hình Backup Đơn Giản – Minh Họa Sơ Đồ
- 6 Tự Động Hóa Backup Bằng Cron (Script Mẫu)
- 7 Giải Pháp Backup Phù Hợp Cho Doanh Nghiệp Nhỏ
- 8 Kết Luận và hành động đối với hệ thống Linux của bạn
Tầm Quan Trọng Của Backup Dữ Liệu Trong Linux Server
Mất hay hỏng dữ liệu có thể gây ra gián đoạn dịch vụ, thiệt hại tài chính và uy tín cho doanh nghiệp. Đối với máy chủ Linux, là nơi lưu trữ nhiều dữ liệu quan trọng, backup thường xuyên là “phao cứu sinh” trước các tình huống xấu như hỏng ổ cứng, lỗi hệ thống hoặc bị tấn công ransomware. Backup giống như một kế hoạch dự phòng, giúp bạn nhanh chóng khôi phục (recover) hệ thống về trạng thái ổn định trước đó. Thực tế cho thấy, việc có sẵn bản backup giúp giảm thiểu thời gian downtime và đảm bảo tính liên tục của dịch vụ. Do đó, các system admin cần phải xây dựng thói quen backup định kỳ như một phần không thể thiếu trong công việc quản trị hệ thống.
Các loại hình backup phổ biến: Có một số phương pháp backup dữ liệu mà bạn nên biết:
-
Full Backup – Sao lưu đầy đủ tất cả dữ liệu, tạo ảnh chụp (snapshot) toàn bộ hệ thống Linux tại một thời điểm. Phương pháp này đảm bảo khả năng khôi phục toàn diện dữ liệu nhưng tốn nhiều thời gian và dung lượng lưu trữ dữ liệu trong disks.
-
Incremental Backup – Sao lưu bổ sung những dữ liệu thay đổi kể từ lần backup gần đây nhất, giúp tiết kiệm thời gian và dung lượng lưu trữ dữ liệu. Khi khôi phục, cần bản full backup đầu tiên và tất cả các bản incremental backup kế tiếp.
-
Differential Backup – Sao lưu những dữ liệu thay đổi kể từ lần full backup gần nhất, có kích thước lớn hơn incremental nhưng giúp đơn giản hóa quá trình khôi phục (chỉ cần full backup + bản differential cuối cùng).
Việc kết hợp linh hoạt giữa backup đầy đủ và backup bổ sung (incremental/differential) sẽ tạo nên chiến lược bảo vệ dữ liệu vững chắc. Trong các phần sau, chúng ta sẽ tập trung vào hai công cụ dòng lệnh mạnh mẽ hỗ trợ các hình thức backup này là tar và rsync, cũng như cách tự động hóa chúng bằng cron – những “vũ khí” lợi hại trong kho công cụ của system admin #SysAdminTips.
Hướng Dẫn Cơ Bản: Sao Lưu và Khôi Phục Với Tar và Rsync
Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng tar và rsync để thực hiện sao lưu (backup) và khôi phục (restore) trong Linux. Cả hai công cụ này đều miễn phí, có sẵn trong hầu hết các distro Linux, và rất mạnh mẽ nếu bạn biết cách dùng đúng.
Sao Lưu & Khôi Phục Bằng Lệnh tar
Lệnh tar (viết tắt của Tape Archive) thường được dùng để đóng gói nhiều file/thư mục thành một file nén duy nhất (định dạng .tar, .tar.gz…). Điều này hữu ích khi bạn muốn tạo bản sao lưu toàn bộ hệ thống hoặc một thư mục lớn dưới dạng một file nén để dễ dàng lưu trữ hoặc di chuyển.
- Đầu tiên bạn cần phải có 1 ổ cứng (có thể là ổ External USB hoặc iSCSI) để lưu trữ các files backup cho server, và tạo phân vùng & format cho ổ cứng này, và sau đó mount ổ cứng vào Linux server (nhớ tạo thư mục
/backup/systembackupđể sao lưu toàn bộ hệ thống Linux) như trong hình dưới:
-
Tạo bản backup với tar: Cú pháp cơ bản của tar như sau:
Các tùy chọn quan trọng thường dùng:
-c(create – tạo archive),-v(verbose – hiển thị chi tiết tiến trình),-p(preserve – giữ nguyên phân quyền),-z(compress (nén file) với gzip),-f(chỉ định tên file đầu ra). Ví dụ, để backup toàn bộ dữ liệu của hệ thống Linux vào file nén full-backup.tar.gz (loại trừ một số thư mục không cần thiết), bạn có thể dùng:Lệnh trên sẽ chạy với quyền
sudo(là quyền root cần thiết để đọc tất cả các files trong hệ điều hành), đóng gói toàn bộ hệ thống (ký tự/đại diện thư mục gốc của Linux system) vào file tar.gz, đồng thời bỏ qua các thư mục hệ thống như/dev,/proc,/sys… vốn không cần phải backup. Các tùy chọn--excludeđảm bảo không bao gồm chính thư mục backup (/backup) hoặc các vị trí mount thiết bị cắm ngoài, tránh vòng lặp hoặc dữ liệu không cần thiết.
-
Xác minh backup: Sau khi chạy lệnh tar, bạn có thể kiểm tra file kết quả:
Nếu file tồn tại và có dung lượng hợp lý, như vậy có nghĩa là backup đã thành công. Trong ví dụ thực tế, file full-backup.tar.gz sẽ chứa toàn bộ dữ liệu của hệ thống Linux (trừ những phần dữ liệu đã exclude- Tức là loại trừ không backup). Khi có sự cố nghiêm trọng (vd: hỏng ổ cứng, lỗi hệ điều hành), file này có thể được dùng để khôi phục lại máy chủ.

-
Khôi phục bằng tar: Để khôi phục dữ liệu, bạn sẽ giải nén file .tar.gz vừa tạo vào hệ thống lưu trữ dữ liệu đích. Thông thường, quá trình khôi phục dữ liệu được thực hiện bằng cách khởi động boot server từ live CD/USB để vào môi trường cứu hộ , rồi dùng lệnh tar với tùy chọn
-x(extract) để giải nén dữ liệu: -
Giải thích:
Tùy chọn
-C /chỉ định bung nội dung archive vào thư mục gốc của hệ thống Linux. Lưu ý dùng với tùy chọn-pđể đảm bảo giữ nguyên permission. Sau khi giải nén và khôi phục lại dữ liệu, bạn có thể cần cài lại bootloader hoặc thực hiện một số cấu hình tùy tình huống, nhưng về cơ bản tar cung cấp một cách đơn giản để khôi phục toàn bộ hệ thống Linux về trạng thái tại thời điểm backup.
Sao Lưu & Khôi Phục Bằng rsync
Rsync (viết tắt của Remote Synchronize) là một công cụ đồng bộ files mạnh mẽ và hiệu quả, thường được dùng cho backup vì khả năng truyền tải dữ liệu thông minh. Không như tar tạo một file lớn, rsync sao chép trực tiếp cây thư mục nguồn sang thư mục đích, chỉ sao chép những gì có sự thay đổi. Lệnh này đặc biệt hữu ích cho việc backup định kỳ, vì những lần chạy sau của lệnh này sẽ có tốc độ nhanh hơn rất nhiều so với việc chúng ta copy toàn bộ dữ liệu.
-
Sao lưu thư mục với rsync: Cú pháp cơ bản:
Lấy ví dụ, giả sử chúng ta có một ứng dụng lưu dữ liệu tại thư mục /var/lib/TechDts/, và chúng ta muốn backup nó sang ổ external USB cắm ngoài, được mount tại thư mục /backup, và đã tạo 1 thư mục có tên là /backup/full/ để lưu dữ liệu. Lệnh rsync được chạy như sau:
Trong đó:
-
-a(archive mode) để rsync sao chép đệ quy toàn bộ thư mục, giữ nguyên phân quyền, dấu thời gian, liên kết (tương đương các tham số -rlptgoD). -
-tđảm bảo preserve timestamp (mốc thời gian của file), tuy-ađã bao gồm nhưng ví dụ trên vẫn ghi rõ để nhấn mạnh. -
-v(verbose) để hiển thị thông tin khi chạy lệnh. -
--deletesẽ xóa ở đích những files không còn trong nguồn, giúp thư mục backup là ảnh phản chiếu chính xác của nguồn. Tùy chọn này giúp thực hiện backup dạng mirror, nên cẩn thận khi dùng – chỉ sử dụng nếu bạn chắc chắn muốn đồng bộ xóa các files đã bị xóa ở nguồn. -
Tham số nguồn
/var/lib/TechDts/có dấu/ở cuối, nghĩa là rsync sẽ sao chép dữ liệu bên trong thư mục này. -
Tham số đích
/backup/full/là thư mục đích chứa bản backup.
Khi chạy lần đầu, rsync sẽ copy toàn bộ files từ nguồn sang đích. Ví dụ trên, sau khi chạy, tất cả files trong thư mục TechDts đã được sao lưu sang /backup/full/. Bạn có thể kiểm tra bằng lệnh
ls -l /backup/fullđể thấy các files tương ứng. -
-
Backup tăng cường (incremental) với rsync: Sức mạnh thực sự của rsync nằm ở khả năng incremental backup – có nghĩa là mỗi lần chạy lệnh chỉ truyền dữ liệu thay đổi. Từ lần backup thứ hai trở đi, nếu lệnh rsync được chạy lại (cùng tham số), nó sẽ so sánh dữ liệu giữa nguồn và đích, chỉ copy những files mới hoặc đã chỉnh sửa, và xóa (nếu dùng
--delete) những files đã xóa ở nguồn. Nhờ đó, thời gian backup được rút ngắn đáng kể, tiết kiệm băng thông và dung lượng lưu trữ.Ví dụ, bạn có thể lên lịch chạy lệnh rsync cho hàng ngày để cập nhật backup. Mỗi ngày, rsync sẽ chỉ mất vài phút để đồng bộ những dữ liệu thay đổi (so với hàng giờ nếu backup toàn bộ dữ liệu). Trong trường hợp dữ liệu rất lớn, việc truyền dữ liệu chỉ là phần delta (phần thay đổi) giúp backup khả thi ngay cả backup dữ liệu qua một đường truyền mạng có tốc độ chậm.
Để xem dung lượng cụ thể của một thư mục trong Linux (vd: bao nhiêu MB/GB), sử dụng lệnh:
du -sh /đường/dẫn/đến/thư_mục
Giải thích:
du: disk usage
-s: chỉ hiển thị tổng (summary)
-h: hiển thị ở dạng dễ đọc (KB, MB, GB)
Trong hình dưới chúng ta thực hiện (incremental) với rsync và xem dung lượng /backup/full:

-
Khôi phục bằng rsync: Tương tự tar, quá trình khôi phục với rsync thực hiện bằng cách đồng bộ từ thư mục backup trở về thư mục gốc hoặc nơi cần phục hồi dữ liệu. Giả sử thư mục TechDts trong server bị lỗi hoặc mất dữ liệu, bạn có thể khôi phục bằng lệnh:
Lệnh này sẽ khôi phục toàn bộ dữ liệu từ bản backup trở lại thư mục nguồn. Nhờ đặc tính của rsync, nó sẽ bỏ qua những files đã có sẵn đúng phiên bản trong thư mục
/var/lib/TechDts/, chỉ copy lại những files đã mất hoặc khác biệt. Trong ví dụ trước, nếu chỉ có 2 files thay đổi/mất, rsync sẽ chỉ phục hồi 2 files đó thay vì toàn bộ dữ liệu, giúp tiết kiệm thời gian khôi phục. Ngoài ra, rsync đảm bảo giữ nguyên phân quyền, cấu trúc thư mục và timestamp gốc nên sau khi phục hồi, ứng dụng có thể chạy lại bình thường như chưa hề có sự cố xảy ra.
Mẹo: Bạn có thể sử dụng tùy chọn
-n(hoặc--dry-run) với rsync để chạy mô phỏng giả lập trước khi thực hiện khôi phục dữ liệu thật, qua đó kiểm tra những files nào sẽ được đồng bộ hoặc xóa. Đây là cách tốt để đảm bảo lệnh rsync của bạn làm đúng theo ý muốn của bạn, nhất là khi dùng--deletetránh xóa nhầm dữ liệu quan trọng.
Chiến Lược Backup Trong Thực Tế (Incremental, Hard Link, Lưu Lịch Sử)
Sau khi nắm vững cách dùng cơ bản, bước tiếp theo là xây dựng chiến lược backup phù hợp với nhu cầu thực tế. Một chiến lược tốt sẽ cân bằng giữa mức độ an toàn dữ liệu, tài nguyên lưu trữ và tốc độ phục hồi. Dưới đây là một số phương pháp backup dữ liệu thực chiến thường được các system admin áp dụng:
-
Kết hợp Full Backup và Incremental Backup: Thay vì lúc nào cũng backup full (tốn thời gian/dung lượng), một cách làm hiệu quả là định kỳ tạo bản full backup rồi các ngày trong tuần làm incremental backup. Ví dụ, bạn có thể lên lịch full backup hàng tuần bằng tar (nén thành một file), còn các ngày trong tuần thì backup nhanh với rsync dưới dạng incremental. Bản full backup (ví dụ vào mỗi Chủ Nhật) đóng vai trò làm mốc khôi phục nền tảng dữ liệu, còn các bản incremental hàng ngày (Thứ Hai tới Thứ Bảy) chứa các thay đổi nhỏ. Khi cần khôi phục, bạn dùng bản full gần đây nhất rồi áp dụng khôi phục lần lượt các bản incremental backups sau đó để dựng lại dữ liệu mới nhất. Cách này giúp giảm tải cho hệ thống hàng ngày, trong khi vẫn đảm bảo có bản backup đầy đủ theo định kỳ.
-
Sử dụng Rsync với Hard Link để lưu nhiều phiên bản (snapshot): Đây là kỹ thuật phổ biến để vừa có backup hằng ngày, vừa giữ lịch sử dữ liệu cho nhiều ngày mà không tốn nhiều dung lượng lưu trữ backup. Cách làm như sau: giữ một thư mục backup đầy đủ (full) làm gốc, mỗi lần backup incremental sẽ tạo ra một thư mục mới (đặt tên theo ngày/giờ) chứa chỉ files thay đổi, còn các file không đổi thì tạo hard link trỏ về file tương ứng trong bản full backup hoặc lần backup trước. Lệnh rsync hỗ trợ trực tiếp phương pháp này qua tùy chọn
--link-dest.Cách hoạt động của
--link-dest:Khi chạy lệnh:
tùy chọn
--link-dest=/backup/full/cho rsync biết để so sánh với thư mục full backup trước đó. Kết quả: ở trong thư mục đích/backup/incremental/2025-06-23(giả sử hôm nay là 2025-06-23) sẽ:-
Copy các files mới hoặc có thay đổi so với bản full backup.
-
Tạo hard link cho các files không thay đổi (thay vì copy) trỏ về các files gốc nằm trong
/backup/full/.
Nhờ vậy, thư mục backup ngày 2025-06-23 nhìn bề ngoài chứa đầy đủ tất cả các files (giống full), nhưng thực chất những files cũ dùng chung dữ liệu với bản full (qua inode của hard link) nên không tốn thêm không gian. Hard link là liên kết cứng trên file system, cho phép nhiều tên files khác nhau cùng trỏ tới một vùng dữ liệu. Khi chưa có thay đổi, file ở bản backup hôm nay và bản full hôm trước thực chất là một, tránh lưu trữ trùng lặp. Chỉ khi file thay đổi hoặc bị xóa, rsync mới lưu bản backup mới hoặc phản ánh việc xóa trong thư mục snapshot mới.
Phương pháp này tạo các snapshot theo ngày, giúp bạn có thể quay lại bất kỳ ngày nào để lấy dữ liệu cũ. Đồng thời nhờ hard link, mỗi snapshot vẫn như một bản backup đầy đủ nhưng chiếm rất ít dung lượng thừa. Bạn có thể lên lịch chạy tự động mỗi ngày, đặt tên thư mục theo ngày giờ để dễ quản lý (có thể dùng
$(date +%Y-%m-%d)để chèn timestamp vào tên thư mục như ví dụ trên).Lưu ý: Thao tác xóa file ở bản full/reference có thể ảnh hưởng đến các hard link. Thường thì quy trình sẽ là giữ nguyên thư mục full làm gốc cố định, chỉ cập nhật nó khi làm full backup mới (ví dụ hàng tuần/tháng). Các incremental cũ có thể xoá sau một thời gian (vd: giữ 7 bản incremental gần nhất). Khi xóa một snapshot cũ, dữ liệu file được hard link trỏ tới vẫn không mất chừng nào còn ít nhất một link (ở full hoặc snapshot khác). Điều này cho phép bạn dọn dẹp các snapshot quá cũ để tiết kiệm không gian mà không ảnh hưởng bản khác.
-
-
Lên lịch backup hằng ngày tự động: Một chiến lược backup chỉ hiệu quả khi nó được thực hiện đều đặn theo hàng ngày hàng tuần. Bạn nên sử dụng cron để tự động hóa việc chạy các lệnh backup (sẽ trình bày chi tiết ở phần sau). Ví dụ, có thể đặt lịch mỗi đêm chạy rsync incremental, và mỗi tuần chạy tar full. Cách làm incremental với rsync + hard link ở trên đặc biệt phù hợp để chạy hằng ngày bằng cron (snapshot-style backup). Trong thực tế, bạn có thể thiết lập backup incremental hàng ngày cho các thư mục quan trọng và cron sẽ lo công việc backup dữ liệu vào mỗi đêm. Một khi đã thiết lập, hệ thống của bạn sẽ luôn có sẵn các bản sao lưu dữ liệu được cập nhật mà không cần các thao tác thủ công.
Tóm lại, hãy cân nhắc dữ liệu nào cần backup thường xuyên, dung lượng lưu trữ cho phép và thời gian có thể dành cho việc backup để chọn chiến lược phù hợp. Đối với nhiều doanh nghiệp nhỏ, phương án kết hợp: một bản full backup định kỳ (theo tuần/tháng) và các bản incremental hàng ngày là tối ưu – vừa đảm bảo an toàn dữ liệu, vừa tiết kiệm tài nguyên.

Kết Hợp Rsync và Tar Trong Quy Trình Backup Dữ liệu Hoàn Chỉnh
Không có giải pháp “một cỡ vừa cho tất cả” khi nói về backup. Thường chúng ta cần kết hợp nhiều công cụ và phương pháp để đạt hiệu quả tốt nhất. Việc kết hợp rsync và tar có thể diễn ra ở nhiều cấp độ tùy theo nhu cầu của bạn:
-
Backup cục bộ nhanh với rsync, lưu trữ dài hạn với tar: Đây là mô hình phổ biến trong các doanh nghiệp. Bạn dùng rsync hàng ngày để sao lưu dữ liệu thay đổi sang một thư mục backup trong local disk hoặc NAS. Sau đó, định kỳ (ví dụ hàng tuần hoặc hàng tháng), bạn dùng tar để đóng gói toàn bộ thư mục backup đó thành một file nén và chuyển nó đến lưu trữ off-site (chẳng hạn upload lên cloud hoặc copy ra external usb để gửi vào 1 nơi an toàn). Cách này tận dụng được thế mạnh của rsync (nhanh, incremental) cho backup định kỳ, đồng thời có các file tar nén gọn gàng để lưu trữ lâu dài hoặc mang đi off-site. Nếu cần khôi phục lâu dài (ví dụ sự cố nghiêm trọng, cả server và bản backup cục bộ đều hỏng), bạn còn bản tar off-site để dựng lại từ đầu.
-
Kết hợp backup hệ thống và dữ liệu ứng dụng: Bạn có thể dùng tar để backup những thành phần hệ thống ít thay đổi (VD: cấu hình trong /etc, hoặc toàn bộ hệ thống OS) – tar rất hữu ích để tạo ảnh hệ thống định kỳ. Còn rsync thì dùng cho dữ liệu của ứng dụng có thay đổi thường xuyên (VD: thư mục dữ liệu website, file người dùng upload, cơ sở dữ liệu sau khi dump). Như vậy, tar đảm nhiệm vai trò lưu giữ trạng thái hệ thống (để phục hồi khi cần cài lại máy nhanh), còn rsync đảm bảo dữ liệu nghiệp vụ luôn được backup mới nhất. Sự kết hợp này phù hợp khi bạn muốn giảm thiểu thời gian downtime: khôi phục OS từ tar (hoặc cài mới hệ điều hành rồi áp config), sau đó rsync đồng bộ dữ liệu ứng dụng mới vào – hệ thống sẽ trở lại phục vụ trong thời gian ngắn.
-
Tránh dùng rsync trên file nén tar lớn: Một lưu ý quan trọng: nếu bạn định nén dữ liệu rồi mới rsync file nén đó, hiệu quả incremental của rsync sẽ mất đi. Mỗi lần tạo file tar.gz mới, nội dung file đó sẽ hoàn toàn khác so với lần trước, khiến rsync phải gửi toàn bộ file mỗi lần (không tiết kiệm băng thông được). Vì vậy, nếu truyền backup qua mạng chậm, thì không nén file trước khi rsync, hãy rsync trực tiếp dữ liệu hoặc dùng option
--rsyncablekhi nén gzip (tùy chọn này tạo file gzip phù hợp hơn cho rsync). Nói chung, hãy sử dụng rsync để đồng bộ thư mục file, và chỉ nén (tar) ở bước cuối cùng nếu thực sự cần thiết.
Tóm lại, một quy trình backup hoàn chỉnh có thể gồm: hàng ngày rsync dữ liệu mới sang ổ cứng dành cho backup; hàng tuần tar nén thư mục backup đó và chuyển dữ liệu backup ra lưu trữ bên ngoài. Nhờ đó, bạn vừa có bản backup nhanh để khôi phục ngay khi cần (dữ liệu nằm sẵn trong ổ cứng backup, truy cập trực tiếp bằng rsync), vừa có bản backup dự phòng an toàn bên ngoài phòng khi xảy ra thảm họa như cháy nổ, mất trộm server. Hãy linh hoạt áp dụng rsync và tar để xây dựng giải pháp phù hợp cho hệ thống của bạn.
Mô Hình Backup Đơn Giản – Minh Họa Sơ Đồ
Mô hình backup mẫu cho doanh nghiệp nhỏ: Production Server (nguồn dữ liệu) thực hiện sao lưu định kỳ sang máy chủ backup nội bộ bằng rsync (qua mạng LAN hoặc internet). Máy chủ backup sau đó có thể nén dữ liệu bằng tar và gửi thêm một bản backup ra cloud/off-site để đảm bảo an toàn dữ liệu cao nhất. Sơ đồ này minh họa kết hợp backup cục bộ nhanh với rsync và lưu trữ dữ liệu dài hạn với tar.

Sơ đồ trên minh họa một kiến trúc backup đơn giản: Các máy chủ hoặc hệ thống cần backup (bên trái) đồng bộ dữ liệu về máy chủ backup trung tâm (ở giữa) thông qua rsync. Việc đồng bộ này có thể thiết lập tự động (pull hoặc push) hằng ngày để đảm bảo máy chủ backup luôn có bản sao dữ liệu mới nhất. Sau khi dữ liệu tập trung tại máy chủ backup, một bản backup nữa được thực hiện từ đây ra ổ lưu trữ dữ liệu ngoài – có thể là ổ cứng gắn ngoài, băng từ hoặc dịch vụ cloud (bên phải). Trong sơ đồ, máy chủ backup dùng công cụ khác (ví dụ restic trong hình, hoặc tar) để nén và mã hóa dữ liệu rồi gửi lên cloud.
Đối với doanh nghiệp nhỏ, mô hình này có thể tối giản và tiết kiệm chi phí còn: backup dữ liệu từ server chính sang một ổ NAS nội bộ bằng rsync, và định kỳ sao chép ổ NAS đó ra ổ external usb, xong mang off-site. Dù lựa chọn cụ thể ra sao, nguyên tắc chung là nên có ít nhất 2 bản backup ở 2 vị trí khác nhau để đảm bảo an toàn dữ liệu (theo quy tắc 3-2-1: 3 bản sao, 2 loại thiết bị, 1 off-site).
Tự Động Hóa Backup Bằng Cron (Script Mẫu)
Để #BackupAutomation hiệu quả, bạn không muốn chạy thủ công các lệnh backup mỗi ngày. Cron – trình quản lý lịch trình tác vụ trong Linux – sẽ là trợ thủ đắc lực giúp bạn tự động hóa việc sao lưu dữ liệu. Dưới đây, Tôi đưa ra cho bạn các ví dụ script mẫu cho cả tar và rsync, cùng với hướng dẫn tích hợp với cron:
1. Script backup hàng ngày với rsync (giữ lịch sử dữ liệu):
Giả sử chúng ta muốn mỗi đêm tạo một snapshot backup bằng rsync, lưu lịch sử dữ liệu trong 7 ngày và dùng hard link để tiết kiệm dung lượng disk. Chúng ta có thể viết script Bash như sau (ví dụ file /usr/local/bin/backup_rsync.sh):
Giải thích: Script này đầu tiên đảm bảo thư mục đích cho full backup và incremental đã được bạn tạo ra trong hệ thống của bạn. Mỗi lần chạy, nó tạo thư mục mới theo ngày trong /backup/incremental/. Sau đó dùng rsync với --link-dest="$FULL" để tạo bản snapshot mới so với thư mục full. Tiếp theo, nó cập nhật thư mục /backup/full thành bản backup đầy đủ mới nhất (sau khi đồng bộ xong incremental, chúng ta đồng bộ luôn full để lần sau tham chiếu).
Cuối cùng, xóa các thư mục snapshot quá 7 ngày để tránh lưu trữ dữ liệu quá nhiều (dựa trên thời gian chỉnh sửa thư mục, mtime +7). Bạn có thể tùy chỉnh số ngày giữ lịch sử dữ liệu theo nhu cầu của bạn.

Để chạy script này hàng ngày, hãy thêm một dòng vào cron: ví dụ, chạy lúc 2:00 AM mỗi ngày, mở crontab (crontab -e) và thêm:
Lưu lại, cron sẽ tự động thực thi script vào 2:00 sáng mỗi ngày. Nhờ đó, dữ liệu TechDts sẽ được backup incremental hằng đêm, luôn sẵn sàng nhiều điểm khôi phục.
2. Script backup hệ thống Linux hàng tuần với tar:
Tiếp theo, một script khác để mỗi tuần tạo full backup cho toàn bộ hệ thống Linux bằng tar. Ví dụ file /usr/local/bin/backup_tar_full.sh:
Script này tạo file nén có tên theo ngày (ví dụ full-2025-06-23.tar.gz), chứa toàn bộ Linux OS (trừ các path exclude). Sau đó, xóa các files tar cũ hơn 28 ngày (4 tuần). Bạn có thể điều chỉnh thời gian giữ lại hoặc di chuyển những file này sang lưu trữ khác thay vì xóa. Để tự động chạy mỗi tuần, thêm một mục cron, ví dụ chạy vào mỗi Chủ Nhật 3:00 sáng:
Cron sẽ chạy tar theo định kỳ, bạn sẽ luôn có sẵn một bản backup full mới mỗi tuần.
Lưu ý bảo mật: Các script trên khi chạy sẽ yêu cầu quyền root (do backup hệ thống). Nếu đặt cron cho người dùng root (sửa crontab của root bằng
sudo crontab -e), hãy đảm bảo file script là có quyền thực thi (chạy lệnh: chmod +x) và chỉ root sở hữu để tránh bị chỉnh sửa bởi user khác. Ngoài ra, nên kiểm tra định kỳ log hoặc thiết lập gửi mail thông báo nếu backup gặp lỗi.
Giải Pháp Backup Phù Hợp Cho Doanh Nghiệp Nhỏ
Sau khi xem xét các kỹ thuật và công cụ, chúng ta hãy đánh giá vì sao việc dùng rsync và tar là giải pháp lý tưởng cho doanh nghiệp nhỏ:
-
Chi phí = 0: Cả rsync và tar đều là công cụ nguồn mở, tích hợp sẵn trên Linux. Bạn không phải mua bản quyền phần mềm đắt tiền. Với ngân sách hạn hẹp, việc tận dụng công cụ có sẵn giúp doanh nghiệp tiết kiệm chi phí mà vẫn có hệ thống backup hiệu quả.
-
Dễ triển khai: Thiết lập backup bằng rsync và tar khá đơn giản. Chỉ với vài script bash như trên và một chút cấu hình cron, bạn đã có một hệ thống backup tự động. Không đòi hỏi phần mềm phức tạp hay cấu hình rườm rà, bất kỳ Linux system admin nào cũng có thể thiết lập nhanh chóng. Thêm vào đó, giải pháp này rất linh hoạt – bạn có thể tùy biến script cho phù hợp với cấu trúc thư mục và lịch làm việc của công ty.
-
Phục hồi nhanh chóng: Khi xảy ra sự cố, việc khôi phục dữ liệu từ backup rsync/tar rất nhanh. Do rsync tạo bản sao file trực tiếp, bạn có thể truy cập ngay file backup mà không cần khôi phục toàn bộ image. Nếu cần phục hồi một file hoặc một thư mục, chỉ việc chép lại từ bản backup. Hơn nữa, rsync hỗ trợ phục hồi dạng incremental, chỉ truyền các file cần thiết, giúp quá trình khôi phục tiết kiệm thời gian và tài nguyên. Trong bối cảnh doanh nghiệp nhỏ, thời gian downtime ít đồng nghĩa với giảm thiểu thiệt hại.
-
Độ tin cậy và minh bạch: Các công cụ như tar/rsync đã tồn tại nhiều năm, được kiểm nghiệm rộng rãi. Bạn hoàn toàn có thể kiểm soát quá trình backup – biết rõ dữ liệu được sao chép ở đâu, định dạng thế nào. Việc phục hồi cũng không phụ thuộc vào phần mềm độc quyền: file tar có thể mở trên mọi máy Linux, dữ liệu rsync thực chất là copy thông thường. Điều này loại bỏ rủi ro vendor lock-in và tăng tính linh hoạt khi có tình huống khẩn cấp.
-
Phù hợp với dữ liệu vừa và nhỏ: Đối với doanh nghiệp có dung lượng dữ liệu không quá lớn (vài TB trở xuống), giải pháp rsync+tar hoạt động rất mượt mà. Nếu dữ liệu tăng dần, bạn có thể mở rộng bằng cách tách theo nhiều thư mục rsync khác nhau, hoặc nâng cấp phần cứng lưu trữ. Đến một ngưỡng nhất định, doanh nghiệp có thể xem xét các giải pháp chuyên dụng hơn, nhưng rsync/tar luôn có thể làm nền tảng hoặc phương án dự phòng bổ trợ.
Tất nhiên, không giải pháp nào là hoàn hảo cho mọi hoàn cảnh. Doanh nghiệp nên kết hợp thêm việc lưu backup ra địa điểm bên ngoài (off-site) để phòng thiên tai, và kiểm tra tính toàn vẹn của backup định kỳ (thử phục hồi trên máy test) để đảm bảo mọi thứ hoạt động. Tuy nhiên, với #DevOpsTools cơ bản như rsync và tar, các doanh nghiệp nhỏ hoàn toàn có thể xây dựng một hệ thống backup đáng tin cậy, miễn phí và hiệu quả.
Kết Luận và hành động đối với hệ thống Linux của bạn
Backup dữ liệu trên Linux server không còn là lựa chọn, đó là yêu cầu bắt buộc để bảo vệ tài sản số của doanh nghiệp. Qua bài viết, chúng ta đã thấy rằng bằng cách sử dụng linh hoạt hai công cụ rsync và tar, kết hợp chiến lược backup hợp lý (full + incremental, hard link snapshots, cron automation), ngay cả một doanh nghiệp nhỏ với ngân sách hạn hẹp cũng có thể triển khai hệ thống backup – khôi phục an toàn, nhanh chóng và tin cậy. Hãy bắt đầu hành động ngay hôm nay: kiểm tra lại kế hoạch backup của bạn, áp dụng những hướng dẫn trên để củng cố hệ thống. Đừng chờ đến khi sự cố xảy ra mới hối tiếc vì chưa có backup!
Hãy chia sẻ bài viết này cho đồng nghiệp và bạn bè làm về sysadmin/DevOps nếu bạn thấy hữu ích, cùng nhau xây dựng thói quen backup định kỳ dữ liệu để bảo vệ dữ liệu. Việc đầu tư thời gian vào backup hôm nay chính là tiết kiệm thời gian và tiền bạc cho ngày mai. Nhớ rằng: dữ liệu mất rồi có thể không lấy lại được, nhưng dữ liệu đã backup thì luôn nằm trong tay của bạn.
Bạn đã backup cho server của mình tuần này chưa? Nếu chưa, hãy lên lịch thực hiện ngay! Happy Backup!
#LinuxBackup #Rsync #TarCommand #DevOpsTools #SysAdminTips #DataRecovery #CronBackup #BackupAutomation
Nguồn tài liệu tham khảo: Tài liệu nội bộ về backup rsync/tar và kinh nghiệm thực tế (xem thêm trên Linux Journal, DigitalOcean, ServerFault…).




