76 lines
2.5 KiB
Bash
Executable File
76 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Function to mount CIFS share with error handling
|
|
mount_cifs() {
|
|
local source="$1"
|
|
local mount_point="$2"
|
|
local options="$3"
|
|
|
|
# Create mount point if missing
|
|
if [ ! -d "$mount_point" ]; then
|
|
echo "Creating mount point: $mount_point"
|
|
sudo mkdir -p "$mount_point" || { echo "Mount point creation failed for $mount_point"; return 1; }
|
|
fi
|
|
|
|
echo "Mounting $source to $mount_point with options: $options"
|
|
if ! sudo mount -t cifs -o "$options" "$source" "$mount_point"; then
|
|
echo "Mount failed for $source. Check credentials and network."
|
|
return 1
|
|
fi
|
|
echo "Successfully mounted: $mount_point"
|
|
return 0
|
|
}
|
|
|
|
is_mounted() {
|
|
mountpoint -q "$1"
|
|
}
|
|
|
|
# --- Mount FRITZ.NAS ---
|
|
if ! is_mounted "/home/honney/mount/fritzNAS"; then
|
|
if ping -c 1 -W 1 "192.168.1.1" >/dev/null 2>&1; then
|
|
mount_cifs "//192.168.1.1/FRITZ.NAS" \
|
|
"/home/honney/mount/fritzNAS" \
|
|
"credentials=/home/honney/.cred/samba_credentials,uid=1000,gid=1000,vers=3.0,cache=none,nounix,noserverino,file_mode=0755,dir_mode=0755" \
|
|
|| echo "WARNING: FRITZ.NAS mount failed, continuing..."
|
|
else
|
|
echo "192.168.1.1 unreachable, skipping FRITZ.NAS"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
|
|
mount_points=("/home/honney/mount/Data" "/home/honney/mount/Media" "/home/honney/mount/Ripping" "/home/honney/mount/Apps")
|
|
share_names=("Data" "Media" "Ripping" "Apps")
|
|
|
|
# Determine which TrueNAS host is reachable
|
|
host=""
|
|
if ping -c 1 -W 1 "192.168.188.122" >/dev/null 2>&1; then
|
|
host="192.168.188.122"
|
|
echo "192.168.188.122 reachable, mounting shares..."
|
|
elif ping -c 1 -W 1 "100.64.0.3" >/dev/null 2>&1; then
|
|
host="100.64.0.3"
|
|
echo "192.168.188.122 unreachable"
|
|
echo "100.64.0.3 reachable, mounting shares..."
|
|
else
|
|
echo "Neither 192.168.188.122 nor 100.64.0.3 reachable, skipping TrueNAS mounts."
|
|
exit 0
|
|
fi
|
|
|
|
echo ""
|
|
|
|
for i in "${!mount_points[@]}"; do
|
|
mount_point="${mount_points[$i]}"
|
|
source="//${host}/${share_names[$i]}"
|
|
|
|
echo "Checking $mount_point"
|
|
if is_mounted "$mount_point"; then
|
|
echo "$mount_point already mounted"
|
|
else
|
|
echo "$mount_point unmounted"
|
|
mount_cifs "$source" \
|
|
"$mount_point" \
|
|
"credentials=/home/honney/.cred/trueNAS_credentials,vers=3.1.1,iocharset=utf8,rw,uid=1000,gid=1000,nounix,noperm,file_mode=0660,dir_mode=0770,hard,intr,cache=loose" \
|
|
|| echo "WARNING: $mount_point mount failed, continuing..."
|
|
fi
|
|
echo ""
|
|
done |