Найдите диски, на которых не смонтированы какие-либо разделы/LV.

С Баш:

for f in db_[0-9]*_[0-9]*; do 
    e_time="${f:14:10}"    # extracting 'earliest time'
    if [ $e_time -ge 1488344400 ] && [ $e_time -le 1497499200 ]; then 
        echo "$f"
    fi
done
0
31.12.2019, 18:55
1 ответ

Нашел решение, которое работает для меня:

aAllDisks=($(/usr/bin/lsblk --nodeps --noheadings --output NAME --paths))
aFreeDisks=()
for sDisk in "${aAllDisks[@]}"; do
    sMounts="$(/usr/bin/lsblk --noheadings --output MOUNTPOINT "${sDisk}" | grep -vE "^$")"
    if [ "${sMounts}" == "" ]; then
        aFreeDisks+=("${sDisk}")
    fi
done
echo "${aFreeDisks[@]}"

При этом сначала будут получены все установленные физические диски, а затем пройдено по ним. Если на диске нет монтирования, он будет собран для последующего использования. В приведенном выше примере я просто повторяю это.

0
28.01.2020, 02:58

Теги

Похожие вопросы