Lệnh watch trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh watch của Linux, cho phép bạn thực thi lặp đi lặp lại một lệnh và theo dõi đầu ra của nó. Lab này bao gồm việc hiểu lệnh watch, giám sát các tiến trình hệ thống và theo dõi các thay đổi của tệp trong thời gian thực. Lệnh watch là một công cụ mạnh mẽ để giám sát và quản lý hệ thống, cho phép bạn luôn được thông báo về các sự kiện và thay đổi quan trọng của hệ thống. Trong suốt lab, bạn sẽ khám phá các ví dụ thực tế và học cách sử dụng hiệu quả lệnh watch trong các tác vụ quản trị hệ thống hàng ngày của mình.

Tìm hiểu lệnh watch

Trong bước này, bạn sẽ tìm hiểu về lệnh watch trong Linux, cho phép bạn thực thi lặp đi lặp lại một lệnh và theo dõi đầu ra của nó.

Lệnh watch là một công cụ mạnh mẽ để giám sát và quản lý hệ thống. Nó có thể được sử dụng để theo dõi các thay đổi trong các tiến trình hệ thống, sửa đổi tệp và các sự kiện thời gian thực khác.

Để bắt đầu sử dụng lệnh watch, chỉ cần chạy lệnh sau trong terminal của bạn:

watch [options] <command>

Ở đây, [options] là các tham số tùy chọn mà bạn có thể truyền cho lệnh watch<command> là lệnh bạn muốn thực thi và theo dõi.

Một số tùy chọn phổ biến cho lệnh watch bao gồm:

  • -n, --interval <seconds>: Đặt khoảng thời gian cập nhật cho việc thực thi lệnh (mặc định là 2 giây).
  • -d, --difference: Đánh dấu sự khác biệt giữa các lần cập nhật liên tiếp.
  • -t, --no-title: Ẩn tiêu đề hiển thị thời gian hiện tại và lệnh đang được thực thi.

Ví dụ: để theo dõi đầu ra của lệnh df (hiển thị mức sử dụng đĩa) cứ sau 5 giây, bạn có thể chạy:

watch -n 5 df -h

Ví dụ về đầu ra:

Every 5.0s: df -h                                                   labex@ubuntu: Fri Apr 28 14:35:41 2023

Filesystem      Size  Used Avail Use% Mounted on
overlay         30G  4.2G   26G  14% /
tmpfs           64M     0   64M   0% /dev
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1       30G  4.2G   26G  14% /etc/hosts
shm              64M     0   64M   0% /dev/shm
overlay         30G  4.2G   26G  14% /etc/resolv.conf
overlay         30G  4.2G   26G  14% /etc/hostname
overlay         30G  4.2G   26G  14% /etc/host.conf
tmpfs           2.0G     0  2.0G   0% /proc/acpi
tmpfs           2.0G     0  2.0G   0% /proc/scsi
tmpfs           2.0G     0  2.0G   0% /sys/firmware

Lệnh watch sẽ liên tục thực thi lệnh df -h và hiển thị đầu ra, cập nhật nó cứ sau 5 giây.

Giám sát tiến trình hệ thống bằng watch

Trong bước này, bạn sẽ học cách sử dụng lệnh watch để giám sát các tiến trình hệ thống trong thời gian thực.

Lệnh watch có thể được sử dụng kết hợp với lệnh ps (trạng thái tiến trình) để liên tục hiển thị thông tin về các tiến trình đang chạy trên hệ thống của bạn.

Để giám sát các tiến trình hệ thống bằng watch, hãy chạy lệnh sau:

watch -n 5 'ps aux'

Lệnh này sẽ thực thi lệnh ps aux cứ sau 5 giây và hiển thị đầu ra trong terminal của bạn. Lệnh ps aux hiển thị thông tin về tất cả các tiến trình đang chạy, bao gồm người dùng, ID tiến trình, mức sử dụng CPU và bộ nhớ và lệnh đã khởi động tiến trình.

Bạn cũng có thể sử dụng lệnh watch với các lệnh liên quan đến tiến trình khác, chẳng hạn như top hoặc htop, để có cái nhìn chi tiết hơn về các tiến trình hệ thống:

