SCP là viết tắt của “Secure Copy” được sử dụng để sao chép thư mục và file giữa các server Linux một cách an toàn. Câu lệnh SCP cho phép sao chép giữa các server nội bộ và các server public. Nó sử dụng cùng một xác thực và bảo mật như được sử dụng trong giao thức Secure Shell (SSH). SCP được biết đến với tính đơn giản, bảo mật và tính sẵn sàng.
Cấu trúc câu lệnh SCP như sau:
scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 … [[user@]host2:]file2
Các tùy chọn tham số cơ bản như sau:
- -P port: Chọn cổng kết nối giống với cổng SSH.
- -p : Giữ nguyên thời gian sửa đổi, thời gian truy cập và chế độ từ tệp gốc.
- -q : Tắt việc hiển thị tiến trình sao chép.
- -r : Sao chép thư mục.
- -v : Bật chế độ gỡ rối.
Dưới đây là những câu lệnh thường được sử dụng trong việc sao chéo file, thư mục giữa các server Linux.
1. Hiển thị chi tiết quá trình copy #
Nếu quá trình copy có lỗi thì nên sử dụng option này để tìm ra nguyên nhân
# scp -v tai_lieu_hoc_tap.pdf debian@192.168.1.120:/home/centos/ debian@192.168.1.120's password: debug1: Authentication succeeded (password). Authenticated to 192.168.1.120 ([192.168.1.120]:22). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: pledge: network debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0 debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 debug1: Sending command: scp -v -t /home/debian/ Sending file modes: C0644 104857600 tai_lieu_hoc_tap.pdf Sink: C0644 104857600 tai_lieu_hoc_tap.pdf tai_lieu_hoc_tap.pdf 100% 100MB 105.9MB/s 00:00 debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK Transferred: sent 104987640, received 20748 bytes, in 1.0 seconds Bytes per second: sent 102363454.8, received 20229.4 debug1: Exit status 0
2. Giữ nguyên các tham số #
Option “-p” cho phép giữ nguyên các tham số của file, thư mục sau khi copy.
scp -p file.txt debian@192.168.1.120:/home/debian/ debian@192.168.1.120's password: file.txt 100% 100MB 10.8MB/s 00:10
3. Copy file giữa server #
Copy từng file:
scp file.txt debian@192.168.1.120:/home/debian/
Copy nhiều file:
scp file.txt fiel1.txt file2.txt debian@192.168.1.120:/home/debian/
4. Copy thư mục #
Copy từng thư mục:
scp ./data debian@192.168.1.120:/home/debian/
Copy nhiều thư mục:
scp ./data ./config debian@192.168.1.120:/home/debian/
5. Copy có nén dữ liệu #
Có thể tăng tốc độ truyền file bằng cách nén file để giảm dung lượng phải truyền.
scp -rC ./data debian@192.168.1.120:/home/debian/
6. Giới hạn băng thông #
Để không làm ảnh hưởng đến lưu lượng mạng của server khi truyền tải file lớn thì nên giới hạn tốc độ ở một mức nhất định.
Tốc độ được tính Kbit/s.
scp –rC -l 400 ./data debian@192.168.1.120:/home/debian/
7. SCP với cổng đặc biệt #
SCP sử dụng chung cổng với dịch vụ SSH nên khi thay đổi port SSH thì scp sẽ phải thay đổi theo. Option “-P” để chọn port. Port mặc định của SSH là 22 nên khi sử dụng port mặc định thì không cần thêm option port. Nếu port SSH được đổi sang 822 thì câu lệnh như sau:
scp –rC –P 822 ./data debian@192.168.1.120:/home/debian/
8. Sử dụng xác thực bằng key
Khi SSH sử dụng xác thực bằng key thì SCP phải sử dụng file xác thực này.
scp –rC -i /usr/src/key_server.pem ./data debian@192.168.1.120:/home/debian/
Các bạn có thể tham khảo thêm các option khi sử dụng câu lệnh scp bằng lệnh:
man scp Thông tin khóa học Linux: tại đây