NỘI DUNG:
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
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
Nếu bạn cần hỗ trợ hãy để lại bình luận bên dưới. Hoặc đặt bất kỳ các câu hỏi tại diễn đàn để được hỗ trợ