Khi sử dụng hệ điều hành Linux thì chỉ sử dụng lệnh command để thực hiện các việc như: copy, cut, delete… các file hoặc thư mục trên cùng một server. Vậy để copy file giữa 2 server Linux thì có thể sử dụng các phần mềm hổ trợ các giao thức SFTP, FTP,.. Show Ngoài việc sử dụng phần mềm hổ trợ thì có thể dùng lệnh trực tiếp trên server để copy file. Các câu lệnh thường được sử dụng là: sftp, rsync, scp, sshfs,… Bài viết này sẽ hướng dẫn câu lệnh cơ bản của 3 lệnh thường xuyên sử dụng là: scp, rsync, sftp 1. Lệnh “scp”SCP là viết tắt của “Secure Copy” được sử dụng để sao chép thư mục và file giữa các server Linux một cách an toàn. Lệnh SCP cho phép sao chép giữa các server nội bộ và các server public. Nó sử dụng cùng một xác thực và bảo mật như được sử dụng trong giao thức Secure Shell (SSH). SCP được biết đến với tính đơn giản, bảo mật và tính sẵn sàng. Cấu trúc câu lệnh như sau:scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 … [[user@]host2:]file2 Các tùy chọn tham số cơ bản như sau:
Ví dụ: Sao chép một file root@debian:~# scp –P 22 /usr/src/tel4vn/config.txt [email protected]:/home/centos/ Sao chép thư mục root@debian:~# scp –P 22 -r /usr/src/tel4vn [email protected]:/home/centos/ 2. Lệnh “rsync”Rsync (Remote Sync) là một công cụ dùng để sao chép và đồng bộ file, thư mục được dùng rất phổ biến. Rsync cho phép sao chép và giữ nguyên các thông số của file, thư mục đó như: Symbolic links, Permissions, TimeStamp, Owner và Group. Rsync nhanh hơn scp vì nó chỉ đồng bộ dữ những dữ liệu thay đổi chứ không sao chép những dữ liệu đã có. Sử dụng phương pháp nén và giải nén dữ liệu nên giảm được băng thông của server. Lệnh rsync thường được dùng chung với crontab để đồng bộ dữ liệu vào một thời điểm trong ngày. Cấu trúc câu lệnh:rsync [OPTION]… SRC [SRC]… DEST Các tùy chọn OPTION cơ bản như sau:
Ví dụ: Copy file giữa 2 server root@debian:~# rsync -avz /usr/src/tel4vn/phong1.tar.gz [email protected]:/home/centos/ Copy thư mục root@debian:~# rsync -avzh /usr/src/tel4vn [email protected]:/home/centos/ 3. Lệnh “sftp”File Transfer Protocol (FTP) là giao thức được sử dụng rộng rãi để truyền tệp hoặc dữ liệu từ xa ở định dạng không được mã hóa, đây là giao thức không an toàn vì dữ liệu không được mã hóa trong quá trình truyền tải. SFTP ( Secure File Transfer Protocol ) chạy qua giao thức SSH trên cổng tiêu chuẩn 22 theo mặc định để thiết lập kết nối an toàn. SFTP đã được tích hợp vào nhiều công cụ GUI ( FileZilla, WinSCP, FireFTP,…) Đồng bộ file dữ liệu là nhu cầu tất yếu trong những hệ thống load balacing hay replicate hiện nay. Có rất nhiều tool để làm việc này nhưng Rsync là một tool kinh điển được nhiều system admin dùng từ rất lâu nay. 1Hosting xin giới thiệu cách sử dụng Rsync để đồng bộ file giữa 2 server hay 2 VPS Linux, thậm chí là VPS Linux với VPS Windows (đã cài Rsync với Cygwin) thông qua giao thức SSH để nâng cao tính bảo mật của dòng dữ liệu! Bước 1: Trên server BACKUP tạo: useradd -d /backup/my-rsync -m -s /bin/bash my-rsync Bước 2: Trên server gốc tạo các khóa ssh-keygen -t dsa -b 1024 -f /rsync/my-rsync-key Dòng hiện đòi nhập password, lưu ý tuyệt đối ko gõ gì ngoài Enter sau đó copy file .pub sang server Backup scp /rsync/my-rsync-key.pub my-rsync@server-Backup:/home/my-rsync/ Bước 3: Quay lại server Backup, chuyển sang user my-rsync và: cd ~/.ssh touch authorized_keys chmod 600 authorized_keys cat my-rsync-key.pub >> authorized_keys Bước 4: Trở lại server gốc tạo 1 scripts rsync.sh như sau: #!/bin/sh rsync -avz /home/my-folder/* -e "ssh -i /rsync/my-rsync-key" my-rsync@server-Backup:/backup/my-rsync/my-folder-backup và đưa nó vào crontab để đồng bộ lúc 1h10′ sáng hàng ngày: 10 1 * * * (sh /my-scripts/rsync.sh) Như vậy với 4 bước trên, ta đã có thể đồng bộ dữ liệu giữa 2 server bất kỳ với nhau, tất nhiên là mới chỉ 1 chiều, còn đồng bộ 2 chiều hay còn gọi là bidirection sync, 1Hosting sẽ giới thiệu ở 1 post khác. Hiện tại tất cả các gói VPS của 1Hosting, kể cả các gói vps giá rẻ đều có sẵn tính năng đồng bộ này. Người dùng chỉ cần trỏ tới địa chỉ server mong muốn là sẽ có dữ liệu backup an toàn. |