Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sử dụng tar nc để nén và chuyển file backup real-time

    Nguyễn Hưng

    Ngày đăng:

    30/10/2025

    Cập nhật lần cuối:

    30/10/2025

    Lượt xem:
    Chia sẻ
    Đánh giá
    Đánh giá bài viết

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    30/10/2025

    Cập nhật lần cuối:

    30/10/2025

    Mục lục

    Kỹ thuật nén và chuyển file backup real-time bằng tar nc là phương pháp sử dụng hai công cụ dòng lệnh phổ biến trong hệ điều hành Linux để nén dữ liệu và truyền trực tiếp giữa hai máy chủ mà không cần tạo ra file trung gian trên server nguồn. Trong bài viết này, mình sẽ hướng dẫn bạn cách thực hiện backup dữ liệu bằng tar và netcat chi tiết, nhanh chóng.

    Những điểm chính

    • Khái niệm tar nc: Là kỹ thuật kết hợp lệnh tar và nc để truyền dữ liệu trực tiếp qua mạng mà không cần tạo file trung gian.
    • Tại sao nên sử dụng: Giúp giải quyết vấn đề “nút thắt cổ chai” bằng cách nén và truyền dữ liệu đồng thời, tiết kiệm thời gian và dung lượng ổ đĩa.
    • Cảnh báo bảo mật quan trọng: Dữ liệu được truyền đi không mã hóa và không có cơ chế xác thực, tuyệt đối không dùng trên mạng không tin cậy.
    • Khi nào nên sử dụng: Chỉ nên dùng trong các môi trường mạng nội bộ tin cậy, nơi tốc độ là ưu tiên hàng đầu và không có rủi ro về bảo mật.
    • Cách nén và chuyển file: Quy trình gồm hai bước, bắt đầu bằng việc cho máy nhận lắng nghe trên một cổng, sau đó máy nguồn nén và gửi dữ liệu đến cổng đó, có thể thêm thanh tiến trình tùy nhu cầu sử dụng.
    • Giải đáp thắc mắc thường gặp cho các vấn đề thực tiễn như so sánh với scp, rủi ro bảo mật và cách theo dõi tiến trình backup.

    Tar nc là gì?

    tar nc là kỹ thuật phương pháp kết hợp hai công cụ dòng lệnh của Linux để truyền dữ liệu trực tiếp qua mạng mà không cần tạo file trung gian. Kỹ thuật này hoạt động bằng cách sử dụng tar để đóng gói một thư mục thành một luồng dữ liệu, sau đó dùng nc để gửi luồng dữ liệu đó qua một đường ống mạng (network pipe) đến máy nhận. Tại máy nhận, một lệnh nc khác sẽ lắng nghe và nhận luồng dữ liệu này, rồi đưa cho tar để giải nén.

    • tar (Tape Archive): Đóng gói nhiều file và thư mục thành một luồng dữ liệu duy nhất.
    • nc (netcat): Tạo một kết nối mạng TCP/UDP đơn giản để gửi và nhận dữ liệu thô .
    Khái niệm Tar nc
    Khái niệm Tar nc

    Nút thắt cổ chai về thời gian khi backup dữ liệu lớn

    Ví dụ, bạn cần backup một thư mục dung lượng 100GB. Quy trình chuẩn sẽ là:

    1. Dùng tar để nén thư mục. (Chờ 1 tiếng)
    2. Sau khi có file nén, dùng scp hoặc rsync để chuyển nó qua server khác. (Chờ thêm 1 tiếng)

    Tổng thời gian đợi quy trình hoàn tất có thể lên tới 2 tiếng bởi việc chuyển file chỉ được thực hiện sau khi đã nén xong, điều này gây nên một điểm nghẽn về thời gian và lãng phí đáng kể tài nguyên. Từ đó, kỹ thuật kết hợp tarnetcat (nc) ra đời cho phép bạn vừa nén vừa chuyển dữ liệu đồng thời, giúp giảm tổng thời gian xuống gần một nửa.

    Như vậy, bạn nên kết hợp tar và netcat khi cần nén và truyền dữ liệu trực tiếp giữa hai máy tính qua mạng mà không muốn tạo file trung gian trên server nguồn, giúp tiết kiệm dung lượng, tăng tốc quá trình chuyển file, đặc biệt hữu ích khi server đầy bộ nhớ hoặc cần chuyển file lớn một cách nhanh gọn trong hệ thống nội bộ.

    Hiện tượng nút thắt cổ chai
    Hiện tượng nút thắt cổ chai (Nguồn: Internet)

    Cảnh báo bảo mật quan trọng

    Trước khi sử dụng, bạn phải hiểu rõ những rủi ro bảo mật nghiêm trọng của phương pháp này. Tuyệt đối không sử dụng tar | nc trên các mạng không tin cậy như Internet hoặc Wifi công cộng.

    • Không mã hóa: Toàn bộ dữ liệu được truyền đi ở dạng văn bản thuần túy (plaintext). Bất kỳ ai trên cùng mạng đều có thể nghe lén và xem được toàn bộ nội dung file của bạn.
    • Không xác thực: netcat không có cơ chế xác thực. Bất kỳ máy tính nào trong mạng cũng có thể kết nối đến cổng đang lắng nghe và gửi hoặc nhận dữ liệu.
    Bạn không nên backup dữ liệu bằng tar và netcat qua Wi-Fi công cộng
    Bạn không nên backup dữ liệu bằng tar và netcat qua Wi-Fi công cộng (Nguồn: Internet)

    Khi nào nên sử dụng tar nc?

    Phương pháp này chỉ thực sự an toàn và phát huy hiệu quả trong các môi trường được kiểm soát chặt chẽ:

    • Mạng LAN nội bộ tin cậy: Truyền dữ liệu giữa các máy chủ trong cùng một trung tâm dữ liệu (ví dụ: kết nối trực tiếp giữa hai server trong cùng một rack, hoặc qua một VLAN backup riêng).
    • Giữa các máy ảo: Sao chép dữ liệu giữa các máy ảo chạy trên cùng một máy chủ vật lý.
    • Khi tốc độ là ưu tiên tuyệt đối: Do không tốn tài nguyên cho việc mã hóa, đây là một trong những cách truyền dữ liệu nhanh nhất.

    Quy trình backup dữ liệu sẽ gồm 2 bước, nhưng logic sẽ là khởi động bên nhận trước, sau đó mới bắt đầu bên gửi.

    Bước 1: Trên server đích (nơi nhận backup)

    Đầu tiên, bạn mở một cửa sổ terminal và chạy lệnh sau để netcat lắng nghe kết nối trên một cổng bất kỳ (ví dụ: 9999):

    # nc sẽ lắng nghe (-l) trên cổng 9999 và ghi mọi dữ liệu nhận được vào file backup.tar.gz
    nc -l 9999 > backup.tar.gz

    Bước 2: Trên server nguồn (nơi có dữ liệu cần backup)

    Bây giờ, bạn hãy mở terminal trên server nguồn và thực thi lệnh sau:

    # Nén thư mục 'backup/' bằng gzip (z), ghi ra stdout (f -)
    # rồi đẩy qua netcat tới IP của server đích trên cổng 9999
    tar czf - backup/ | nc <IP_SERVER_ĐÍCH> 9999

    Hãy chắc chắn rằng bạn đã thay <IP_SERVER_ĐÍCH> bằng địa chỉ IP thực tế của server ở Bước 1.

    Phân tích lệnh:

    • tar czf - backup/: tar sẽ nén (c và z) thư mục backup/ và đẩy luồng dữ liệu đã nén ra stdout (f -).
    • |: “Đường ống” quen thuộc sẽ hứng trọn luồng dữ liệu này.
    • nc <IP_SERVER_ĐÍCH> 9999: netcat kết nối đến server đích và gửi toàn bộ dữ liệu nó nhận được từ tar qua kết nối đó.

    Khi bạn nhấn Enter, tar bắt đầu nén, và nc bắt đầu gửi. Trên server đích, bạn sẽ thấy file backup.tar.gz được tạo ra và dung lượng tăng lên theo thời gian thực. Khi tar hoàn tất, kết nối sẽ tự động đóng, và file backup ở server đích cũng đã hoàn chỉnh.

    Thêm thanh tiến trình (tùy chọn)

    Bạn có thể cài đặt công cụ pv (Pipe Viewer) và chèn nó vào giữa để theo dõi tốc độ và tiến trình.

    # Trên Server Nguồn
    tar czf - backup/ | pv | nc <IP_SERVER_ĐÍCH> 9999

    Lệnh này sẽ hiển thị một thanh tiến trình, cho bạn biết chính xác có bao nhiêu dữ liệu đã được truyền và với tốc độ bao nhiêu.

    Câu hỏi thường gặp

    Khi server đầy bộ nhớ, có thể backup dữ liệu mà không tạo file tạm không?

    Hoàn toàn có thể. Phương pháp dùng tar kết hợp SSH hoặc netcat sẽ truyền trực tiếp luồng dữ liệu nén sang máy chủ đích mà không ghi ra ổ cứng của server nguồn, phù hợp với tình huống bị giới hạn dung lượng.

    Tar và netcat khác gì scp hay rsync khi backup dữ liệu trực tiếp giữa hai máy chủ?

    tar kết hợp với netcat nén dữ liệu thành một luồng duy nhất để truyền, còn scprsync truyền từng tệp riêng lẻ qua mạng. scp sao chép toàn bộ tệp, còn rsync chỉ đồng bộ những dữ liệu thay đổi.

    Có những rủi ro bảo mật nào khi truyền bằng netcat không?

    Nếu truyền bằng netcat, dữ liệu sẽ không được mã hóa nên nguy cơ bị nghe lén tồn tại trên mạng không an toàn. Vì vậy bạn hãy dùng phương pháp này trong mạng LAN uy tín, còn backup qua SSH sẽ bảo mật hơn do dữ liệu được mã hóa trong lúc truyền tải.

    Có thể kết hợp hiển thị thanh tiến trình khi truyền dữ liệu không?

    Bạn hoàn toàn có thể cài công cụ pv (Pipe Viewer) để theo dõi tốc độ và tiến trình backup khi truyền dữ liệu, giúp kiểm soát tài nguyên thực tế trong quá trình backup file lớn.

    Kỹ thuật nén và chuyển file backup real-time bằng tar nc mang lại tốc độ truyền tải vượt trội, đặc biệt phù hợp cho những môi trường mạng nội bộ an toàn và khi hiệu suất là yếu tố hàng đầu. Tuy nhiên, bạn cũng cần lưu ý các rủi ro rò rỉ dữ liệu khi sử dụng kỹ thuật này. Để tìm hiểu sâu hơn về cách quản lý hệ thống, bảo mật và các thủ thuật Linux khác, mời bạn tiếp tục theo dõi một số bài viết dưới đây:

    Đánh giá bài viết
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn sử dụng lệnh watch trong Linux để giám sát tiến trình hiệu quả
    Hướng dẫn sử dụng lệnh watch trong Linux để giám sát tiến trình hiệu quả

    Lệnh watch Linux là một công cụ dòng lệnh mạnh mẽ giúp bạn tự động thực thi lặp lại một lệnh bất kỳ theo chu kỳ. Thay vì phải gõ lại lệnh liên tục để xem sự thay đổi, watch sẽ cập nhật kết quả ngay trên màn hình của bạn. Bài viết này sẽ…

    30/10/2025

    Hướng dẫn sao lưu dữ liệu trực tiếp qua mạng bằng tar qua SSH khi server đầy bộ nhớ
    Hướng dẫn sao lưu dữ liệu trực tiếp qua mạng bằng tar qua SSH khi server đầy bộ nhớ

    Khi ổ cứng đầy, giải pháp tốt nhất là bạn nên kết hợp tar và ssh để tạo một pipepline truyền dữ liệu trực tiếp qua mạng mà không cần lưu trữ trung gian. Bài viết này sẽ hướng dẫn chi tiết từng bước thực hiện backup bằng tar SSH trong điều kiện tài nguyên…

    30/10/2025

    Cách dùng Multitail để phân tích và đọc log chính xác, đơn giản
    Cách dùng Multitail để phân tích và đọc log chính xác, đơn giản

    Multitail là một công cụ dòng lệnh mạnh mẽ trên Linux giúp hiển thị nhiều file log hoặc output của nhiều lệnh khác nhau trên cùng một màn hình terminal, với khả năng chia nhỏ cửa sổ linh hoạt và các tính năng vượt trội so với lệnh tail truyền thống. Trong bài viết này,…

    30/10/2025

    Hướng dẫn chi tiết về lệnh Yum trong Linux: Từ cơ bản đến nâng cao
    Hướng dẫn chi tiết về lệnh Yum trong Linux: Từ cơ bản đến nâng cao

    Lệnh yum trong Linux là công cụ quản lý gói phần mềm mạnh mẽ, sử dụng giao diện dòng lệnh, giúp người dùng dễ dàng cài đặt, cập nhật, gỡ bỏ và kiểm soát các ứng dụng trên hệ điều hành Linux dựa trên nền tảng RPM như CentOS, RHEL và Fedora. Trong bài viết…

    30/10/2025