ეს არის ჩვენი Linux ბრძანებების მიმდინარე სერია და ამ სტატიაში ჩვენ განვიხილავთ ლსოფ ბრძანება პრაქტიკული მაგალითებით. ლსოფ მნიშვნელობა "LiSt ღია ფაილები" გამოიყენება იმის გასარკვევად, რომელი ფაილები რომელი პროცესით არის გახსნილი. როგორც ყველამ ვიცით Linux/Unix ყველაფერს განიხილავს როგორც ფაილებს (მილები, სოკეტები, დირექტორიები, მოწყობილობები და ა.შ.) გამოყენების ერთ -ერთი მიზეზი ლსოფ ბრძანება არის, როდესაც დისკი არ შეიძლება იყოს მოხსნილი, როგორც ნათქვამია, რომ ფაილები გამოიყენება. ამ ბრძანების დახმარებით ჩვენ შეგვიძლია მარტივად ამოვიცნოთ გამოყენებული ფაილები.
ქვემოთ მოყვანილ მაგალითში ის აჩვენებს ღია ფაილების ხანგრძლივ ჩამონათვალს, რომელთაგან ზოგიერთი ამოღებულია უკეთ გასაგებად, რომელი აჩვენებს სვეტებს ბრძანება, PID, USER, FD, ტიპი და ა.შ.
# ასე COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. init 1 ფესვი cwdDIR253,0 4096 2 / init 1 ფესვიrtdDIR253,0 4096 2 / init 1 ფესვიტექსტიREG 253,0 145180 147164 /sbin /init. init 1 ფესვი მემREG 253,0 1889704 190149 /lib/libc-2.12.ასე. init 1 root 0u CHR 1,3 0t0 3764 /dev /null. init 1 ფესვი 1uCHR 1,3 0t0 3764 /dev /null. init 1 root 2u CHR 1,3 0t0 3764 /dev /null. init 1 root 3r FIFO 0,8 0t0 8449 მილი. init 1 root 4w FIFO 0,8 0t0 8449 მილი. init 1 root 5r DIR 0,10 0 1 ინოტიფიცირება. init 1 root 6r DIR 0,10 0 1 ინოტიფიცირება. init 1 root 7u unix 0xc1513880 0t0 8450 სოკეტი
სექციები და მისი ღირებულებები თავისთავად ახსნილია. თუმცა, ჩვენ განვიხილავთ FD & TYPE სვეტები უფრო ზუსტად.
FD - დგას ფაილის აღმწერი და შეიძლება ნახოთ ზოგიერთი მნიშვნელობა, როგორც:
ასევე ში FD სვეტების ნომრები მოსწონს 1u არის ფაქტობრივი ფაილის აღმწერი და მოყვება მისი რეჟიმი u, r, w როგორც:
ტიპი - ფაილები და მისი იდენტიფიკაცია.
ქვემოთ მოცემული ბრძანება აჩვენებს მომხმარებლის ყველა გახსნილი ფაილის სიას ექსპედიცია.
# lsof -u tecmintCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. sshd 1838 tecmint cwd DIR 253,0 4096 2 / sshd 1838 tecmint rtd DIR 253,0 4096 2 / sshd 1838 tecmint txt REG 253,0 532336 188129/usr/sbin/sshd. sshd 1838 tecmint mem REG 253,0 19784 190237 /lib/libdl-2.12.so. sshd 1838 tecmint mem REG 253,0 122436 190247 /lib/libselinux.so.1. sshd 1838 tecmint mem REG 253,0 255968 190256 /lib/libgssapi_krb5.so.2.2. sshd 1838 tecmint mem REG 253,0 874580 190255 /lib/libkrb5.so.3.3
კონკრეტული პორტის ყველა გაშვებული პროცესის გასარკვევად, უბრალოდ გამოიყენეთ შემდეგი ბრძანება პარამეტრით -მე. ქვემოთ მოყვანილი მაგალითი ჩამოთვლის პორტის ყველა გაშვებულ პროცესს 22.
# lsof -i TCP: 22COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. sshd 1471 root 3u IPv4 12683 0t0 TCP *: ssh (მოუსმინეთ) sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (მოუსმინეთ)
ქვემოთ მოყვანილ მაგალითში ნაჩვენებია მხოლოდ IPv4 და IPv6 ქსელის ფაილები იხსნება ცალკეული ბრძანებებით.
# lsof -i 4COMMAND 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 8u IPv4 11331 0t0 TCP *: sunrpc (LISTEN) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *: mdns. avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *: 58600# lsof -i 6COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. rpcbind 1203 rpc 9u IPv6 11333 0t0 UDP *: sunrpc. rpcbind 1203 rpc 10u IPv6 11335 0t0 UDP *: 954. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *: sunrpc (LISTEN) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *: 55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *: 56428 (მოუსმინეთ) cupd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (LISTEN)
ჩამოთვალეთ ღია ფაილების ყველა გაშვებული პროცესი TCP პორტი მერყეობს 1-1024.
# lsof -i TCP: 1-1024COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *: sunrpc (LISTEN) cupd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (LISTEN) sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (მოუსმინეთ) სამაგისტრო 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 (დამყარებულია) sshd 1838 tecmint 3u IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (დამკვიდრებული) sshd 1871 root 3r IPv4 15842 0t0 TCP 192.168.0.2:ssh->192.168.0.1:groove (დამყარებულია) httpd 1918 root 5u IPv6 15991 0t0 TCP *: http (LISTEN) httpd 1918 root 7u IPv6 15995 0t0 TCP *: https (LISTEN)
აქ ჩვენ გამოვრიცხეთ ფესვი მომხმარებელი. თქვენ შეგიძლიათ გამორიცხოთ კონკრეტული მომხმარებელი გამოყენებით ‘^’ ბრძანებით, როგორც ნაჩვენებია ზემოთ.
# lsof -i -u^ფესვი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 8u IPv4 11331 0t0 TCP *: sunrpc (LISTEN) rpcbind 1203 rpc 9u IPv6 11333 0t0 UDP *: sunrpc. rpcbind 1203 rpc 10u IPv6 11335 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 5r IPv4 11836 0t0 UDP *: საპნის სიგნალი. rpc.statd 1277 rpcuser 8u IPv4 11850 0t0 UDP *: 55146. rpc.statd 1277 rpcuser 9u IPv4 11854 0t0 TCP *: 32981 (მოუსმინეთ) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *: 55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *: 56428 (მოუსმინეთ)
ქვემოთ მოყვანილი მაგალითი აჩვენებს მომხმარებელს ექსპედიცია იყენებს ბრძანების მსგავსს პინგი და /etc დირექტორია
# lsof -i -u tecmint COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. bash 1839 tecmint cwd DIR 253,0 12288 15 /ა.შ. პინგი 2525 tecmint cwd DIR 253,0 12288 15 /ა.შ
შემდეგი ბრძანება ვარიანტით '-მე' აჩვენებს ქსელის ყველა კავშირის ჩამონათვალს "მოსმენა და დამკვიდრება '.
# lsof -iCOMMAND 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 (მოუსმინეთ) cupd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (LISTEN) cupd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (LISTEN) sshd 1471 root 3u IPv4 12683 0t0 TCP *: ssh (მოუსმინეთ) სამაგისტრო 1551 root 12u IPv4 12896 0t0 TCP localhost: smtp (LISTEN) სამაგისტრო 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 (დამყარებულია) httpd 1918 root 5u IPv6 15991 0t0 TCP *: http (LISTEN) httpd 1918 root 7u IPv6 15995 0t0 TCP *: https (LISTEN) საათი-აპლიკაცია 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 (დამკვიდრებული) chrome 2377 narad 80u IPv4 25866 0t0 TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net: http (დამკვიდრებული)
ქვემოთ მოყვანილი მაგალითი მხოლოდ აჩვენებს ვისი PID არის 1 [ერთი].
# lsof -p 1COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME. init 1 root cwd DIR 253,0 4096 2 / init 1 root rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 145180 147164 /sbin /init. init 1 root mem REG 253,0 1889704 190149 /lib/libc-2.12.so. init 1 root mem REG 253,0 142472 189970 /lib/ld-2.12.so
ზოგჯერ შეიძლება დაგჭირდეთ კონკრეტული მომხმარებლისთვის ყველა პროცესის მოკვლა. ქვემოთ მოყვანილი ბრძანება კლავს ყველა პროცესს ექსპედიცია მომხმარებელი.
# kill -9 `lsof -t -u tecmint`
Შენიშვნა: აქ შეუძლებელია ყველა არსებული ვარიანტის მაგალითი, ეს სახელმძღვანელო მხოლოდ იმის ჩვენებაა, თუ როგორ ლსოფ ბრძანება შეიძლება გამოყენებულ იქნას. თქვენ შეგიძლიათ მიმართოთ კაცის გვერდს ლსოფ ბრძანება იცოდე მეტი ამის შესახებ. გთხოვთ გააზიაროთ, თუკი ეს სტატია თქვენთვის სასარგებლოა ჩვენი კომენტარების ყუთში ქვემოთ.