Cách sử dụng lệnh watch trong Linux kèm ví dụ chi tiết

watch là một lệnh trong Linux cho phép theo dõi kết quả của một lệnh khác theo chu kỳ định kỳ, rất hữu ích khi cần giám sát trạng thái hệ thống hoặc tiến trình. Trong bài viết này, bạn sẽ hiểu rõ lệnh watch là gì, cú pháp sử dụng và cách áp dụng hiệu quả thông qua 6 ví dụ thực tế như: chạy định kỳ mỗi 5 giây, tô sáng thay đổi, tự động thoát khi có sự khác biệt, và nhiều hơn nữa. Cuối cùng là phần FAQ giải đáp các câu hỏi thường gặp giúp bạn hiểu sâu hơn về công cụ lệnh này.

Điểm chính cần nắm

  • Lệnh watch Linux là gì?: Giới thiệu khái quát về lệnh watch, công dụng và cách thức hoạt động trong Linux.
  • Cú pháp lệnh watch: Trình bày cấu trúc cú pháp và các tùy chọn phổ biến khi sử dụng watch.
  • 6 ví dụ sử dụng lệnh watch trong Linux: Tổng hợp các tình huống thực tế khi dùng watch, giúp bạn áp dụng linh hoạt hơn.
  • FAQ: Giải đáp các câu hỏi thường gặp giúp hiểu sâu hơn về watch trong Linux.

Lệnh watch Linux là gì?

Lệnh watch trong Linux là một công cụ dòng lệnh dùng để chạy lặp đi lặp lại một lệnh theo khoảng thời gian cố định và hiển thị kết quả cập nhật liên tục trong terminal. Đây là cách đơn giản để giám sát sự thay đổi của đầu ra một lệnh theo thời gian thực, mà không cần viết script hay dùng cron.

Lệnh watch trong Linux là một công cụ dòng lệnh dùng để chạy lặp đi lặp lại một lệnh theo khoảng thời gian cố định
Lệnh watch trong Linux là một công cụ dòng lệnh dùng để chạy lặp đi lặp lại một lệnh theo khoảng thời gian cố định

Cú pháp lệnh watch

watch [tùy chọn] [lệnh]

Trong đó:

  • [lệnh]: Lệnh bạn muốn chạy lặp đi lặp lại.
  • [tùy chọn]: Thêm để điều chỉnh hành vi của watch.

Tùy chọn phổ biến của lệnh watch

Tùy chọnMô tả
-n [số giây]Đặt khoảng thời gian giữa các lần chạy lệnh (mặc định là 2 giây)
-dTô sáng sự thay đổi trong đầu ra
-gThoát khi đầu ra thay đổi
-tẨn dòng tiêu đề của watch
-bPhát âm thanh nếu lệnh trả về lỗi (cần beep)
-eThoát nếu lệnh trả về lỗi
-cHiển thị màu nếu đầu ra có mã màu ANSI
-xThực thi lệnh trực tiếp qua exec (ít cần trích dẫn)
Một số tùy chọn phổ biến lệnh watch trong Linux

Chạy lệnh theo chu kỳ 5 giây

Mặc định, watch cập nhật đầu ra mỗi 2 giây. Tuy nhiên, bạn có thể thay đổi khoảng thời gian bằng tùy chọn -n. Ví dụ, để chạy lệnh date sau mỗi 5 giây:

watch -n 5 date

Lệnh này hiển thị thời gian hệ thống và cập nhật lại định kỳ, giúp bạn theo dõi đồng hồ theo thời gian thực.

Chạy lệnh theo chu kỳ 5 giây
Chạy lệnh theo chu kỳ 5 giây

Tô sáng sự thay đổi giữa các lần cập nhật

Khi chỉ cần biết có sự thay đổi xảy ra, bạn có thể dùng tùy chọn -g. watch sẽ tự động thoát khi đầu ra của lệnh thay đổi.

Ví dụ:

watch -g ls

Nếu có tập tin mới được tạo, xóa hoặc đổi tên trong thư mục hiện tại, watch sẽ dừng ngay lập tức. Cách này rất tiện khi bạn đang chờ một hành động xảy ra mà không muốn phải nhìn chằm chằm vào terminal.

Tô sáng sự thay đổi giữa các lần cập nhật
Tô sáng sự thay đổi giữa các lần cập nhật

Thoát khi có sự thay đổi trong giá trị output

Nếu bạn muốn dễ dàng nhận biết điều gì đã thay đổi giữa các lần chạy lệnh, hãy thêm tùy chọn -d. Watch sẽ tô sáng những phần khác biệt so với lần hiển thị trước đó. Ví dụ theo dõi bộ nhớ hệ thống:

watch -d free -m

Những thay đổi trong bộ nhớ khả dụng, cache hay swap sẽ được đánh dấu rõ ràng.

Thoát khi có sự thay đổi trong giá trị output
Thoát khi có sự thay đổi trong giá trị output

