#!/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