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/* [email protected]:/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/* [email protected]:/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 [email protected]:/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/* [email protected]:/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…
[thongbao]
- 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ể.
- Cảm ơn các bạn đã đọc.
[/thongbao]