55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# This file must be executable to work! chmod 755!
|
||
|
|
||
|
# Look at what a host is exporting to determine what we can mount.
|
||
|
# This is very simple, but it appears to work surprisingly well
|
||
|
|
||
|
key="$1"
|
||
|
|
||
|
# add "nosymlink" here if you want to suppress symlinking local filesystems
|
||
|
# add "nonstrict" to make it OK for some filesystems to not mount
|
||
|
# choose one of the two lines below depending on the NFS version in your
|
||
|
# environment
|
||
|
|
||
|
[ -f /etc/default/autofs ] && . /etc/default/autofs
|
||
|
|
||
|
if [ -z "$MOUNT_NFS_DEFAULT_PROTOCOL" -o "$MOUNT_NFS_DEFAULT_PROTOCOL" == "3" ]; then
|
||
|
# Showmount comes in a number of names and varieties. "showmount" is
|
||
|
# typically an older version which accepts the '--no-headers' flag
|
||
|
# but ignores it. "kshowmount" is the newer version installed with knfsd,
|
||
|
# which both accepts and acts on the '--no-headers' flag.
|
||
|
#SHOWMOUNT="kshowmount --no-headers -e $key"
|
||
|
#SHOWMOUNT="showmount -e $key | tail -n +2"
|
||
|
|
||
|
for P in /bin /sbin /usr/bin /usr/sbin
|
||
|
do
|
||
|
for M in showmount kshowmount
|
||
|
do
|
||
|
if [ -x $P/$M ]
|
||
|
then
|
||
|
SMNT=$P/$M
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
done
|
||
|
|
||
|
[ -x $SMNT ] || exit 1
|
||
|
|
||
|
# Newer distributions get this right
|
||
|
SHOWMOUNT="$SMNT --no-headers -e $key"
|
||
|
|
||
|
$SHOWMOUNT | LC_ALL=C cut -d' ' -f1 | LC_ALL=C sort -u | \
|
||
|
awk -v key="$key" -v opts="$opts" -- '
|
||
|
BEGIN { ORS=""; first=1 }
|
||
|
{ if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
|
||
|
END { if (!first) print "\n"; else exit 1 }
|
||
|
' | sed 's/#/\\#/g'
|
||
|
opts="-fstype=nfs,hard,intr,nodev,nosuid"
|
||
|
else
|
||
|
# NFSv4
|
||
|
opts="-fstype=nfs4,hard,intr,nodev,nosuid,async"
|
||
|
|
||
|
echo "$opts $key:/"
|
||
|
fi
|