Lệnh sync trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh sync của Linux và các ứng dụng thực tế của nó để quản lý dữ liệu hệ thống tệp. Lệnh sync được sử dụng để đồng bộ hóa dữ liệu giữa bộ nhớ và các thiết bị lưu trữ, đảm bảo rằng tất cả các sửa đổi được lưu trong bộ đệm được ghi vào phương tiện lưu trữ cơ bản. Chúng ta sẽ học cách sử dụng lệnh sync để đồng bộ hóa dữ liệu hệ thống tệp và xác minh tính hiệu quả của nó. Lab này được thiết kế để giúp bạn hiểu tầm quan trọng của lệnh sync trong việc duy trì tính toàn vẹn và độ tin cậy của dữ liệu hệ thống tệp của bạn.

Tìm hiểu Mục đích của Lệnh sync

Trong bước này, chúng ta sẽ khám phá mục đích của lệnh sync trong Linux. Lệnh sync được sử dụng để đồng bộ hóa dữ liệu giữa bộ nhớ và các thiết bị lưu trữ, đảm bảo rằng tất cả các sửa đổi được lưu trong bộ đệm được ghi vào phương tiện lưu trữ cơ bản.

Khi bạn thực hiện thay đổi đối với các tệp hoặc thư mục, hệ điều hành thường lưu trữ các thay đổi này trong bộ nhớ trước khi ghi chúng vào đĩa. Điều này có thể cải thiện hiệu suất, nhưng nó cũng có nghĩa là dữ liệu trong bộ nhớ có thể không phản ánh ngay lập tức trạng thái thực tế của thiết bị lưu trữ. Lệnh sync buộc hệ điều hành ghi tất cả các sửa đổi được lưu trong bộ đệm vào đĩa, đảm bảo rằng dữ liệu trên đĩa được cập nhật.

Hãy bắt đầu bằng cách chạy lệnh sync trong terminal:

sudo sync

Ví dụ đầu ra:

No output

Như bạn có thể thấy, lệnh sync không tạo ra bất kỳ đầu ra nào khi được thực thi thành công. Điều này là do nó chỉ đơn giản thực hiện thao tác đồng bộ hóa mà không hiển thị bất kỳ thông báo nào.

Lệnh sync thường được sử dụng trong nhiều tình huống khác nhau, chẳng hạn như:

  1. Trước khi tắt hoặc khởi động lại hệ thống, để đảm bảo rằng tất cả dữ liệu được ghi an toàn vào đĩa.
  2. Trước khi hủy gắn kết một hệ thống tệp, để ngăn ngừa mất dữ liệu.
  3. Trước khi thực hiện thao tác sao lưu hoặc snapshot, để nắm bắt trạng thái hiện tại của hệ thống tệp.
  4. Khi xử lý dữ liệu quan trọng cần được ghi ngay lập tức vào đĩa, thay vì dựa vào bộ đệm của hệ điều hành.

Bằng cách hiểu mục đích của lệnh sync, bạn có thể đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu hệ thống tệp của bạn trong nhiều tình huống khác nhau.

Đồng bộ hóa Dữ liệu Hệ thống Tệp bằng Lệnh sync

Trong bước này, chúng ta sẽ học cách sử dụng lệnh sync để đồng bộ hóa dữ liệu hệ thống tệp.

Đầu tiên, hãy tạo một tệp mới trong thư mục ~/project:

touch ~/project/test_file.txt

Bây giờ, hãy thực hiện một số thay đổi đối với tệp:

echo "This is a test file." > ~/project/test_file.txt

Để xác minh rằng các thay đổi chỉ ở trong bộ nhớ và chưa được ghi vào đĩa, chúng ta có thể sử dụng lệnh ls -l để kiểm tra thời gian sửa đổi của tệp:

ls -l ~/project/test_file.txt

Ví dụ đầu ra:

-rw-r--r-- 1 labex labex 20 Apr 24 12:34 ~/project/test_file.txt

Lưu ý thời gian sửa đổi, có thể không phản ánh những thay đổi gần đây mà chúng ta đã thực hiện.

