Hướng dẫn copy file giữa 2 server Linux bằng command

598
AZDIGI Hosting Số 1 Việt Nam

Trong quá trình vận hành server/vps, sẽ có đôi lúc bạn cần copy/đồng bộ các file giữa 2 server với nhau, thì bằng cách nào để thực hiện, bạn không thể download rồi upload sẽ mất rất nhiều thời gian cho việc đó.

Ở Linux bạn sẽ thao tác nhanh hơn bằng SCP và RSYN, mới bạn cùng theo dõi.

1. Sử dụng lệnh scp

scp [option] <source_path> <your_user>@<destination_server>:<destination_path>

Trong đó:

[option] là tham số của lệnh scp, VD: -r để copy 1 thư mục
<source_path> là file/thư mục trên Server nguồn
<your_user> là 1 user trên Server đích
<destination_server> là địa chỉ IP hoặc domain name của Server đích
<destination_path> là đường dẫn của file/folder trên Server đích mà ta copy tới.
<-P> Port: Nếu Port thay đổi bạn thêm option này vào

VD:

  • Lệnh này sẽ sử dụng port mặc định là 22
scp admin.root.admin.tar.gz root@103.221.220.105:/home/file_backup
  • Nếu khác Port 22 ban cần thêm option -P vào.

Lệnh này mình di chuyển toàn bộ thư mục public_html với port 2222 đi nên có thêm option r

scp -rP 2222 /home/anhquan/public_html/ dotrungq@45.252.248.51:/home/dotrungq/wordpress.dotrungquan.info

Chú thích:

Mình đang đứng ở VPS có IP là 103.221.220.111 , mình thực hiện Copy file admin.root.admin.tar.gz đến VPS có IP là 103.221.220.105

  • scp : cú pháp
  • admin.root.admin.tar.gz : file cần copy
  • root@103.221.220.105:/home/file_backup: IP và thực mục VPS cần copy đến

Hướng dẫn copy các file giữa 2 vps với nhau

2. Sử dụng lệnh Rsync

Các Option

  • -v: hiển thị trạng thái kết quả
  • -r: copy dữ liệu recursively, nhưng không đảm bảo thông số của file và thư mục
  • -a: cho phép copy dữ liệu recursively, đồng thời giữ nguyên được tất cả các thông số của thư mục và file
  • -z: nén dữ liệu khi transfer, tiết kiệm băng thông tuy nhiên tốn thêm một chút thời gian
  • -h: human-readable, output kết quả dễ đọc
  • –delete: xóa dữ liệu ở destination nếu source không tồn tại dữ liệu đó.
  • –exclude: loại trừ ra những dữ liệu không muốn truyền đi, nếu bạn cần loại ra nhiều file hoặc folder ở nhiều đường dẫn khác nhau thì mỗi cái bạn phải thêm –exclude tương ứng.
  • -p: Nếu port bạn đã thay đổi

Nếu phiên bản HDH Linux/Unix của bạn chưa có command này thì hãy sử dụng lệnh sau để cài đặt:

Với Centos

yum install -y rsync

Với Ubuntu

apt install -y rsync

Cú pháp thực hiện

# copy file/folder từ server hiện tại tới 1 remote server
rsync [-options] <source_path> <your_user>@<destination_server>:<destination_path>
# Copy file/folder từ 1 remote Server tới server hiện tại
rsync [-options] <your_user>@<source_server>:<source_path> <destination_path>
# rsync sử dụng ssh key và port
rsync -avhP -e "ssh -i /Users/quan/.ssh/quan.key -p 2020" wordpress.zip root@103.220.220.220:/home/backup

Ví dụ thực tế: rsync -avhP -e "ssh -i /Users/quan/.ssh/quan.key -p 2020" wordpress.zip root@103.220.220.220:/home/backup

VD:

rsync -azvh /home/admin/admin_backups/admin.root.admin.tar.gz root@103.221.220.105:/home/file_backup
rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/

Chú thích:

Mình đang đứng ở VPS có IP là 103.221.220.111 , mình thực hiện rsync file admin.root.admin.tar.gz đến VPS có IP là 103.221.220.105

/home/admin/admin_backups/admin.root.admin.tar.gz: Đường dẫn đến file

root@103.221.220.105:/home/file_backup : IP và thư mục của VPS cần rsync đến

Hướng dẫn copy các file giữa 2 vps với nhau

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments