ฉันจะทดสอบว่า mountpoint ที่กำหนดได้รับการติดตั้งอย่างถูกต้องได้อย่างไร


2

ใช้ใด ๆ ของ/etc/mtab, /proc/mounts, mountหรือmountpointสามารถให้ข้อมูลที่ไม่ถูกต้องถ้ามีดังต่อไปนี้เกิดขึ้น:

  • รีโมตออฟไลน์ ( grep-file โซลูชั่นล้มเหลว)
  • สำหรับการเมาท์ NFS รีโมตหยุดส่งออกหรือบริการ NFS หยุดทำงาน ( mountpointล้มเหลว)
  • ระยะไกลเปลี่ยนที่อยู่ IP (โซลูชันทั้งหมดล้มเหลว)

ฉันจะดึงคำตอบใช่ / ไม่ใช่คำตอบว่าเมานต์นั้นสามารถใช้งานได้ตามที่ตั้งใจไว้หรือไม่? เท่าที่ผมเข้าใจข้อมูลทั้งหมดจะถูกเก็บไว้บนภูเขาทั้งในและ/etc/mtab /proc/mountsโดยไม่ทำให้เกิดการหยุด (เช่นstat) มีวิธีการตรวจสอบว่าสถานะที่แท้จริงของเครือข่ายเป็นข้อมูลท้องถิ่นจะทำให้ฉันเชื่อหรือไม่

สิ่งนี้จะต้องเป็นเครื่องมือทั่วไปมากสามารถจัดการ CIFS และ NFS mounts ได้ (และอื่น ๆ ส่วนใหญ่)

การ จำกัด

ฉันสามารถใช้สิ่งที่มาพร้อมกับการกระจายมาตรฐานบน RHEL 6 โดยปกติทุกอย่างใน/bin:/sbin:/usr/bin:/usr/sbinเกมยุติธรรม นี่ไม่ใช่ทางเลือกและไม่ใช่จุดที่เคลื่อนย้ายได้ดังนั้นฉันจึงไม่สามารถยอมรับคำตอบที่ใช้เครื่องมือภายนอก อย่างไรก็ตามเพื่อประโยชน์ของผู้อ่านในอนาคตฉันยินดีต้อนรับพวกเขาเป็นความคิดเห็น:)

อ้างอิง


ไม่mountแสดงที่อยู่ IP / ชื่อโฮสต์ธรรมดาของระบบรีโมตสำหรับการเมานต์ NFS หรือไม่ (ฉันรู้ว่ามันใช้กับ CIFS) grepแล้วก็คล้ายpingกับโฮสต์ซึ่งน่าจะล้มเหลวเร็วกว่าการพยายามเข้าถึงรีโมตเมาต์
LawrenceC

@ultrasawblade สำหรับการเมานต์ NFS ฉันคิดอย่างนั้น แต่สิ่งนี้อาจใช้ไม่ได้กับการติดตั้ง CIFS เป็นต้น ฉันไม่แน่ใจ.
ฌอน Allred

คำตอบ:


3

ฉันกลัวว่ามันเป็นไปไม่ได้

วิธีเดียวที่จะตรวจสอบว่าอุปกรณ์ NFS (หรือโดยทั่วไปแล้วเครือข่ายใด ๆ ) สามารถใช้งานได้คือพยายามใช้งานและสามารถบล็อก (และใช้เวลาค่อนข้างนาน)

ยิ่งไปกว่านั้น "การไม่ใช้งาน" ไม่ใช่สิ่งที่ถาวร หากรีโมตกลับมาออนไลน์การเมานต์ก็จะใช้งานได้อีกครั้ง


ฉันกลัวว่านี่อาจเป็นกรณีจริง แต่ฉันจะรอการเปิดเผยเพิ่มเติมก่อนที่ฉันจะพิจารณาคดีปิด - ฉันอยากรู้ว่าคนอื่น ๆ มากับแฮ็คปัญหาต่าง ๆ ฉันเห็นตรรกะในจุดของคุณ แต่มีวิธี (เช่นสำหรับ NFS rpcinfoและshowmount) เพื่อคาดเดาที่ดีมาก
ฌอน Allred

0

บน Ubuntu ฉันได้สร้างจุดเชื่อมต่อจากrootแต่พวกเขาถูกเมาท์กับผู้ใช้คนอื่นดังนั้นการตรวจสอบความเป็นเจ้าของทำให้ฉันมีข้อบ่งชี้ว่าพวกเขาถูกเมานท์หรือไม่

การเมานต์ทั้งหมดของฉันอยู่ใน/mediaดังนั้นสคริปต์ต่อไปนี้จะแสดงว่าเมานต์ใด:

ls -ld /media/* |                      \
  while read x x usr grp x x x x name; \
  do if [ $usr == root ];              \
     then echo $name not mounted;      \
     else echo $name mounted;          \
     fi;                               \
  done

หากคุณต้องการติดตั้งในฐานะรูทบางทีคุณอาจใช้กลุ่มอื่นและตรวจสอบแทน

โปรดทราบว่าสิ่งนี้จะตรวจสอบว่าการเมานต์ก่อนหน้านี้สำเร็จ หากอุปกรณ์ที่ติดตั้งหรือเครือข่ายที่ใช้ร่วมกันหยุดทำงานในภายหลังโดยไม่ถูกถอดออกการเข้าถึงอุปกรณ์นั้นจะยังคงค้างอยู่

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