Các lệnh Linux dành cho thao tác từ xa

Trên hệ thống Linux, các lệnh thao tác từ xa giúp quản trị viên điều khiển và trao đổi dữ liệu giữa các máy chủ một cách hiệu quả. Dưới đây là ba lệnh phổ biến nhất: ssh, scprsync.

1. Lệnh ssh (Secure Shell)

Lệnh ssh cho phép kết nối an toàn đến một máy chủ từ xa thông qua dịch vụ sshd, từ đó bạn có thể điều khiển máy đó như đang ngồi trực tiếp trước thiết bị.

Cú pháp 1: Thực thi lệnh từ xa và tự động thoát

ssh [tùy_chọn] username@hostname 'lệnh_cần_chạy'

Với cú pháp này, bạn sẽ kết nối đến máy chủ từ xa, thực thi lệnh chỉ định, và ngay sau khi hoàn thành sẽ tự động ngắt kết nối.

Ví dụ: Tạo thư mục /ss trên máy chủ từ xa

[root@VM_0_8_centos ~]# ssh root@47.104.219.xxx 'mkdir /ss'
root@47.104.219.xxx's password: 
[root@VM_0_8_centos ~]# 

Cú pháp 2: Đăng nhập vào máy từ xa và làm việc tương tác

ssh [tùy_chọn] username@hostname

Khi không có tham số lệnh, bạn sẽ đăng nhập vào máy chủ từ xa. Để thoát, nhấn tổ hợp phím Ctrl + D hoặc gõ logout.

Ví dụ: Đăng nhập và thoát

[root@VM_0_8_centos /]# ssh root@47.104.219.xxx
The authenticity of host '47.104.219.xxx (47.104.219.xxx)' can't be established.
ECDSA key fingerprint is SHA256:zwAo4XVjLzsh6Nt5f4hYOJpIOSblsdHuLivbQh8Xj/s.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '47.104.219.xxx' (ECDSA) to the list of known hosts.
root@47.104.219.xxx's password: 
Last login: Sun Mar 22 17:50:44 2020 from 47.96.60.xxx

Welcome to Alibaba Cloud Elastic Compute Service !
[root@iZm5e7w3fl4af58g6kpnd2Z ~]#  
[root@iZm5e7w3fl4af58g6kpnd2Z /]# logout
Connection to 47.104.219.xxx closed.
[root@VM_0_8_centos ~]# 

Tùy chọn phổ biến của ssh:

  • -q: Chế độ im lặng, không hiển thị thanh tiến trình hoặc thông báo không cần thiết.

2. Lệnh scp (Secure Copy)

Lệnh scp dùng để sao chép tệp và thư mục giữa các máy tính qua giao thức SSH, đảm bảo an toàn dữ liệu trong quá trình truyền.

Cú pháp cơ bản:

scp [tùy_chọn] nguồn đích

Các tùy chọn thường dùng:

  • -p: Giữ nguyên thời gian sửa đổi, thời gian truy cập và quyền truy cập của tệp gốc.
  • -q: Tắt hiển thị thanh tiến trình truyền tải.
  • -r: Sao chép đệ quy toàn bộ thư mục.

Ví dụ 1: Sao chép từ máy cục bộ lên máy từ xa

# Sao chép tệp file2 vào thư mục /ss trên máy từ xa, giữ nguyên thuộc tính
[root@VM_0_8_centos mm]# scp -pq /mm/file2 root@47.104.219.xxx:/ss

# Sao chép tệp và đổi tên thành file7, nếu đã tồn tại sẽ ghi đè
[root@VM_0_8_centos mm]# scp -pq /mm/file2 root@47.104.219.xxx:/ss/file7

# Sao chép toàn bộ thư mục mm lên máy từ xa
[root@VM_0_8_centos mm]# scp -rpq /mm root@47.104.219.xxx:/ss

Ví dụ 2: Sao chép từ máy từ xa về máy cục bộ

# Tải tệp file2 từ máy từ xa vào thư mục /ss hiện tại
[root@VM_0_8_centos /]# scp -qp root@47.104.219.xxx:/ss/file2 /ss

# Tải tệp file3 và lưu thành file2 (ghi đè nếu có)
[root@VM_0_8_centos ss]# scp -qp root@47.104.219.xxx:/ss/file3 /ss/file2

# Tải cả thư mục /ss từ máy từ xa vào thư mục hiện tại
[root@VM_0_8_centos ss]# scp -rqp root@47.104.219.xxx:/ss /ss/

3. Lệnh rsync (Remote Sync)

rsync là công cụ đồng bộ dữ liệu mạnh mẽ, sử dụng thuật toán delta chỉ truyền phần khác biệt giữa các tệp, giúp tiết kiệm băng thông và tăng tốc độ so với scp. Nó có thể đồng bộ cả cục bộ lẫn từ xa.

Cú pháp đồng bộ cục bộ:

rsync [tùy_chọn] nguồn đích

Các tùy chọn quan trọng:

  • -a hoặc --archive: Chế độ lưu trữ, tương đương với -rtopgDl, giữ nguyên tất cả thuộc tính tệp.
  • -r: Xử lý đệ quy các thư mục con.
  • -t: Giữ nguyên thời gian sửa đổi (mtime) của tệp. Nên dùng tùy chọn này để tránh sai lệch khi đồng bộ.
  • -o: Giữ nguyên chủ sở hữu (chỉ áp dụng với root).
  • -g: Giữ nguyên nhóm sở hữu.
  • -p: Giữ nguyên quyền truy cập (không bao gồm quyền đặc biệt).
  • -D: Kết hợp của --device--specials để sao chép tệp thiết bị và tệp đặc biệt (chỉ root).
  • -l: Nếu tệp là liên kết tượng trưng (symlink), chỉ sao chép bản thân liên kết, không sao chép tệp mà nó trỏ tới.

Ví dụ: Đồng bộ thư mục cục bộ

Sao chép toàn bộ nội dung của thư mục ss/mm vào thư mục ss hiện tại, đồng thời giữ nguyên thuộc tính:

[root@VM_0_8_centos /]# rsync -a ss/mm/* ss/

Lưu ý: rsync chỉ truyền dữ liệu khác nhau (delta) thay vì sao chép toàn bộ như cp -r, giúp quá trình nhanh hơn khi đồng bộ dữ liệu lớn.

Thẻ: ssh scp rsync linux-remote-commands secure-shell

Đăng vào ngày 26 tháng 6 lúc 11:05