실행 중인 시스템의 마운트 지점을 확인하고 확인하기 위해 웹에서 다음 샘플 스크립트를 가져왔습니다.
질문:/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)