คู่มือการอยู่รอด lsof [ปิดแล้ว]


105

lsof เป็นยูทิลิตี้บรรทัดคำสั่งที่ทรงพลังสำหรับระบบยูนิกซ์ มันแสดงรายการไฟล์ที่เปิดแสดงข้อมูลเกี่ยวกับไฟล์เหล่านี้ และเนื่องจากทุกอย่างส่วนใหญ่เป็นไฟล์ในระบบยูนิกซ์ lsof สามารถให้ข้อมูลการวินิจฉัยที่เป็นประโยชน์แก่ผู้ดูแลระบบได้มากมาย

วิธีการใช้ lsof ทั่วไปและมีประโยชน์มากที่สุดคืออะไรและสวิตช์บรรทัดคำสั่งใดที่ใช้สำหรับสิ่งนั้น

คำตอบ:


120

หากต้องการแสดงเครือข่ายทั้งหมดที่เกี่ยวข้องกับสิ่งที่กำหนดport:

lsof -iTCP -i :port
lsof -i :22

หากต้องการแสดงการเชื่อมต่อกับโฮสต์เฉพาะให้ใช้ @host

lsof -i@192.168.1.5

แสดงการเชื่อมต่อตามโฮสต์และพอร์ตโดยใช้@host:port lsof -i@192.168.1.5: 22

grepping สำหรับLISTENแสดงพอร์ตที่ระบบของคุณกำลังรอการเชื่อมต่อ:

lsof -i| grep LISTEN

แสดงสิ่งที่ผู้ใช้คนหนึ่งเปิดโดยใช้-u:

lsof -u daniel

ดูไฟล์และการเชื่อมต่อเครือข่ายที่คำสั่งใช้กับอะไร -c

lsof -c syslog-ng

-pสวิตช์ช่วยให้คุณเห็นสิ่งที่กระบวนการ ID ให้มีเปิดซึ่งเป็นสิ่งที่ดีสำหรับการเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการที่ไม่รู้จัก:

lsof -p 10075

-tตัวเลือกที่ให้ผลตอบแทนเพียงPID

lsof -t -c Mail

การใช้-tและ-cตัวเลือกร่วมกันคุณสามารถHUPดำเนินการได้

kill -HUP $(lsof -t -c sshd)

คุณยังสามารถใช้ปุ่ม-twith -uเพื่อฆ่าทุกสิ่งที่ผู้ใช้เปิดอยู่

kill -9 $(lsof -t -u daniel)


วิธีหนึ่งที่ดีคือใช้อัญมณีโกงถ้าคุณใช้ Ruby CLI ที่ขับเคลื่อนโดยชุมชนเป็นเพียงความสะดวกสบายในการโกงแผ่นยูทิลิตี้จำนวนมาก (ไม่ขึ้นกับภาษา) ให้มันลอง
Kedar Mhaswade

25
lsof -i :port 

จะบอกให้คุณทราบว่ามีโปรแกรมใดบ้างที่กำลังฟังอยู่บนพอร์ตเฉพาะ


1
ไม่ จำกัด เฉพาะ "การฟัง" ดังนั้นหากคุณระบุlsof -i :8080และมีกระบวนการมากมายที่เชื่อมต่อกับพร็อกซีบนพอร์ต 8080 คุณจะได้รับสิ่งเหล่านั้นด้วย
Matt Byrne

14
lsof +D /some/directory

จะแสดงไฟล์ทั้งหมดที่เปิดซ้ำในไดเร็กทอรี + d สำหรับระดับบนสุดเท่านั้น

สิ่งนี้มีประโยชน์เมื่อคุณมี% การรอสำหรับ IO สูงซึ่งสัมพันธ์กับการใช้ FS เฉพาะและต้องการดูว่ากระบวนการใดบ้างที่เคี้ยว io ของคุณ


13

lsof -iจะแสดงรายการซ็อกเก็ตเครือข่ายแบบเปิด -nตัวเลือกที่จะป้องกันไม่ให้การค้นหา DNS ซึ่งจะเป็นประโยชน์เมื่อการเชื่อมต่อเครือข่ายของคุณช้าหรือไม่น่าเชื่อถือ


5
lsof -iจะแสดงให้คุณเห็นเฉพาะซ็อกเก็ตที่คุณสามารถเข้าถึงได้ในเนมสเปซของคุณเท่านั้น (ซึ่งถือว่าเป็นซ็อกเก็ต "อินเทอร์เน็ต" ผ่านการวิปัสสนาไม่ใช่เฉพาะซ็อกเก็ตเครือข่ายใด ๆ ) มิฉะนั้นที่จับประเภท 'ถุงเท้า' จะไม่ปรากฏในรายการ
Nick Bastin

13

ดูว่าไฟล์ใดที่แอปพลิเคชันที่รันอยู่หรือ daemon เปิดอยู่:

lsof -p pid

โดยที่pidคือ ID กระบวนการของแอ็พพลิเคชันหรือ daemon


10
lsof +f -- /mountpoint

แสดงรายการกระบวนการโดยใช้ไฟล์บนเมาท์ที่ติดตั้งที่ / mountpoint มีประโยชน์อย่างยิ่งสำหรับการค้นหาว่ากระบวนการใดใช้แท่ง USB หรือซีดี / ดีวีดีที่ติดตั้งอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.