มีวิธีในการให้สคริปต์หลังการติดตั้งและ pre-umount ใน Linux?
ฉันพยายามที่จะทำสคริปต์บางอย่างบนสื่อเก็บข้อมูลเมื่อติดตั้งและก่อนที่จะติดตั้ง (เช่นสำหรับการซิงค์)
ความช่วยเหลือใด ๆ ชื่นชม
มีวิธีในการให้สคริปต์หลังการติดตั้งและ pre-umount ใน Linux?
ฉันพยายามที่จะทำสคริปต์บางอย่างบนสื่อเก็บข้อมูลเมื่อติดตั้งและก่อนที่จะติดตั้ง (เช่นสำหรับการซิงค์)
ความช่วยเหลือใด ๆ ชื่นชม
คำตอบ:
หากคุณกำลังพยายามทำสิ่งนี้สำหรับผู้ที่เรียกใช้คำสั่ง/sbin/mount
และ/sbin/umount
คำสั่งสิ่งที่คุณต้องทำคือทำโปรแกรม wrapper สำหรับทั้งสองและโปรแกรมสิ่งที่คุณต้องการในโปรแกรม wrapper เหล่านี้
โปรแกรม wrapper ที่ถูกแทนที่/sbin/mount
ด้วยโปรแกรม wrapper ที่เรียกจริง/sbin/mount
(เปลี่ยนชื่อเป็นบางสิ่งเช่น/sbin/mount-real
หรือ/sbin/umount-real
) เพื่อป้องกันไม่ให้ใครเรียกโปรแกรมจริงให้ใช้สิทธิ์กลุ่มเพื่อ จำกัด และตั้งค่าบิต SGID บนโปรแกรมตัดคำ
หากคุณกำลังมองหาการแก้ไขการmount(2)
เรียกใช้ไลบรารีนั่นเป็นความพยายามและอาจเป็นเรื่องยากและอาจไม่แนะนำเนื่องจากอาจทำให้เกิดปัญหาในการประมวลผลระบบภายในโดยเฉพาะในช่วงเริ่มต้นและปิดระบบ
แม้จะมีโปรแกรมห่อหุ้มคุณอาจต้องทดสอบอย่างละเอียดเพื่อหลีกเลี่ยงการรบกวนของระบบและทำการปรับเปลี่ยนที่เหมาะสม
คุณอาจใช้inotify kernel hook แม้ว่าเหตุการณ์ pre-unmount อาจเป็นเรื่องยากมากที่จะตรวจจับเนื่องจากฉันไม่แน่ใจว่ามีเหตุการณ์ inotify ที่ส่งก่อนที่จะติดตั้งไดเรกทอรี
/media
หรือ/mnt
) แต่ไม่ใช่ว่าระบบไฟล์นั้นถูกเมาท์บนไดเรกทอรีนั้น
วิธีการแก้ปัญหาที่ง่ายที่สุดที่อาจจะทำงานตลอดไปเป็นพาสหรือ/etc/mtab
/proc/mounts
เมื่อมีการเปลี่ยนแปลงไฟล์นั้นหมายความว่ามีบางสิ่งที่ถูกเมานท์หรือไม่ได้เมานต์ จากนั้นคุณต้องตรวจสอบอุปกรณ์ที่คุณต้องการ
Udev ไม่ใช่ทางออกที่ดีที่สุดเพราะเพียงแค่บอกคุณว่าอุปกรณ์เชื่อมต่อหรือไม่ ไม่ได้บอกว่าอุปกรณ์ติดตั้งจริงหรือไม่ บางครั้งอาจใช้งานได้ แต่เป็นวิธีแก้ปัญหาแฮ็กที่บางครั้งจะพังและคุณจะดึงผมออก
คุณสามารถเขียนกฎ udev เพื่อทำเช่นนั้น ฉันใช้สิ่งนี้เพื่อสำรองข้อมูลโดยอัตโนมัติไปยังไดรฟ์ usb สิ่งที่สนุก.