Files
fish/scripts/mount.sh
T

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