สิ่งนี้ควรเป็นสิ่งที่สามารถทำได้ใน/etc/rc.local
ไฟล์เริ่มต้นซึ่งจะถูกเรียกใช้ในตอนท้ายของทุกระดับ
หากต้องการเมานต์ / var / log คุณจะต้องหยุดกระบวนการใด ๆ ที่มีไฟล์เปิดอยู่ในไดเรกทอรีล็อกแล้วทำการเมานต์ใหม่ คำแนะนำของฉันคือการเพิ่มบรรทัดต่อไปนี้ในrc.local
สคริปต์ของคุณเพื่อให้มันทำงานตอนบูท:
lsof | grep /var/log | awk '{ print $1 }' | uniq > /root/logs_open
lsof
แสดงรายการไฟล์ที่เปิดอยู่ทั้งหมด จากนั้นเราจะกรองบรรทัดทั้งหมดที่ไม่อ้างอิง / var / log ( grep /var/log
) เราพิมพ์เฉพาะคอลัมน์แรก (ชื่อกระบวนการ) ของผลลัพธ์ ( awk '{ print $1 }'
) โดยเก็บเฉพาะหนึ่งสำเนาของแต่ละ ( uniq
) และส่งผลลัพธ์ไปยังไฟล์ ( > /root/logs_open
) คุณจะต้องเพิ่มบางอย่างลงในไฟล์เริ่มต้นเพื่อหยุดกระบวนการเหล่านี้ก่อนที่จะติดตั้งพาร์ติชันและรีสตาร์ทพวกเขาในภายหลัง ด้วยข้อมูลนี้ในมือให้ลบบรรทัดนั้นออกจาก rc.local และเราสามารถเริ่มต้นได้
ก่อนอื่นเราต้องทำทุกอย่างที่คุณต้องการเพื่อสร้าง ramdisk คุณอาจสร้างสคริปต์เพื่อทำสิ่งนี้
/root/create_ramdisk.sh
ในการสร้างระบบไฟล์ ext3 ให้เรียกใช้:
mkfs.ext3 /dev/rb
ถัดไปหยุดกระบวนการใด ๆ ที่เข้าสู่ระบบ
service apache2 stop
ตอนนี้เราสามารถเมานต์ / var / log
mount /dev/rb /var/log
เริ่มต้นกระบวนการที่เราหยุดก่อนหน้านี้
service apache2 start
ท้ายที่สุด rc.local จะต้องออกจากสถานะ 0 หรือสิ่งเลวร้ายเกิดขึ้น
exit 0
rc.local
สคริปต์:
/root/create_ramdisk.sh # example purposes only
mkfs.ext3 /dev/rb # create the filesystem
system apache2 stop # stop processes with open log files
mount /dev/rb /var/log # mount
system apache2 start # restart anything we stopped before
exit 0 # important!!! rc.local must exit successfully or Bad Things (tm) happen
ฉันหวังว่านี่จะช่วยได้.