Sử dụng rsync để di chuyển đồng bộ dữ liệu từ máy tính lên server

Ở bài viết trước mình đã hướng dẫn cách tự deploy code lên production server bằng cách sử dụng git, hôm nay mình sẽ tiếp tục chủ đề này nhưng lần này mình sẽ không sử dụng git nữa, bắt đầu nha các bác.

Trên nền tảng Linux có hỗ trợ chúng ta lệnh rsync giúp chúng ta có thể di chuyển đồng bộ dữ liệu từ máy tính cá nhân lên bất cứ đâu. Ví dụ bạn muốn copy nội dung của thư mục này sang thư mục khác trên cùng máy tính, hoặc từ máy tính cá nhân sang máy tính cá nhân khác hoặc lên server tất cả việc đó đều làm được chỉ với một dòng lệnh duy nhất.

Cái mà mình cảm thấy thích dùng lệnh này là tốc độ sử lý rất nhanh và đặc biệt các bác có thể đồng bộ lên server thông qua ssh. Mình làm một dự án khá lớn, cả bộ source khoảng hơn 30k files mà đồng bộ một phát trong vòng chưa tới 2s, không biết máy các bác sao chứ máy mình chạy nhanh phết, cũng có thể do cái ổ SSD 128 mua 1 củ rưỡi các bác ạ, đùa thế chứ xong bài viết này các bác test thử xem tốc độ như thế nào nhé.

Những đặc điểm của rsync là:

– các bác có thể copy file và folder mà vẫn dữ nguyên các thông số của chúng như, phân quyền, group, timestamp …

– tiếp kiệm băng thông, do trong quá trinh gửi đi hệ thống sẽ tự động nén dữ liệu

– không cần chạy dưới quyền root

Đồng bộ dữ liệu trên máy tính

rsync [flags] [from path] [to path]

flag là options cho quá trình đồng bộ như:

– v: đồng bộ và hiển thị trạng thái kết quả

– r: đồng bộ nhưng không dữ thông số của file, folder

– a: đồng bộ nhưng cho phép dữ nguyên các thông số của file, folder

– ngoài ra còn một số flag khác nhưng mình ít khi dùng đến, để xem hướng dẫn thêm về lệnh rsync thì các bạn gõ lệnh man rsync nó sẽ hiển thị chi tiết hơn, các bác có thể kết hợp nhiều flag cùng lúc cũng được nhé.

Ví dụ:

rsync -r /home/project/* /home/copy-project

Lệnh trên có nghĩa là mình sẽ copy toàn bộ file từ thư mục /home/project/ sang /home/copy-project.

Đồng bộ dữ liệu lên server

rsync [flags] [local path] -e 'ssh -p [port]' [user]@[remote server]:[remote path]

Ở câu lệnh trên các bác chỉ cần thay đường dẫn và các thông số của server là được, như là [port] [user] [remote server] [remote path]

Ví dụ:

rsync -azh /local/path/file -e 'ssh -p 22334' user@host.com:/remote/path/file

Chúc các bác thành công!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Thông tin liên hệ

    • 1

      Step 1

    • 2

      Step 2

    • 3

      Step 3

    1/3

    Step 1

    This will close in 0 seconds

    <div class="content-form-widget">
    <p style="color: #003DA5;">Nhận Báo Giá</p>
    <p style="font-size: 87.5%">InDMP sẽ trả lời mail của bạn trong thời gian sớm nhất</p>
    </div>

      This will close in 20 seconds