Linux-ലെ 10 lsof കമാൻഡ് ഉദാഹരണങ്ങൾ
ഇതാണ് ഞങ്ങളുടെ നിലവിലുള്ള Linux കമാൻഡുകളുടെ പരമ്പര, ഈ ലേഖനത്തിൽ, പ്രായോഗിക ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് ഞങ്ങൾ lsof കമാൻഡ് അവലോകനം ചെയ്യാൻ പോകുന്നു. lsof എന്നർത്ഥം 'ലിസ്റ്റ് ഓപ്പൺ ഫയലുകൾ' എന്നത് ഏത് പ്രക്രിയയിലൂടെ ഏത് ഫയലുകളാണ് തുറന്നിരിക്കുന്നതെന്ന് കണ്ടെത്താൻ ഉപയോഗിക്കുന്നു.
നമുക്കെല്ലാവർക്കും അറിയാവുന്നതുപോലെ, Linux/Unix എല്ലാം ഒരു ഫയലായി കണക്കാക്കുന്നു (പൈപ്പുകൾ, സോക്കറ്റുകൾ, ഡയറക്ടറികൾ, ഉപകരണങ്ങൾ മുതലായവ). lsof കമാൻഡ് ഉപയോഗിക്കുന്നതിനുള്ള ഒരു കാരണം, ഫയലുകൾ ഉപയോഗിക്കുന്നുണ്ടെന്ന് പറയുന്നതിനാൽ ഒരു ഡിസ്ക് അൺമൗണ്ട് ചെയ്യാൻ കഴിയാത്തതാണ്. ഈ കമാൻഡിന്റെ സഹായത്തോടെ, ഉപയോഗത്തിലുള്ള ഫയലുകൾ നമുക്ക് എളുപ്പത്തിൽ തിരിച്ചറിയാൻ കഴിയും.
ചുവടെയുള്ള ഉദാഹരണത്തിൽ, കമാൻഡ്, PID, USER, FD, TYPE മുതലായവ പോലുള്ള നിരകൾ പ്രദർശിപ്പിക്കുന്ന മികച്ച ധാരണയ്ക്കായി അവയിൽ ചിലത് എക്uസ്uട്രാക്uറ്റുചെയ്uത തുറന്ന ഫയലുകളുടെ ഒരു നീണ്ട ലിസ്റ്റിംഗ് കാണിക്കും.
# lsof COMMAND 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 0u CHR 1,3 0t0 3764 /dev/null init 1 root 1u CHR 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 pipe init 1 root 4w FIFO 0,8 0t0 8449 pipe init 1 root 5r DIR 0,10 0 1 inotify init 1 root 6r DIR 0,10 0 1 inotify init 1 root 7u unix 0xc1513880 0t0 8450 socket
വിഭാഗങ്ങളും അവയുടെ മൂല്യങ്ങളും സ്വയം വിശദീകരിക്കുന്നതാണ്. എന്നിരുന്നാലും, ഞങ്ങൾ FD & TYPE കോളങ്ങൾ കൂടുതൽ കൃത്യമായി അവലോകനം ചെയ്യും.
FD - ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്ററിനെ സൂചിപ്പിക്കുന്നു, കൂടാതെ ചില മൂല്യങ്ങൾ ഇങ്ങനെ കാണാനിടയുണ്ട്:
- cwd കറന്റ് വർക്കിംഗ് ഡയറക്uടറി
- rtd റൂട്ട് ഡയറക്uടറി
- txt പ്രോഗ്രാം ടെക്സ്റ്റ് (കോഡും ഡാറ്റയും)
- mem മെമ്മറി-മാപ്പ് ചെയ്ത ഫയൽ
1u പോലെയുള്ള FD കോളം നമ്പറുകളിലും യഥാർത്ഥ ഫയൽ ഡിസ്ക്രിപ്റ്റർ ആണ്, തുടർന്ന് അതിന്റെ മോഡിന്റെ u,r,w എന്നിവ ഇങ്ങനെയാണ്:
- വായന ആക്uസസ്സിനുള്ള R.
- എഴുതാനുള്ള ആക്uസസിനായി w.
- വായിക്കാനും എഴുതാനുമുള്ള ആക്uസസ്സ്.
ടൈപ്പ് - ഫയലുകളുടെ ഐഡന്റിഫിക്കേഷൻ.
- DIR - ഡയറക്ടറി
- REG – റെഗുലർ ഫയൽ
- CHR - പ്രതീക പ്രത്യേക ഫയൽ.
- FIFO - ഫസ്റ്റ് ഇൻ ഫസ്റ്റ് ഔട്ട്
താഴെയുള്ള കമാൻഡ് ഉപയോക്തൃ tecmint-ന്റെ എല്ലാ തുറന്ന ഫയലുകളുടെയും ലിസ്റ്റ് പ്രദർശിപ്പിക്കും.
# lsof -u tecmint COMMAND 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
ഒരു നിർദ്ദിഷ്uട പോർട്ടിന്റെ പ്രവർത്തിക്കുന്ന എല്ലാ ലിനക്uസ് പ്രക്രിയകളും കണ്ടെത്തുന്നതിന്, -i എന്ന ഓപ്ഷനുള്ള ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക. താഴെയുള്ള ഉദാഹരണം പോർട്ട് 22-ന്റെ എല്ലാ പ്രവർത്തിക്കുന്ന പ്രക്രിയകളും ലിസ്റ്റ് ചെയ്യും.
# lsof -i TCP:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1471 root 3u IPv4 12683 0t0 TCP *:ssh (LISTEN) sshd 1471 root 4u IPv6 12685 0t0 TCP *:ssh (LISTEN)
താഴെയുള്ള ഉദാഹരണത്തിൽ IPv4, IPv6 നെറ്റ്uവർക്ക് ഫയലുകൾ മാത്രം പ്രത്യേക കമാൻഡുകൾ ഉപയോഗിച്ച് തുറക്കുന്നു.
# lsof -i 4 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) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdns avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600 # lsof -i 6 COMMAND 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 (LISTEN) cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost:ipp (LISTEN)
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)
ഇവിടെ, ഞങ്ങൾ റൂട്ട് ഉപയോക്താവിനെ ഒഴിവാക്കിയിരിക്കുന്നു. മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രത്യേക ഉപയോക്താവിനെ '^' ഉപയോഗിച്ച് ഒഴിവാക്കാം.
# lsof -i -u^root 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 *:soap-beep rpc.statd 1277 rpcuser 8u IPv4 11850 0t0 UDP *:55146 rpc.statd 1277 rpcuser 9u IPv4 11854 0t0 TCP *:32981 (LISTEN) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *:55800 rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (LISTEN)
താഴെയുള്ള ഉദാഹരണം, ഉപയോക്താവ് tecmint, ping, /etc ഡയറക്ടറി പോലുള്ള കമാൻഡുകൾ ഉപയോഗിക്കുന്നുണ്ടെന്ന് കാണിക്കുന്നു.
# lsof -i -u tecmint COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 1839 tecmint cwd DIR 253,0 12288 15 /etc ping 2525 tecmint cwd DIR 253,0 12288 15 /etc
'-i' ഓപ്ഷനുള്ള ഇനിപ്പറയുന്ന കമാൻഡ് എല്ലാ നെറ്റ്uവർക്ക് കണക്ഷനുകളുടെയും 'ലിസ്uറ്റനിംഗ് & എസ്റ്റാബ്ലിഷ്ഡ്' ലിസ്റ്റ് കാണിക്കുന്നു.
# 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)
ചുവടെയുള്ള ഉദാഹരണം ആരുടെ PID 1 [ഒന്ന്] ആണെന്ന് കാണിക്കുന്നു.
# lsof -p 1 COMMAND 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
ചില സമയങ്ങളിൽ നിങ്ങൾ ഒരു നിർദ്ദിഷ്uട ഉപയോക്താവിനായി എല്ലാ പ്രക്രിയകളും ഇല്ലാതാക്കേണ്ടി വന്നേക്കാം. താഴെയുള്ള കമാൻഡ് tecmint ഉപയോക്താവിന്റെ എല്ലാ പ്രക്രിയകളെയും നശിപ്പിക്കും.
# kill -9 `lsof -t -u tecmint`
ശ്രദ്ധിക്കുക: ഇവിടെ, ലഭ്യമായ എല്ലാ ഓപ്ഷനുകളുടെയും ഉദാഹരണങ്ങൾ നൽകുന്നത് സാധ്യമല്ല, ഈ ഗൈഡ് lsof കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് കാണിക്കാൻ മാത്രമാണ്. ഇതിനെക്കുറിച്ച് കൂടുതലറിയാൻ നിങ്ങൾക്ക് lsof കമാൻഡിന്റെ മാൻ പേജ് റഫർ ചെയ്യാം. ചുവടെയുള്ള ഞങ്ങളുടെ കമന്റ് ബോക്സിലൂടെ ഈ ലേഖനം ഉപയോഗപ്രദമാണെന്ന് നിങ്ങൾ കണ്ടെത്തുകയാണെങ്കിൽ ദയവായി അത് പങ്കിടുക.