scp và rsync: sao chép tệp
Hai lệnh để truyền tệp giữa máy tính của bạn và máy chủ: khi nào scp là đủ, rsync hữu ích cho việc gì, và cách không ghi đè thư mục của người khác với dấu gạch chéo cuối.
Cập nhật 23 tháng 8, 2026
Trình khách đồ họa rất tiện cho một lần chỉnh sửa đơn lẻ, nhưng việc triển khai và sao lưu sẽ dễ dàng hơn khi dùng một lệnh duy nhất.
scp: sao chép một lần
Cú pháp giống hệt cp, chỉ khác là có thêm địa chỉ máy:
scp dump.sql root@203.0.113.10:/root/
scp root@203.0.113.10:/var/log/nginx/error.log ./
scp -r ./site root@203.0.113.10:/var/www/
Lệnh đầu tiên gửi một tệp đi, lệnh thứ hai kéo một tệp về, lệnh thứ ba sao chép cả một thư mục (-r).
Nếu SSH chạy trên cổng khác, hãy chỉ định bằng chữ -P viết hoa:
scp -P 2222 dump.sql root@203.0.113.10:/root/
Với tệp ~/.ssh/config, các lệnh sẽ ngắn hơn: scp dump.sql vds:/root/.
rsync: đồng bộ hóa
rsync chỉ truyền phần khác biệt, có thể tiếp tục một phiên truyền bị gián đoạn và hiển thị tiến trình. Với những lần triển khai lặp lại, nó nhanh hơn nhiều lần.
rsync -avz --progress ./site/ root@203.0.113.10:/var/www/example.com/
| Cờ | Tác dụng |
|---|---|
-a | Giữ nguyên quyền, dấu thời gian, liên kết |
-v | In ra danh sách tệp |
-z | Nén luồng truyền |
--progress | Hiển thị tiến trình truyền |
--delete | Xóa trên máy những gì bạn không có |
--exclude | Bỏ qua những thứ không cần thiết |
Ví dụ về một lần triển khai sạch:
rsync -avz --delete \
--exclude '.git' --exclude 'node_modules' --exclude '.env' \
./site/ vds:/var/www/example.com/
Kéo một bản sao từ máy về phía bạn:
rsync -avz vds:/root/backup-2026-08-23.tar.gz ./backups/
Dấu gạch chéo ở cuối đường dẫn nguồn có nghĩa là “nội dung của thư mục”.
./site/đặt các tệp vào bên trong thư mục đích, còn./sitetạo một thư mục consitebên trong thư mục đích. Một nửa các lần triển khai bị “thiếu tệp” là do điều này.
Cẩn thận với --delete
Cờ --delete biến thư mục trên máy thành bản sao chính xác của thư mục bạn: mọi thứ dư thừa sẽ bị xóa mà không hỏi. Hãy chạy thử trước:
rsync -avzn --delete ./site/ vds:/var/www/example.com/
Cờ -n chỉ hiển thị những gì sẽ xảy ra. Khi đã chắc chắn, hãy bỏ chữ n.
Tốc độ
Tốc độ đĩa bị giới hạn theo từng gói: ghi ở mức 60 MB/s mỗi lõi (không dưới 60 và không quá 400), đọc gấp đôi mức đó, và một đợt bùng nổ gấp ba lần giới hạn kéo dài trong 30 giây. Băng thông mạng lên tới 500 Mbit/s. Trên VDS-1, việc tải lên một tệp lưu trữ lớn sẽ chạm giới hạn ghi, và đó là điều bình thường, không phải lỗi. Để kiểm tra tình hình:
df -h
iostat -x 2
Những lỗi thường gặp
| Triệu chứng | Nguyên nhân |
|---|---|
Permission denied | Bạn đang ghi vào thư mục không thuộc người dùng của mình — hãy đăng nhập bằng root hoặc đổi chủ sở hữu |
No such file or directory | Thư mục không tồn tại trên máy và scp sẽ không tạo nó: hãy chạy mkdir -p trước |
| Các tệp nằm cao hơn một cấp | Thiếu hoặc thừa dấu gạch chéo ở cuối đường dẫn |
rsync: command not found | Cài gói trên cả hai phía: apt install -y rsync |
| Trang web trả về 403 sau khi triển khai | Chưa đặt chủ sở hữu: chown -R www-data:www-data /var/www/example.com |
Nếu bạn thích dùng trình khách đồ họa, xem truyền tệp qua SFTP.