Copy file từ windows vào linux bằng scp

SCP mặc định sử dụng thuật toán AES để mã hóa file truyền đi. Bạn có thể muốn sử dụng một thuận toán khác để tăng tốc độ chuyển file chẳng hạn, ví dụ như thuật toán blowfish và arcfour thì nhanh hơn AES [nhưng bảo mật lại kém hơn]. Sử dụng option ‘-c’ [không viết hoa].

Hầu hết mọi người thường quen dùng WinSCP copy dữ liệu trên máy chủ linux về. Ví dụ như đang cài webserver trên VPS Linode muốn copy file từ VPS khác của Vultr chẳng hạn thì làm thế nào với cái màn hình đen xì ấy không lẽ nhảy lên Windows chạy WinSCP rồi copy từ Vultr về rồi lại từ máy Windows đẩy file ngược lên Linode, nghe có vẻ ngu ngu nhỉ 🙂 hì, vẫn rất nhiều bạn đang làm theo cách đó đấy.

Cú pháp lệnh SCP

Cú pháp của lệnh scp:

1

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

Trong đó:

  • OPTION là các tùy chọn của lệnh SCP như mật mã, cấu hình ssh, cổng ssh, giới hạn…
  • [[email protected]]SRC_HOST:]file1 Tệp nguồn.
  • [[email protected]]DEST_HOST:]file2 Tệp đích.

Tệp cục bộ được chỉ định bởi đường dẫn tuyệt đối hoặc tương đối.

Tên tệp từ xa bao gồm thông số kỹ thuật của người dùng và máy chủ.

Một số tùy chọn được sử dụng trong scp:

  • -P– Cho phép khai báo cổng SSH máy chủ từ xa.
  • -p– Quản lý thời gian chỉnh sửa và truy cập tệp.
  • -q– Cho phép loại bỏ các thông báo rác.
  • -C– Được dùng để nén dữ liệu trước khi gửi.
  • -r– Được dùng cho việc truyền các tệp và thư mục.

Một số lưu ý trước khi bắt đầu

Lệnh SCP sử dụng SSH để di chuyển dữ liệu và có chế độ bảo mật giống với SSH như yêu cầu khóa SSH hay mật khẩu để xác thực trên hệ thống từ xa.

Dấu hai chấm [:] là cách để lệnh scp có thể phân biệt giữa hai vị trí cục bộ và từ xa.

Điều kiện để sao chép tệp đó là quyền đọc trên tệp nguồn và quyền ghi trên hệ thống đích.

Lưu ý quan trọng: Khi sao chép các tệp có cùng tên và vị trí trên cả hai hệ thống, lệnh SCP sẽ ghi đè tệp mà không có bất kỳ cảnh báo nào gửi về. Hay khi di chuyển các tệp lớn, hãy chạy lệnh SCP trong screen hoặc phiên tmux.

Cách sao chép tệp và thư mục giữa hai hệ thống với lệnh SCP

1. Sao chép tệp từ máy cục bộ sang máy từ xa bằng lệnh SCP

Thực hiện sao chép hãy sử dụng lệnh:

1

scp file.txt remote_username@10.10.0.2:/remote/directory


Trong đó:
  • file.txt là tên của tệp chọn để sao chép.
  • remote username là tên người dùng trên máy chủ từ xa.
  • 10.10.0.2 là địa chỉ IP của máy chủ.
  • /remote/directory là đường dẫn đến thư mục sao chép mới.

Lưu ý: Nếu không chỉ định thư mục từ xa, tệp sẽ được sao chép vào thư mục chính của người dùng đó.

Cách để lưu tên tệp theo ý muốn:

1

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt


Nếu SSH trên máy chủ từ xa không liên kết với cổng 22 mặc định thì bạn có thể chỉ định cổng bằng cách sử dụng tham số -P:

1

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory


Để sao chép thư mục từ hệ thống cục bộ sang hệ thống từ xa, bạn có thể sử dụng tùy chọn -r:

1

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

2. Sao chép tệp từ xa vào hệ thống cục bộ bằng lệnh SCP

Sao chép tệp từ xa vào hệ thống cục bộ tức là sử dụng vị trí từ xa làm nguồn và vị trí cục bộ làm đích trong quá trình di chuyển.

Ví dụ: Sao chép tệp có tên file.txt từ một máy chủ từ xa với IP 10.10.0.2 như sau:

1

scp remote_username@10.10.0.2:/remote/file.txt /local/directory

Nếu bạn chưa cài đặt đăng nhập SSH không cần mật khẩu cho máy từ xa, bạn sẽ được yêu cầu nhập mật khẩu người dùng.

3. Sao chép tệp giữa hai hệ thống từ xa bằng lệnh SCP

Khi sử dụng lệnh SCP để sao chép, bạn không cần phải đăng nhập vào một trong các máy chủ để di chuyển tệp qua các vị trí máy khác nhau.

Sao chép tệp /files/file.txt tại máy chủ từ xa host1.com vào thư mục /files trên máy chủ từ xa host2.com

1

user1@host1.com:/files/file.txt user2@host2.com:/files

Hệ thống yêu cầu nhập mật khẩu cho cả hai tài khoản và dữ liệu sẽ được truyền trực tiếp từ máy chủ này sang máy chủ khác.

Chủ Đề