10 ví dụ sử dụng chương trình lệnh "lsof" trên Linux

795
26-03-2018
10 ví dụ sử dụng chương trình lệnh "lsof" trên Linux

lsof có nghĩa là "LiSt Open Files" được sử dụng để tìm ra những tập tin nào được mở theo tiến trình nào. Như chúng ta đều biết Linux/ Unix xem xét tất cả mọi thứ như một tập tin (pipes, sockets, directories, devices...). Một trong những lý do để sử dụng lệnh lsof là khi disk không thể được unmounted vì các tập tin đang được sử dụng. Với sự giúp đỡ của lệnh này, cùng Bizfly Cloud xác định các tập tin đang được sử dụng.

1. Liệt kê tất cả các tệp mở bằng lệnh lsof

Trong ví dụ dưới đây, nó sẽ hiển thị danh sách dài các tệp đang mở.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 1.

Các sections và values là self-explanatory. Tuy nhiên, chúng ta sẽ xem xét các cột FD & TYPE.

FD - viết tắt của File descriptor và có thể thấy một số giá trị như sau:

- cwd: thư mục đang hoạt động hiện tại

- rtd: root directory

- txt: program text (code và data)

- mem: tệp memory-mapped

Trong cột FD, 1u là mô tả tệp thực tế và tiếp theo là u, r, w, cụ thể là:

- r: truy cập đọc

- w: truy cập viết

- u: truy cập đọc và viết

TYPE - của các tệp và đó là nhận dạng.

- DIR: Directory

- REG: Regular file

- CHR: Character special file

- FIFO: First In First Out

2. Liệt kê các tệp đã mở của người dùng cụ thể

Lệnh dưới đây sẽ hiển thị danh sách tất cả các tệp đã mở của người dùng tecmint.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 2.

3. Tìm tiến trình chạy trên Cổng cụ thể

Để tìm hiểu tất cả tiến trình đang chạy của cổng cụ thể, chỉ cần sử dụng lệnh sau với tùy chọn -i. Ví dụ dưới đây sẽ liệt kê tất cả tiến trình đang chạy của cổng 22.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 3.

4. Chỉ liệt kê IPv4 & IPv6 Open Files

Trong ví dụ dưới đây chỉ hiển thị các IPv4 và IPv6 network files open bằng các lệnh riêng biệt.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 4.

5. Liệt kê Open Files của TCP Port trong khoảng 1-1024

Để liệt kê tất cả quy trình đang chạy của các open files của Cổng TCP nằm trong khoảng từ 1-1024.

# lsof -i TCP:1-1024

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (LISTEN)

cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost:ipp (LISTEN)

sshd 1471 root 4u IPv6 12685 0t0 TCP *:ssh (LISTEN)

master 1551 root 13u IPv6 12898 0t0 TCP localhost:smtp (LISTEN)

sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)

sshd 1838 tecmint 3u IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)

sshd 1871 root 3r IPv4 15842 0t0 TCP 192.168.0.2:ssh->192.168.0.1:groove (ESTABLISHED)

httpd 1918 root 5u IPv6 15991 0t0 TCP *:http (LISTEN)

httpd 1918 root 7u IPv6 15995 0t0 TCP *:https (LISTEN)

6. Loại trừ Người dùng bằng ký tự ^

Ở đây, chúng ta đã loại trừ người dùng root. Bạn có thể loại trừ một người dùng cụ thể bằng cách sử dụng '^' với lệnh như được hiển thị ở trên.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 5.

7. Tìm hiểu xem ai đang tìm kiếm tệp và lệnh nào?

Ví dụ dưới đây cho thấy người dùng tecmint đang sử dụng lệnh như ping và /etc directory.

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 6.

8. Liệt kê toàn bộ Network Connections

Lệnh sau với tùy chọn -i hiển thị danh sách tất cả các kết nối mạng LISTENING & ESTABLISHED.

# lsof -i

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpc

rpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954

rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (LISTEN)

avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdns

avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600

rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (LISTEN)

cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost:ipp (LISTEN)

cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost:ipp (LISTEN)

sshd 1471 root 3u IPv4 12683 0t0 TCP *:ssh (LISTEN)

master 1551 root 12u IPv4 12896 0t0 TCP localhost:smtp (LISTEN)

master 1551 root 13u IPv6 12898 0t0 TCP localhost:smtp (LISTEN)

sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)

httpd 1918 root 5u IPv6 15991 0t0 TCP *:http (LISTEN)

httpd 1918 root 7u IPv6 15995 0t0 TCP *:https (LISTEN)

clock-app 2362 narad 21u IPv4 22591 0t0 TCP 192.168.0.2:45284->www.gov.com:http (CLOSE_WAIT)

chrome 2377 narad 61u IPv4 25862 0t0 TCP 192.168.0.2:33358->maa03s04-in-f3.1e100.net:http (ESTABLISHED)

chrome 2377 narad 80u IPv4 25866 0t0 TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net:http (ESTABLISHED)

9. Tìm kiếm bằng PID

Ví dụ dưới đây chỉ cho thấy PID là 1 [One].

10 ví dụ sử dụng chương trình lệnh lsof trên Linux - Ảnh 7.

10. Kill tất cả hoạt động của người dùng cụ thể

Đôi khi bạn phải kill tất cả các tiến trình cho một người dùng cụ thể. Lệnh dưới đây sẽ kill  tất cả các quá trình của người dùng tecmint.

# kill -9 `lsof -t -u tecmint`

Dịch từ: tecmint.com/10-lsof-command-examples-in-linux/

Theo Bizfly Cloud chia sẻ

>> Có thể bạn quan tâm: Chi tiết 10 cách tạo ra mật khẩu với chuỗi kí tự ngẫu nhiên trên Linux



TAGS: linux
SHARE