Trong CentOS 7, lệnh rcp không còn được cài đặt mặc định mà thay vào đó là scp - một công cụ an toàn hơn để sao chép file giữa các máy.
Cú pháp lệnh scp:
scp [tùy_chọn] [tên_người_dùng@]máy_chủ1:đường_dẫn/tên_tệp1 ... [tên_người_dùng@]máy_chủ2:đường_dẫn/tên_tệp2
scp được sử dụng để sao chép file giữa các máy trong mạng. Nó sử dụng ssh(1) để truyền dữ liệu và xác thực, với cùng mức độ bảo mật như ssh(1). Nếu cần xác thực, scp sẽ yêu cầu nhập mật khẩu.
Tên tệp có thể chứa định dạng tên người dùng và tên máy chủ để chỉ định sao chép đến hoặc từ máy chủ đó. Có thể sử dụng đường dẫn tuyệt đối hoặc tương đối để tránh scp hiểu nhầm tên tệp chứa ":" là chỉ định máy chủ. Cho phép sao chép giữa hai máy chủ từ xa.
(1). Các tùy chọn
-1 Bắt buộc scp sử dụng giao thức 1
-2 Bắt buộc scp sử dụng giao thức 2
-3 Sao chép giữa hai máy chủ từ xa thông qua máy chủ cục bộ. Nếu không có tùy chọn này, dữ liệu sẽ được sao chép trực tiếp giữa hai máy chủ từ xa. Lưu ý: Tùy chọn này sẽ vô hiệu hóa bảng tiến độ.
-4 Bắt buộc scp chỉ sử dụng địa chỉ IPv4
-6 Bắt buộc scp chỉ sử dụng địa chỉ IPv6
-B Chế độ xử lý hàng loạt (ngăn chặn yêu cầu nhập mật khẩu)
-C Kích hoạt nén. Truyền cờ -C đến ssh(1) để kích hoạt nén.
-c cipher Chọn mật mã để mã hóa truyền dữ liệu. Tùy chọn này được truyền trực tiếp đến ssh(1)
-F ssh_config Chỉ định tệp cấu hình ssh thay thế cho mỗi người dùng. Tùy chọn này được truyền trực tiếp đến ssh(1)
-i identity_file Chọn tệp nhận dạng (khóa riêng) để đọc từ xác thực khóa công khai. Tùy chọn này được truyền trực tiếp đến ssh(1)
-l limit Hạn chế băng thông sử dụng, tính bằng kbit/s
-o ssh_option Truyền tùy chọn ssh với định dạng được sử dụng trong ssh_config. Điều này hữu ích để chỉ định các tùy chọn không có cờ dòng lệnh riêng biệt cho scp.
-p Giữ nguyên thời gian sửa đổi, thời gian truy cập và chế độ của tệp gốc
-q Chế độ im lặng. Vô hiệu hóa bảng tiến độ cũng như thông báo và chẩn đoán từ ssh(1)
-r Sao chệp đệm toàn bộ thư mục. Lưu ý: scp tuân theo các liên kết biểu tượng gặp phải trong quá trình duyệt cây
-S program Tên chương trình để kết mã hóa. Chương trình này phải hiểu các tùy chọn ssh
-v Chế độ chi tiết. Lệnh scp và ssh(1) in thông tin gỡ lỗi về tiến trình của chúng. Điều này giúp gỡ lỗi kết nối, xác thực và vấn đề cấu hình.
(2). Ví dụ sử dụng
Chủ yếu là sao chép tệp từ máy chủ từ xa về máy cục bộ, và sao chép tệp từ máy cục bộ đến máy chủ từ xa. Ở đây tôi chuẩn bị một máy cục bộ CentOS7 và một máy chủ từ xa Ubuntu 20.04
- Sao chép tệp từ máy chủ từ xa về máy cục bộ
Chuẩn bị trên máy chủ từ xa Ubuntu 20.04:
[user@ubuntu ~]$ cd /
[user@ubuntu /]$ ls
bin dev home lib64 media mnt opt root selinux sys usr
boot etc lib lost+found misc net proc sbin srv tmp var
[user@ubuntu /]$ mkdir du_lieu
[user@ubuntu /]$ cd du_lieu
[user@ubuntu du_lieu]$ cat>van_ban1.txt<<EOF
>Dòng đầu tiên của văn bản 1.
> Dòng thứ hai của văn bản 1.
> Dòng thứ ba của văn bản 1.
> EOF
[user@ubuntu du_lieu]$ ll
Tổng cộng 4
-rw-r--r--. 1 user user 61 11月 15 10:21 van_ban1.txt
[user@ubuntu du_lieu]$ touch van_ban2
[user@ubuntu du_lieu]$ ll
Tổng cộng 4
-rw-r--r--. 1 user user 61 11月 15 10:21 van_ban1.txt
-rw-r--r--. 1 user user 0 11月 15 10:21 van_ban2
Sao chép từ máy cục bộ CentOS7:
[centos@centos7 ~]$ cd /
[centos@centos7 /]$ ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[centos@centos7 /]$ scp -r user@10.0.0.15:/du_lieu / // Sao chép thư mục từ xa về thư mục gốc cục bộ
The authenticity of host '10.0.0.15 (10.0.0.15)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.15' (ECDSA) to the list of known hosts.
user@10.0.0.15's password:
van_ban2 100% 0 0.0KB/s 00:00
van_ban1.txt 100% 61 43.1KB/s 00:00
[centos@centos7 /]$ ls // Thấy thư mục du_lieu đã được tạo
bin dev home lib64 mnt proc run srv sys usr
boot etc lib media opt root sbin du_lieu tmp var
[centos@centos7 /]$ cd /du_lieu
[centos@centos7 du_lieu]$ ll
Tổng cộng 4
-rw-r--r--. 1 centos centos 61 11月 15 10:23 van_ban1.txt
-rw-r--r--. 1 centos centos 0 11月 15 10:23 van_ban2
[centos@centos7 du_lieu]$ cat van_ban1.txt
Dòng đầu tiên của văn bản 1.
Dòng thứ hai của văn bản 1.
Dòng thứ ba của văn bản 1.
- Sao chép tệp từ máy cục bộ đến máy chủ từ xa
Chuẩn bị trên máy cục bộ CentOS7:
[centos@centos7 ~]$ cd /du_lieu
[centos@centos7 du_lieu]$ ls
van_ban1.txt van_ban2
[centos@centos7 du_lieu]$ cat>van_ban3.txt<<EOF
> Đây là tệp từ máy CentOS7.
> EOF
[centos@centos7 du_lieu]$ scp van_ban3.txt user@10.0.0.15:/du_lieu/
user@10.0.0.15's password:
van_ban3.txt 100% 30 28.6KB/s 00:00
Kiểm tra trên máy chủ từ xa Ubuntu 20.04:
[user@ubuntu ~]$ cd /du_lieu
[user@ubuntu du_lieu]$ ll
Tổng cộng 8
-rw-r--r--. 1 user user 61 11月 15 10:21 van_ban1.txt
-rw-r--r--. 1 user user 0 11月 15 10:21 van_ban2
-rw-r--r--. 1 user user 30 11月 15 10:25 van_ban3.txt
[user@ubuntu du_lieu]$ cat van_ban3.txt
Đây là tệp từ máy CentOS7.
Lưu ý 1: Trong hai ví dụ trên, tôi đã sao chép một thư mục và một tệp. Khi sao chép thư mục, hãy nhớ sử dụng tùy chọn -r.
Lưu ý 2: Khi sử dụng lần đầu, hãy đảm bảo ssh từ xa có thể hoạt động bình thường.