마운트 지점을 fstab과 비교

마운트 지점을 fstab과 비교

실행 중인 시스템의 마운트 지점을 확인하고 확인하기 위해 웹에서 다음 샘플 스크립트를 가져왔습니다.

질문:/etc/fstab주석 처리되지 않은 기존 마운트 지점을 비교 하고 강조 하고 싶습니다.만약에그들은 거기에 있습니다.

그리고 혹시 다른 해결방안이 있는지 여쭤보고 싶습니다!

#!/bin/bash
while read ip;
do
    echo "connecting to $ip";
    ssh root@$ip "until mount | grep -w \"/mnt/data\" >/dev/null;
     do echo mounting \"/mnt/data\"; mount \"/mnt/data\"; sleep 1; done && 
     echo Mounted on $ip"
done < ips.txt

답변1

이것은 트릭을 수행하는 것 같습니다

#!/bin/bash
mountpoints=( $(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab) )
for mount in ${mountpoints[@]}; do
   if ! findmnt "$mount" &> /dev/null; then
      echo "$mount is declared in fstab but not mounted"
   fi
done

답변2

DopeGhoti에서 빌려서awk 다음을 사용할 수 있습니다 comm.

마운트되었지만 /etc/fstab에는 없는 파일 시스템:

comm -23 <(mount|awk '{print $3}'|sort) <(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab|sort)

/etc/fstab에 있지만 마운트되지 않은 파일 시스템:

comm -13 <(mount|awk '{print $3}'|sort) <(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab|sort)

관련 정보