watch -n 5 top

Lệnh này sẽ hiển thị đầu ra của lệnh top, hiển thị các tiến trình được sắp xếp theo mức sử dụng CPU hoặc bộ nhớ.

Ví dụ về đầu ra:

Every 5.0s: top                                                     labex@ubuntu: Fri Apr 28 14:40:41 2023

top - 14:40:41 up 8 min,  0 users,  load average: 0.00, 0.00, 0.00
Tasks:  38 total,   1 running,  37 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    1984.0 total,    1909.7 free,      29.3 used,      45.0 buff/cache
MiB Swap:       0.0 total,       0.0 free,       0.0 used.    1909.9 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0    8548   3292   2340 S   0.0   0.2   0:01.38 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp

Lệnh watch cho phép bạn liên tục giám sát các tiến trình hệ thống, giúp bạn dễ dàng xác định các ứng dụng sử dụng nhiều tài nguyên hoặc phát hiện bất kỳ hoạt động tiến trình bất thường nào.

Giám sát thay đổi tệp bằng watch

Trong bước này, bạn sẽ học cách sử dụng lệnh watch để giám sát các thay đổi trong tệp hoặc thư mục.

Lệnh watch có thể được sử dụng kết hợp với lệnh ls (liệt kê nội dung thư mục) để liên tục hiển thị nội dung của một thư mục và phát hiện bất kỳ thay đổi nào.

Đầu tiên, hãy tạo một thư mục và một số tệp để theo dõi:

mkdir ~/project/files
touch ~/project/files/file1.txt ~/project/files/file2.txt

Bây giờ, để giám sát nội dung của thư mục ~/project/files, hãy chạy lệnh sau:

watch -n 5 'ls -l ~/project/files'

Lệnh này sẽ thực thi lệnh ls -l ~/project/files cứ sau 5 giây và hiển thị đầu ra trong terminal của bạn. Tùy chọn -l cho ls hiển thị danh sách ở định dạng dài, bao gồm thông tin như quyền của tệp, quyền sở hữu, kích thước và thời gian sửa đổi.

Bạn cũng có thể sử dụng lệnh watch để giám sát các thay đổi trong một tệp cụ thể. Ví dụ: để giám sát nội dung của tệp file1.txt:

watch -n 5 'cat ~/project/files/file1.txt'

Lệnh này sẽ hiển thị nội dung của tệp file1.txt cứ sau 5 giây và bạn sẽ có thể thấy bất kỳ thay đổi nào được thực hiện đối với tệp trong thời gian thực.

Ví dụ về đầu ra:

Every 5.0s: ls -l ~/project/files                                    labex@ubuntu: Fri Apr 28 14:45:41 2023

total 0
-rw-r--r-- 1 labex labex 0 Apr 28 14:44 file1.txt
-rw-r--r-- 1 labex labex 0 Apr 28 14:44 file2.txt

Lệnh watch cho phép bạn liên tục giám sát các tệp và thư mục, giúp bạn dễ dàng phát hiện các thay đổi hoặc sửa đổi đối với các tệp của hệ thống.

Tóm tắt

Trong lab này, bạn sẽ học cách sử dụng lệnh watch trong Linux để giám sát các tiến trình hệ thống và thay đổi tệp. Đầu tiên, bạn sẽ hiểu các kiến thức cơ bản về lệnh watch, bao gồm cách chạy nó và các tùy chọn có sẵn. Sau đó, bạn sẽ học cách sử dụng watch để giám sát các tiến trình hệ thống, chẳng hạn như theo dõi các thay đổi về mức sử dụng đĩa theo thời gian. Cuối cùng, bạn sẽ khám phá cách sử dụng watch để giám sát các thay đổi của tệp, điều này có thể hữu ích để theo dõi các tệp cấu hình hoặc tệp nhật ký. Đến cuối lab này, bạn sẽ có một sự hiểu biết vững chắc về lệnh watch và cách áp dụng nó vào các tác vụ giám sát hệ thống khác nhau.

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