Hướng dẫn chi tiết lệnh robocopy trong cmd: từ cơ bản đến nâng cao

lệnh robocopy trong cmd

Lệnh robocopy trong cmd là một công cụ sao chép tệp và thư mục mạnh mẽ được tích hợp sẵn trên Windows, vượt xa giới hạn của lệnh copy hay xcopy thông thường. Ra mắt lần đầu trong Windows NT 4.0 Resource Kit, robocopy (viết tắt của Robust File Copy) đã trở thành lệnh không thể thiếu đối với quản trị viên hệ thống, chuyên viên IT và người dùng cao cấp. Bài viết này sẽ phân tích chuyên sâu cú pháp, các tham số chính, cách sử dụng thực tế và những mẹo tối ưu giúp bạn khai thác triệt để sức mạnh của robocopy.

Lệnh robocopy trong cmd là gì? Bản chất và nguyên lý hoạt động

lệnh robocopy trong cmd - Hình 4

Robocopy là một tiện ích dòng lệnh (command-line utility) được thiết kế để sao chép đồng bộ dữ liệu giữa hai vị trí, hỗ trợ cả đường dẫn cục bộ lẫn mạng. Không giống như lệnh copy thông thường chỉ sao chép đơn thuần, robocopy có khả năng khôi phục khi gặp lỗi mạng, sao chép theo chế độ đa luồng, duy trì thuộc tính bảo mật NTFS và thực hiện đồng bộ hoàn chỉnh.

Nguyên lý cốt lõi của robocopy là so sánh thời gian chỉnh sửa tệp hoặc kích thước để quyết định sao chép hay bỏ qua. Nó có thể hoạt động ở ba chế độ chính: sao chép đơn thuần (copy), sao chép có di chuyển (move) và đồng bộ (mirror). Nhờ cơ chế kiểm tra và phục hồi linh hoạt, robocopy được xem là “cứu cánh” cho các tác vụ sao chép dữ liệu quy mô lớn.

Xem thêm:  Cách chuyển Dynamic Disk sang Basic Disk an toàn, không mất dữ liệu

Cú pháp cơ bản và các tham số cốt lõi của lệnh robocopy trong cmd

lệnh robocopy trong cmd - Hình 3

Cú pháp tổng quát của lệnh robocopy trong cmd như sau:

robocopy <Nguồn> <Đích> [Tệp…] [Tùy chọn]

Trong đó: Nguồn là thư mục gốc, Đích là thư mục đích, Tệp là danh sách file cụ thể (mặc định là .) và Tùy chọn là các cờ điều khiển hành vi.

Tham số Chức năng Ví dụ sử dụng
/S Sao chép thư mục con trừ thư mục rỗng robocopy C:Data D:Backup /S
/E Sao chép thư mục con kể cả thư mục rỗng robocopy C:Data D:Backup /E
/MIR Đồng bộ thư mục đích giống hệt nguồn (xóa file thừa tại đích) robocopy C:Data D:Backup /MIR
/MOV Di chuyển tệp (xóa khỏi nguồn sau khi sao chép) robocopy C:Data D:Backup /MOV
/MOVE Di chuyển tệp và thư mục (xóa toàn bộ nguồn) robocopy C:Data D:Backup /MOVE
/Z Sao chép ở chế độ khôi phục (dành cho mạng không ổn định) robocopy C:Data D:Backup /Z
/ZB Dùng chế độ khôi phục, nếu thất bại chuyển sang chế độ khởi động lại robocopy C:Data D:Backup /ZB
/R:N Số lần thử lại khi lỗi (mặc định là 1 triệu) robocopy C:Data D:Backup /R:5
/W:N Thời gian chờ giữa các lần thử, tính bằng giây (mặc định 30) robocopy C:Data D:Backup /W:10
/MT:N Số luồng đa luồng (mặc định 8, tối đa 128) robocopy C:Data D:Backup /MT:16
/LOG:file Ghi nhật ký vào tệp, ghi đè nếu tệp đã tồn tại robocopy C:Data D:Backup /LOG:log.txt
/LOG+:file Ghi nhật ký nối tiếp vào tệp robocopy C:Data D:Backup /LOG+:log.txt
/XD thư_mục Loại trừ thư mục chỉ định robocopy C:Data D:Backup /XD Temp Cache
/XF tệp Loại trừ tệp chỉ định (hỗ trợ wildcard) robocopy C:Data D:Backup /XF .tmp .log
/PURGE Xóa tại đích các tệp/thư mục không còn tồn tại ở nguồn robocopy C:Data D:Backup /PURGE
/SEC Sao chép bảo mật NTFS (ACL) robocopy C:Data D:Backup /SEC
Xem thêm:  Cách thay đổi hình nền dual monitor đơn giản và nhanh chóng cho mọi hệ điều hành

Phân loại tham số theo nhóm chức năng

lệnh robocopy trong cmd - Hình 2

Nhóm sao chép cơ bản

Các tham số /S, /E, /PURGE, /MIR quyết định phạm vi sao chép. Trong đó, /MIR là sự kết hợp của /E và /PURGE, thường dùng để tạo bản sao đồng bộ hoàn hảo. Cần thận trọng khi dùng /MIR vì nó xóa dữ liệu tại đích nếu dữ liệu đó không có ở nguồn.

