Скрипт для поиска несмонтированных дисков

Автор: vlad_goreletsky
License: Public Domain

На некоторых системах fdisk -l , выполненная от простого пользователя, возвращает пустую строку (при коде возврата 0), поэтому скрипт следует выполнять с правами рута.

Листинг 1. unmounted_disks.sh

#!/bin/bash

DISKS=`fdisk -l | grep "/dev/" | grep -v : | cut -d" " -f1 | tr -d [:digit:] | uniq`
MOUNTDISKS=`mount | grep "/dev/" | grep -v tmpfs | grep -v pts | cut -d" " -f1 | tr -d [:digit:] | uniq`

counter=1
index=1
tmpvar=`echo $DISKS | cut -d" " -f"$counter"`
while [ "$tmpvar" != "" ]
do
    retgrep=`echo $MOUNTDISKS | grep "$tmpvar"`
    if [ "$retgrep" == "" ]
    then
    RDISKS[$index]=$tmpvar
    index=`expr $index + 1`
    fi
    counter=`expr $counter + 1`
    tmpvar=`echo $DISKS | cut -d" " -f"$counter"`
done

if [ "${RDISKS[1]}" == "" ]
then
echo ""
echo "     No unmounted disks... exit"
echo ""
sleep 2
elif [ "${RDISKS[1]}" != "" ]
then
    echo ""
    i=1
    while [ "${RDISKS[$i]}" != "" ]
    do
    echo "     Unmounted disk: ${RDISKS[$i]}"
    echo ""
    i=`expr $i + 1`
    sleep 1
    done
fi

Назад