Ẩn tiêu đề trên cùng

Thông thường, watch sẽ hiển thị một dòng tiêu đề bao gồm thời gian, lệnh đang chạy và khoảng cách giữa các lần cập nhật. Nếu bạn muốn giao diện đơn giản hơn, hãy dùng tùy chọn -t:

watch -t date

Lệnh này sẽ hiển thị mỗi dòng đầu ra mà không kèm theo tiêu đề ở phía trên.

Ẩn tiêu đề trên cùng
Ẩn tiêu đề trên cùng

Cảnh báo âm thanh khi bị lỗi

Trong một số tình huống, bạn muốn biết ngay nếu lệnh gặp lỗi. Tùy chọn -b sẽ phát âm thanh cảnh báo nếu lệnh trả về mã lỗi khác 0.

watch -b some_command

iconLưu ý

Để tính năng này hoạt động, bạn cần cài gói beep

sudo apt install beep
Cảnh báo âm thanh khi bị lỗi
Cảnh báo âm thanh khi bị lỗi

Dùng lệnh phức tạp

Bạn hoàn toàn có thể dùng watch với các lệnh dài, có nhiều đối số hoặc được nối qua pipeline. Chỉ cần đặt toàn bộ lệnh trong dấu nháy kép hoặc dùng dấu \ để xuống dòng.

Ví dụ:

watch -n 2 "ls -lh /var/log | grep error"

Hoặc:

watch -n 5 \
'echo "Đây là ví dụ với lệnh phức tạp"'
Dùng lệnh phức tạp
Dùng lệnh phức tạp

Tùy chọn -x cũng có thể giúp giảm nhu cầu dùng dấu nháy trong một số trường hợp, vì lệnh sẽ được truyền trực tiếp cho exec.

Vietnix – Giải pháp VPS hiệu năng cao cho mọi quy mô triển khai

Khi bạn sử dụng các công cụ như watch trong Linux để theo dõi tình trạng hệ thống theo thời gian thực, yếu tố quan trọng nhất vẫn là hiệu suất ổn định và tài nguyên đủ mạnh để xử lý liên tục. Vietnix cung cấp dịch vụ lưu trữ chất lượng VPS như VPS NVMe, VPS AMD, VPS Giá rẻ hay VPS SSD, đáp ứng linh hoạt từ nhu cầu vận hành website, ứng dụng đến các tác vụ chuyên sâu như xử lý đồ họa, giả lập hay tối ưu chi phí. Tất cả đều được xây dựng trên hạ tầng mạnh mẽ, đi kèm ổ cứng tốc độ cao và hỗ trợ kỹ thuật 24/7.

Thông tin liên hệ:

  • Website: https://stag.vietnix.dev/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.

Tùy chọn -n trong lệnh watch dùng để làm gì?

Tùy chọn -n (hoặc --interval) dùng để thay đổi khoảng thời gian giữa mỗi lần cập nhật, tính theo giây.

Làm sao để ẩn phần tiêu đề của watch khi chạy lệnh?

Dùng -t hoặc --no-title để ẩn dòng tiêu đề hiển thị thời gian và câu lệnh đang theo dõi.

Lệnh watch có phù hợp để giám sát real-time log không?

Không hoàn toàn phù hợp. watch không hiển thị phần nội dung mới liên tục như tail -f. watch chạy lại toàn bộ lệnh theo chu kỳ.

Sự khác biệt giữa watch -n 0.1while true; do ...; sleep 0.1; done là gì?

watch cố gắng giữ đúng chu kỳ cập nhật, trong khi while có thể bị trễ nếu lệnh bên trong thực thi lâu. Ngoài ra, watch có giao diện hiển thị đẹp và dễ theo dõi hơn.

Lệnh watch có thể dùng trong môi trường không có giao diện terminal không?

Không phù hợp với môi trường không hiển thị như script chạy nền, vì watch cần hiển thị liên tục.

Tại sao khi chạy watch với các lệnh có pipe lại bị lỗi?

Vì shell parsing. Bạn nên đặt toàn bộ lệnh trong dấu nháy kép: `watch “ps aux

Lời kết

Sử dụng lệnh watch giúp bạn chủ động giám sát trạng thái hệ thống và xử lý kịp thời mọi thay đổi, đặc biệt hiệu quả trong quá trình vận hành server hoặc viết script. Nếu bạn có bất kỳ thắc mắc nào về cách dùng watch, ví dụ nâng cao hoặc lỗi thường gặp, đừng ngần ngại để lại bình luận. Bạn cũng có thể khám phá thêm các giải pháp VPS tại Vietnix nếu đang tìm một nền tảng ổn định để triển khai workflow tự động. Đừng quên theo dõi blog để cập nhật thêm nhiều mẹo Linux hữu ích khác.

Mọi người cũng xem:

Related posts

Leave the first comment