Nhóm phục hồi và chịu lỗi

/Z, /ZB, /R, /W giúp robocopy vượt qua lỗi kết nối mạng tạm thời. Đặc biệt sao chép với /Z cho phép tiếp tục từ điểm dừng nếu quá trình bị gián đoạn, tương tự resume trong trình tải file.

Nhóm tối ưu hiệu năng

/MT (multi-thread) là một trong những ưu điểm lớn nhất của robocopy so với xcopy. Với /MT:16, tốc độ sao chép có thể tăng gấp 2-4 lần trên ổ cứng HDD và nhiều hơn trên SSD hoặc NAS. Tuy nhiên, trên hệ thống mạng yếu, số luồng quá cao có thể gây nghẽn.

Nhóm lọc và loại trừ

Tham số /XD, /XF, /MAXAGE, /MINAGE, /MAXSIZE, /MINSIZE cho phép kiểm soát chính xác tệp nào được sao chép, giúp tiết kiệm thời gian và băng thông khi làm việc với thư mục lớn.

Nhóm bảo mật và thuộc tính

Robocopy có thể sao chép ACL (/SEC), audit (/SECFIX), timestamp (/DCOPY:T), owner (/COPYALL). Điều này cực kỳ quan trọng khi di chuyển dữ liệu giữa các máy chủ có yêu cầu bảo mật cao.

So sánh lệnh robocopy với xcopy và copy thông thường

Tính năng copy xcopy robocopy
Sao chép nhiều luồng Không Không Có (/MT)
Khôi phục khi mất kết nối Không Không
Đồng bộ xóa file thừa Không Không Có (/MIR, /PURGE)
Sao chép thuộc tính NTFS Một phần Có (/O, /X) Đầy đủ (/SEC, /COPYALL)
Kiểm tra CRC tùy chọn Không Không Có (không mặc định)
Giới hạn đường dẫn 255 ký tự 255 ký tự 32.767 ký tự
Log chi tiết Không Không Có (/LOG, /NP, /NJH, /NJS)
Lọc thời gian, kích thước Không Hạn chế Linh hoạt (MAXAGE, MINSIZE…)
Di chuyển Không Không Có (/MOV, /MOVE)

Rõ ràng robocopy là lựa chọn vượt trội cho các tác vụ phức tạp. Xcopy vẫn hữu ích cho sao chép đơn giản nhanh, nhưng với các yêu cầu về độ tin cậy và hiệu suất, robocopy là công cụ duy nhất đáp ứng.

Hướng dẫn sử dụng lệnh robocopy trong cmd thực tế

lệnh robocopy trong cmd - Hình 1

Sao lưu dữ liệu hàng ngày với tính năng incremental

Lệnh sau sẽ sao chép tất cả tệp có thay đổi trong 7 ngày qua từ thư mục Dữ liệu sang ổ cứng gắn ngoài, chỉ sao chép tệp mới hoặc đã sửa, bỏ qua tệp trùng lặp:

robocopy D:DuLieu E:Backup /MIR /MAXAGE:7 /R:5 /W:10 /LOG+:C:Logsbackup.log /NP

Kết hợp với Task Scheduler,

Robocopy có sẵn từ Windows Vista trở đi và Windows Server 2008 trở lên. Trên Windows XP/2003, cần cài đặt từ Windows Resource Kit.

Làm thế nào để hủy bỏ quá trình robocopy đang chạy?

Nhấn Ctrl + C trong cửa sổ cmd. Robocopy sẽ dừng sau khi hoàn thành tệp hiện tại.

Robocopy có thể sao chép file lớn hơn 4GB không?

Có, robocopy không giới hạn kích thước tệp. Nó hỗ trợ cả định dạng FAT32, NTFS, ReFS.

Sự khác biệt giữa /PURGE và /MIR là gì?

/PURGE chỉ xóa file thừa ở đích, nhưng không xóa thư mục thừa. /MIR kết hợp /E và /PURGE, xóa cả thư mục và file thừa, tạo ra bản sao chính xác.

Tôi có thể sao chép qua FTP hoặc SFTP bằng robocopy không?

Không, robocopy chỉ hoạt động với đường dẫn cục bộ hoặc UNC (SMB/CIFS). Để sao chép qua FTP, bạn cần công cụ khác như lftp, WinSCP script.

Làm sao để chỉ sao chép file đã thay đổi trong 24h qua?

Sử dụng tham số /MAXAGE:1 (1 ngày) hoặc /MINAGE:0. Kết hợp với /MIR để tạo incremental backup.

Kết luận

Lệnh robocopy trong cmd là một trong những công cụ sao chép dữ liệu mạnh mẽ và linh hoạt nhất mà Windows cung cấp sẵn. Với khả năng đa luồng, cơ chế phục hồi lỗi, đồng bộ thông minh và bảo toàn bảo mật, nó đáp ứng hầu hết nhu cầu từ sao lưu cá nhân đến quản lý máy chủ doanh nghiệp. Để khai thác tối đa, bạn cần nắm vững các tham số chính, luôn thử nghiệm trước khi thực thi và kết hợp với các công cụ khác như Task Scheduler hay Volume Shadow Copy. Thực hành thường xuyên sẽ giúp bạn làm chủ robocopy và biến nó thành trợ thủ đắc lực trong quản lý dữ liệu hàng ngày.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *