ฉันต้องการวิธีเขียนสคริปต์การเมานต์ฮาร์ดไดรฟ์ไปยังจุดเมานต์เฉพาะ หลังจากการสืบค้น ฉันพบ: https://gist.github.com/trentmswanson/9c22bb71182e982bd36f
สิ่งนี้มีไว้สำหรับ MS Azure และไม่ครอบคลุมประเภทฮาร์ดไดรฟ์เฉพาะใน AWS Infrastructureมันใช้ sdf ใน nvm ที่จำเป็น ฉันทำการเปลี่ยนแปลงเหล่านั้นและผลลัพธ์ก็ใช้ได้ ฉันมีอาร์เรย์ที่เก็บจุดเชื่อมต่อ:
# Custom Mount Points สำหรับ HDD 2 ตัวแรก
เรียงพิมพ์ -A MountPoint
MountPoint[1]="/FileMakerData"
MountPoint[2]="/FileMakerData/ข้อมูลสำรอง"
และบรรทัดที่พยายามอ่านขนาด HDD "นี้" และติดตั้งอย่างเหมาะสม:
# ทดสอบขนาดของไดรฟ์ข้อมูลเพื่อทดสอบขนาดดิสก์ที่เหมาะสม
DiskSize=$(sudo fdisk -s ${DISK})
# คำนวณจำนวน GB และรีเซ็ตตัวแปรเป็นจำนวนนั้น
ให้ DiskSize=DiskSize/1048576
echo "$DiskSize"
# ใช้ขนาดดิสก์เพื่อกำหนดประเภทของดิสก์
# สมมติว่าไดรฟ์สำรองข้อมูลจะไม่ต่ำกว่า 50 GB และข้อมูลจะไม่เริ่ม GT 50 GB
ถ้า [ "$DiskSize" -lt 50 ];
จากนั้น DiskType="ข้อมูล"
elif ["$DiskSize" -ge 50 ];
จากนั้น DiskType="สำรองข้อมูล"
ไฟ
จากนั้นฟังก์ชันจะรับจุดเชื่อมต่อจากอาร์เรย์ตามค่า
get_next_mountpoint() {
ประเภทอุปกรณ์=${1}
ถ้า ( ทดสอบ "$DeviceType" == "ข้อมูล" ); จากนั้น echo "${MountPoint[1]}"
elif ( ทดสอบ "$DeviceType" == "สำรอง" ); จากนั้น echo "${MountPoint[2]}"
อื่น
# Echos ว่างเปล่าเพื่อให้สคริปต์รู้ว่าจะออกจากลูป
เสียงก้อง ""
ไฟ
}
สคริปต์มีมากขึ้น อย่างไรก็ตาม ปัญหาของกระบวนการนี้คือต้องสร้าง/ติดตั้ง HDD เข้ากับ /FileMakerData ก่อน
เมื่อฉันเมานต์ /FileMakerData/Backups จากนั้นเมานต์ /FileMakerData ฉันได้รับไดเร็กทอรีเดียวใน /FileMakerData ที่มีป้ายกำกับว่า "lost+found" มันสมเหตุสมผลแล้วที่สิ่งนี้เกิดขึ้นเนื่องจากฉันเปลี่ยนตรงกลางของโครงสร้างไดเร็กทอรี แต่ฉันไม่สามารถหาวิธีแสดงรายการฮาร์ดไดรฟ์โดยการเพิ่มขนาด เพื่อที่ว่าเมื่อสคริปต์ได้รับคำสั่งโดยพลการจากโฟลเดอร์ (เนื่องจาก AWS ติดตั้งไว้ด้านหลัง) ฉันยังสามารถเมานต์ไดรฟ์ขนาดที่ถูกต้องไปยังโฟลเดอร์ที่ถูกต้องในโฟลเดอร์ที่ถูกต้อง คำสั่ง.
รหัสปัจจุบันของฉันคือ:
# ชุดของดิสก์ที่จะละเว้นจากการแบ่งพาร์ติชันและการฟอร์แมต ใช้ท่อแยกออกจากกัน (กรณีนี้อาจทำเป็น OR ก็ได้)
บัญชีดำ="/dev/nvme0"
# รับรายการดิสก์กรองรายการที่อยู่ในรายการแล้วค้นหารายการอื่น
DEVS=($(ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$"))
ฉันพบ: https://linuxhint.com/list_disks_ubuntu/
แต่มันไม่ได้บอกวิธีรับพวกมันในอาร์เรย์อย่างง่าย และฉันไม่สามารถจัดเรียงตามขนาดด้วยคำสั่งนี้
ฉันเหนื่อย:
ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$" | เรียงลำดับ
และ
ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$" | เรียง -r
แต่ (ตามที่คาดไว้) สิ่งนี้ไม่ได้จัดเรียงตามขนาด มันเรียงตามชื่อ HDD ที่ส่งผ่าน:
/dev/nvme1n1
/dev/nvme2n1
และ
/dev/nvme2n1
/dev/nvme1n1
ตามลำดับ. นั่นคือสิ่งที่ฉันต้องการ เรียงตามขนาด ไม่ใช่ชื่อ
googling อื่น ๆ ไม่ได้เปิดความช่วยเหลือที่มีประโยชน์มากนักสำหรับการแยกขนาดและจัดเรียงค่าหลักตามขนาด ฉันใช้การติดตั้งขั้นต่ำของ Ubuntu 18.04 เนื่องจากเป็นเว็บเซิร์ฟเวอร์ ฉันมีสิทธิ์เข้าถึง df และ fdisk และฉันกำลังพยายามติดตั้งแพ็คเกจอื่นๆ อีกมากมาย แต่จะพิจารณาว่าควรพิสูจน์ว่าง่ายกว่ามากหรือไม่