SCP – Secure Copy là cộng cụ sử dụng giao thức SSH thường dùng để copy dữ liệu từ máy linux sang linux.

Cài đặt SCP

Thường thì SCP sẽ được cài sẵn trên linux, nếu chưa cài đặt sử dụng lênh sau.

Ubuntu/Debian

apt-get install scp

RedHat/Centos:

yum install scp

Nếu cần cài đặt quyền root thì sử dụng sudo nhá.

Sử dụng  SCP

Môi trường sử dụng:

  • Server 1 : IP 192.168.0.1 đây là server chứa dữ liệu cần copy(có dữ liệu sẳn trên server này) nằm ở thư mục /var/www/html/web/staging
  • Server 2: IP 192.168.0.2 đây là server nhận dữ liệu copy từ server 1 chúng ta sẽ copy vào thư mục /var/www/html/web/production

=> Đầu tiên SSH vào server 1 bằng user và pass của bạn(cái này bạn tự quản lý không ai biết đâu @@, ví dụ user: test, pass: 123456),  và sau đó thực hiện lệnh scp để copy toàn bộ file và thư mục trong /var/www/html/web/staging của server 1 vào /var/www/html/web/production của server 2

Cú pháp lệnh

scp source_file user@ip_host:destination_folder

source_file: là nơi chứa file copy (/var/www/html/web/staging)

user: user của server 2

ip_host: địa chỉ ip của server 2

destination_folder: thư mục chứa trên server 2(/var/www/html/web/production)

Và đây là lệnh cho trường hợp ví dụ của chúng ta:

scp -r /var/www/html/web/staging/* test@192.168.0.2:/var/www/html/web/production/

-r: copy toàn bộ thư mục lẫn file trong thư mục staging.

câu lệnh trên thực hiện qua cổng ssh mặc định là 22, nếu có thay đổi cổng này thì thêm option -P(viết hoa), và lệnh sẽ thành:

scp -rP 777 /var/www/html/web/staging/* test@192.168.0.2:/var/www/html/web/production/

Nếu server 2 không cấu hình sử dụng SSH key thì khi copy sẽ ra thông báo giống giống như sau:

The authenticity of host '192.160.0.3 (192.160.0.3)' can't be established.
RSA key fingerprint is d6:38:38:48:98:33:72:9a:be:a5:e3:8c:e5:5e:9d:4g.
Are you sure you want to continue connecting (yes/no)?yes

Khi đó nhấn yes để tiếp tục, và nó sẽ kêu điền pass của server 2 vào, rồi nhấn enter

Như thế là nó sẽ thực hiện copy cho chúng ta.

Nếu muốn copy ngược lại và cũng đang ở server 1 thì là làm như sau:

scp -rP 777 test@192.168.0.2:/var/www/html/web/production/*  /var/www/html/web/staging/

Chú ý là mình sử dụng lệnh này ở bất kỳ đâu nên mình dùng đường dẫn tuyệt đối nha

Đương nhiên nếu server 2 có sử dụng SSH key thì sẽ không có thông báo như trên, dữ liệu truyền đi cũng bảo mật hơn. Việc tạo SSH key các bạn tự tìm hiểu nha. Nếu có thời gian mình sẽ hướng dẫn ở bài khác.

Ví dụ về lệnh scp có ssh key như sau thêm đoạn(-i /home/ecapp/.ssh/rsa_ecapp20150603):

scp  -i /home/ecapp/.ssh/rsa_ecapp20150603 -r /var/www/html/web1/staging/* test@192.168.0.2:/var/www/html/web/production/

Kết:

scp là công cụ truyền tập tin “an toàn” trên mạng, nó sẽ copy nhưng gì chúng ta chỉ định. Phần sau mình sẽ giới thiệu thêm một lệnh khác là rsync cũng có công dụng tương tư, nhưng nó ở mức độ nâng cấp hơn như: copy lại nếu rớt mạng(đường truyền yếu), loại bỏ các file không muốn copy trong thư mục…

Kết luận

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

Nongdanit.info
SCP – Copy FILE/FOLDER từ LINUX sang LINUX