Bây giờ, hãy sử dụng lệnh sync để đồng bộ hóa dữ liệu hệ thống tệp:

sudo sync

Sau khi chạy lệnh sync, hãy kiểm tra lại thời gian sửa đổi của tệp:

ls -l ~/project/test_file.txt

Ví dụ đầu ra:

-rw-r--r-- 1 labex labex 20 Apr 24 12:35 ~/project/test_file.txt

Bạn có thể thấy rằng thời gian sửa đổi đã được cập nhật, cho biết rằng các thay đổi đã được ghi vào đĩa.

Lệnh sync đảm bảo rằng tất cả các sửa đổi được lưu trong bộ đệm được đẩy xuống phương tiện lưu trữ cơ bản, làm cho dữ liệu hệ thống tệp nhất quán với trạng thái trong bộ nhớ.

Xác minh Tính hiệu quả của Lệnh sync

Trong bước cuối cùng này, chúng ta sẽ xác minh tính hiệu quả của lệnh sync bằng cách mô phỏng sự cố hệ thống và quan sát hành vi của hệ thống tệp.

Đầu tiên, hãy tạo một tệp mới trong thư mục ~/project:

touch ~/project/important_data.txt

Bây giờ, hãy thêm một số nội dung vào tệp:

echo "This is important data that needs to be preserved." > ~/project/important_data.txt

Để mô phỏng sự cố hệ thống, chúng ta có thể sử dụng lệnh echo để kích hoạt kernel panic, điều này sẽ buộc hệ thống khởi động lại:

sudo sh -c "echo c > /proc/sysrq-trigger"

Sau khi hệ thống khởi động lại, hãy kiểm tra nội dung của tệp important_data.txt:

cat ~/project/important_data.txt

Ví dụ đầu ra:

This is important data that needs to be preserved.

Như bạn có thể thấy, nội dung của tệp đã được giữ nguyên, ngay cả sau khi sự cố hệ thống được mô phỏng. Điều này là do lệnh sync mà chúng ta đã thực thi trong bước trước đảm bảo rằng dữ liệu hệ thống tệp đã được đồng bộ hóa với phương tiện lưu trữ cơ bản trước khi hệ thống ngừng hoạt động.

Nếu chúng ta không sử dụng lệnh sync, sẽ có nguy cơ mất dữ liệu hoặc hỏng dữ liệu, vì những thay đổi trong bộ nhớ có thể chưa được ghi vào đĩa trước khi hệ thống gặp sự cố.

Bằng cách xác minh tính hiệu quả của lệnh sync, bạn có thể đảm bảo rằng dữ liệu hệ thống tệp của bạn được đồng bộ hóa đúng cách và được bảo vệ khỏi các lỗi hệ thống bất ngờ.

Tóm tắt

Trong lab này, trước tiên chúng ta đã khám phá mục đích của lệnh sync trong Linux, lệnh này được sử dụng để đồng bộ hóa dữ liệu giữa bộ nhớ và các thiết bị lưu trữ. Chúng ta đã học được rằng lệnh sync buộc hệ điều hành ghi tất cả các sửa đổi được lưu trong bộ đệm vào đĩa, đảm bảo rằng dữ liệu trên đĩa được cập nhật. Điều này rất quan trọng trong nhiều tình huống khác nhau, chẳng hạn như trước khi tắt hoặc khởi động lại hệ thống, hủy gắn kết một hệ thống tệp hoặc thực hiện thao tác sao lưu hoặc snapshot.

Tiếp theo, chúng ta đã trình bày cách sử dụng lệnh sync để đồng bộ hóa dữ liệu hệ thống tệp. Chúng ta đã tạo một tệp mới, thực hiện các thay đổi đối với nó, và sau đó sử dụng lệnh sync để đảm bảo rằng các thay đổi đã được ghi vào đĩa. Điều này giúp duy trì tính toàn vẹn và độ tin cậy của dữ liệu hệ thống tệp.

400+ câu lệnh phổ biến trong Linux