Điểm:1

Làm cách nào để tôi có được một mảng các ổ cứng hiện được đính kèm (nhưng không được định dạng/gắn kết) được sắp xếp theo kích thước (nhưng không có dữ liệu định cỡ trong mảng)

lá cờ es

Tôi muốn có một cách để viết kịch bản gắn ổ cứng vào một điểm gắn cụ thể. Sau một số trình duyệt, tôi tìm thấy: https://gist.github.com/trentmswanson/9c22bb71182e982bd36f

Điều này dành cho MS Azure và không bao gồm các loại ổ cứng cụ thể trong Cơ sở hạ tầng AWS.Nó đã sử dụng sdf trong nvm cần thiết. Tôi đã thực hiện những thay đổi đó và kết quả đã có hiệu quả. Tôi có một mảng chứa các điểm gắn kết:

# Điểm gắn kết tùy chỉnh cho 2 ổ cứng đầu tiên
sắp chữ -A MountPoint
MountPoint[1]="/FileMakerData"
MountPoint[2]="/FileMakerData/Backups"

và một dòng cố đọc kích thước ổ cứng "này" và gắn nó một cách thích hợp:

# Kiểm tra kích thước của ổ đĩa để kiểm tra kích thước đĩa phù hợp
DiskSize=$(Sudo fdisk -s ${DISK})

# Tính số GB và đặt lại biến thành số đó
để DiskSize=DiskSize/1048576

tiếng vang "$DiskSize"
# Sử dụng kích thước đĩa để xác định loại đĩa. 
# Giả sử rằng ổ Sao lưu sẽ không bao giờ nhỏ hơn 50 GB và Dữ liệu sẽ không bao giờ bắt đầu GT 50 GB
nếu [ "$DiskSize" -lt 50 ]; 
sau đó DiskType="Dữ liệu"
elif ["$DiskSize" -ge 50 ];
sau đó DiskType="Sao lưu"
fi

Sau đó, một hàm sẽ lấy điểm gắn kết từ mảng dựa trên giá trị.

get_next_mountpoint() {
    Loại thiết bị=${1}
    nếu (kiểm tra "$DeviceType" == "Dữ liệu" ); sau đó lặp lại "${MountPoint[1]}"
    elif ( kiểm tra "$DeviceType" == "Sao lưu" ); sau đó lặp lại "${MountPoint[2]}"
    khác
        # Tiếng vang trống để tập lệnh biết thoát khỏi vòng lặp
        tiếng vang ""
    fi
}

Có rất nhiều hơn nữa cho kịch bản. Tuy nhiên, vấn đề với quy trình này là ổ cứng được gắn vào /FileMakerData phải được tạo/gắn trước.

Khi tôi gắn kết/FileMakerData/Sao lưu, sau đó gắn kết/FileMakerData, tôi nhận được một thư mục duy nhất trong/FileMakerData được gắn nhãn "mất + tìm thấy". Điều này xảy ra là do tôi đột ngột thay đổi phần giữa của cấu trúc thư mục. Tuy nhiên, tôi không thể tìm ra cách liệt kê các Ổ đĩa cứng bằng cách tăng kích thước để khi tập lệnh nhận được thứ tự tùy ý từ các thư mục (Vì AWS đã gắn chúng ngược lại) tôi vẫn có thể gắn ổ đĩa có kích thước chính xác vào đúng thư mục theo đúng trật tự.

Mã hiện tại của tôi là:

# Một tập hợp các đĩa để bỏ qua việc phân vùng và định dạng; Sử dụng đường ống để ngăn cách (có thể đóng vai trò là OR trong trường hợp này)
DANH SÁCH ĐEN = "/dev/nvme0"

# Lấy danh sách đĩa lọc ra những cái được liệt kê sau đó tìm kiếm những cái khác
DEVS=($(ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$"))

Tôi đã tìm thấy: https://linuxhint.com/list_disks_ubuntu/ Nhưng nó không cho tôi biết cách lấy chúng trong một mảng đơn giản và tôi cũng không thể sắp xếp theo kích thước bằng lệnh này.

tôi đã thử:

ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$" | loại

ls -1 /dev/nvme*|egrep -v "${BLACKLIST}"|egrep "[0-9]n[0-9]$" | sắp xếp -r

nhưng (như mong đợi) điều này không sắp xếp theo kích thước. Nó sắp xếp theo tên ổ cứng được thông qua:

/dev/nvme1n1
/dev/nvme2n1 

/dev/nvme2n1
/dev/nvme1n1

Tương ứng. Đó chính xác là những gì tôi muốn, chỉ được sắp xếp theo kích thước, không phải tên.

Google khác đã không đưa ra nhiều trợ giúp hữu ích để trích xuất kích thước và sắp xếp giá trị chính theo kích thước. Tôi đang chạy bản cài đặt tối thiểu Ubuntu 18.04 vì đây là máy chủ web. Tôi có quyền truy cập vào df và fdisk và tôi đang cố gắng cài đặt nhiều gói khác nhưng sẽ xem xét nếu thấy nó dễ dàng hơn nhiều.

Điểm:1
lá cờ hr

Tôi thực sự không hiểu bạn đang cố gắng làm gì (hoặc tại sao), nhưng bạn có thể cân nhắc sử dụng lsblk với nó --json trình xác định định dạng đầu ra, dẫn kết quả tới jq nơi bạn có thể thực hiện lọc/sắp xếp tùy chỉnh.

Ví dụ:

$ lsblk -b --json | jq -r '
    .blockdevices[] | chọn (.name == "sda") |
    [ .con[] | select(.mountpoint == null and .name != "sda4") ] | sort_by(.size) | .[].Tên
'
sda1
sda2
Điểm:0
lá cờ cn

tôi nghĩ bạn muốn systemd.mount cho việc này. Thêm x-systemd.requires-mounts-for= cho bạn fstab mục tạo một đơn vị gắn kết tạm thời:

# fstab(5):
/dev/loop1 /opt/mnt ext4 noauto 0 0  
/dev/loop2 /opt/mnt/data ext4 noauto,x-systemd.requires-mounts-for=/opt/mnt 0 0

mà bạn có thể bắt đầu và dừng dưới dạng systemd.unit:

systemctl bắt đầu opt-mnt-data.mount

điều này sẽ gắn kết hệ thống tập tin theo một thứ tự nhất định.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.