Lệnh sync trong linux
Rsync là gì?Rsync ( Remote Sync) là một lệnh giúp khả năng truyền file gia tăng nhanh từ máy chủ này sang máy chủ khác. Trong bài viết này, mình sẽ hướng dẫn bạn sử dụng lệnh Rsync cho các trường hợp sử dụng khác nhau. Rsync chỉ sao chép sự khác biệt của các tệp đã thực sự thay đổi, được nén thông qua ssh. Nó rất phổ biến và được sử dụng rộng rãi để di chuyển các tệp hoặc thư mục trên Linux/Unix với nhau. Các tính năng quan trọng của lệnh rsync
Cài đặt RsyncCác Option
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 Centosyum install -y rsync Với Ubuntuapt 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] # Copy file/folder từ 1 remote Server tới server hiện tại rsync [-options] VD:rsync -azvh /home/admin/admin_backups/admin.root.admin.tar.gz :/home/file_backup // Mặc định port 22 rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/ // Thêm vào vào 1. Sync a File on a Local ComputerLệnh sau sẽ đồng bộ hóa một tệp trên một máy cục bộ từ vị trí này sang vị trí khác. [root@localhost]# rsync -zvh test.txt /home/test1/ test.txt sent 87.76M bytes received 31 bytes 35.11M bytes/sec total size is 87.74M speedup is 1.00 Ở đây trong ví dụ này, một tệp thử nghiệm .txt cần được sao chép hoặc đồng bộ vào thư mục /home/test1/ Nếu thư mục đích không tồn tại thì rsync sẽ tự động tạo một thư mục cho đích. 2. Rsync thư mục từ Local Server đến Server RemoteLệnh này cho phép bạn di chuyển một thư mục từ máy chủ này sang máy chủ khác [root@localhost]$ rsync -avzh public_html/ :/home/ 's password: sending incremental file list public_html/ public_html/cgi-bin public_html/index.php sent 72 bytes received 30 bytes 140.80 bytes/sec total size is 1M speedup is 1.00 3. Rsync thư mục từ xa với máy server localLệnh này sẽ giúp bạn đồng bộ một thư mục từ xa đến một thư mục cục bộ. Ở đây trong ví dụ này, một thư mục /home/public_html trên máy chủ từ xa đang được sao chép trong server local của bạn trong /home/test. [root@localhost]# rsync -avzh :/home/public_html /home/test/ 's password: receiving incremental file list created directory /home/test public_html/ public_html/cgi_bin public_html/cgi_bin/index.php sent 91 bytes received 4.99M bytes 322.16K bytes/sec total size is 4.99M speedup is 1.00 4. Rsync thông qua SSHBằng cách sử dụng giao thức SSH, bạn có thể chuyển dữ liệu trong một kết nối được bảo mật bằng mã hóa. Bạn cần cung cấp mật khẩu root để kết nối, sử dụng tùy chọn SSH sẽ gửi thông tin đăng nhập của bạn theo cách được mã hóa để mật khẩu của bạn được an toàn. rsync -avzh kblinux.zip -e 'ssh -p 2020' /home/ 5. Rsync file từ server local đến server remote qua SSH[root@localhost]# rsync -avzhe ssh public_html/ :/home 's password: sending incremental file list public_html/ sent 16.56M bytes received 45 bytes 1.28M bytes/sec total size is 2M speedup is 1.10 6. Rsync file và thư mục từ server remote đến server local với các optionTrong ví dụ dưới đây, lệnh rsync sẽ chỉ bao gồm các tập tin .php và loại trừ mọi thứ trong thư mục đó. [root@localhost]# rsync -avzeh ssh --include '*php' --exclude '*' :/home/public_html /root/public_html receiving incremental files list test.php test1.php 7. Rsync file và thư mục từ server local đến server remote với option –excludeTrong ví dụ dưới đây, lệnh rsync sẽ chỉ loại trừ các tệp .txt và bao gồm mọi thứ trong thư mục đó. [root@localhost]# rsync -avze ssh --exclude '*txt' :/home/public_html /root/public_html receiving incremental files list test.html test1.php 8. Rsync file và thư mục từ server local đến server remote với option –deleteTùy chọn –delete được sử dụng khi bạn muốn đồng bộ hóa dữ liệu từ máy cục bộ và một số tệp không có sẵn trên nguồn nhưng có mặt tại đích. Tùy chọn –delete lần này sẽ giúp bạn xóa các tệp không sử dụng khỏi đích [root@localhost]# rsync -avzP --delete :/home/test/public_html root/public_html 's password: receiving incremental file list deleting public_html/test/file1 deleting public_html/test/file2 deleting public_html/test/ public_html/ sent 28 bytes received 137 bytes 36.67 bytes/sec total size is 2M speedup is 2.00 9. Rsync file và thư mục từ server local đến server remote hiển thị progressVí dụ dưới đây là đồng bộ tệp & thư mục từ máy chủ cục bộ sang máy chủ từ xa với tốc độ và thời gian truyền tệp. [root@tecmint]# rsync -avzeh ssh --progress /home/pkgs :/root/pkgs 's password: sending incremental file list pkgs/ pkgs/httpd-2.2.3-82.el5.centos.i386.rpm 1.02M 100% 2.72MB/s 0:00:00 (xfer#1, to-check=3/5) pkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm 99.04K 100% 241.19kB/s 0:00:00 (xfer#2, to-check=2/5) sent 4.99M bytes received 92 bytes 475.56K bytes/sec total size is 4.99M speedup is 1.00 10. Giớ hạn kích thước RsyncBạn có thể chỉ định giới hạn kích thước tệp MAX trong khi đồng bộ hóa. Vì vậy, nó sẽ để lại lớn như các tập tin zip và tar. Nó có thể được thực hiện bằng cách thêm max-size = vào lệnh rsync. Trong ví dụ này, nó sẽ đồng bộ các tệp 100k cũng ít hơn 100k tệp. [root@localhost]# rsync -avze ssh --max-size = '100k' :/home/public_html /root/public_html 11. Tự động xoá nguồn sau khi Rsync hoàn tấtLệnh này sẽ tự động xoá nguồn sau khi rsync hoàn tất với option ‘–remove-source-files‘ [root@localhost]# rsync --remove-source-files -zvh backup.tar /home/backups/ backup.tar sent 14.71M bytes received 31 bytes 4.20M bytes/sec total size is 16.18M speedup is 1.10 [root@localhost]# ll backup.tar ls: backup.tar: No such file or directory 12. Đặt giới hạn Bandwidth Limit và Transfer FileBạn có thể đặt giới hạn băng thông trong khi truyền dữ liệu từ máy chủ này sang máy chủ khác với sự trợ giúp của tùy chọn ‘ – bwlimit’. Tùy chọn này giúp chúng tôi giới hạn băng thông I / O. [root@localhost]# rsync --bwlimit=100 -avzhe ssh /home/public_html :/root/public_html 's password: sending incremental file list sent 508 bytes received 18 bytes 81.09 bytes/sec total size is 43M speedup is 145347.05 13. Rsync với DryNếu bạn chưa quen với rsync và không biết chính xác đầu ra là gì nếu bạn chạy bất kỳ lệnh rsync nào, thì lệnh này chắc chắn sẽ giúp bạn kiểm tra đầu ra trước. Các lệnh rsync thực sự có thể làm rối tung mọi thứ trong thư mục đích của bạn. Tùy chọn này sẽ không thực hiện bất kỳ thay đổi nào chỉ thực hiện một lệnh dry và hiển thị đầu ra của lệnh. Lệnh rsync này giúp bạn kiểm tra đầu ra trước khi bạn thực thi trong môi trường thực. root@localhost]# rsync --dry-run --remove-source-files -zvh backup.tar /home/pu backup.tar sent 35 bytes received 15 bytes 100.00 bytes/sec total size is 16.18M speedup is 323584.00 (DRY RUN) Khi bạn chạy các lệnh rsync, nó có thể yêu cầu mật khẩu trong khi thực hiện rsync từ máy chủ cục bộ đến máy chủ từ xa. Nếu bạn muốn chạy rsync tự động mà không cần nhắc mật khẩu, bạn phải tạo và sử dụng xác thực dựa trên khóa SSH. |