46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# 静默挂载 CKB NAS NetBackup(钥匙串取密 · 禁止 open smb:// 弹窗)
|
||
set -euo pipefail
|
||
|
||
CKB_IP="${CKB_IP:-192.168.110.101}"
|
||
NAS_USER="${NAS_USER:-fnvtk}"
|
||
SHARE="${SHARE:-NetBackup}"
|
||
MOUNT="${MOUNT:-/Volumes/NetBackup}"
|
||
|
||
# 已挂载(含 Time Machine 的 .timemachine 路径)→ /Volumes/NetBackup 指向真实挂载点
|
||
if mount | grep -q "@${CKB_IP}/${SHARE}"; then
|
||
actual="$(mount | awk -v ip="$CKB_IP" -v sh="$SHARE" '$0 ~ ip && $0 ~ sh {print $3; exit}')"
|
||
if [ -n "$actual" ] && [ "$actual" != "$MOUNT" ]; then
|
||
if [ -L "$MOUNT" ]; then
|
||
ln -sfn "$actual" "$MOUNT"
|
||
elif [ -d "$MOUNT" ]; then
|
||
rmdir "$MOUNT" 2>/dev/null || rm -rf "$MOUNT"
|
||
ln -sfn "$actual" "$MOUNT"
|
||
else
|
||
ln -sfn "$actual" "$MOUNT"
|
||
fi
|
||
fi
|
||
exit 0
|
||
fi
|
||
|
||
nas_pass() {
|
||
security find-generic-password -s karuo-nas-fnvtk -w 2>/dev/null && return
|
||
security find-internet-password -s "$CKB_IP" -a "$NAS_USER" -w 2>/dev/null && return
|
||
return 1
|
||
}
|
||
|
||
PASS="$(nas_pass)" || {
|
||
echo "❌ 钥匙串无 NAS 密码,先跑 tm_netbackup_cred_sync.sh" >&2
|
||
exit 1
|
||
}
|
||
|
||
KARUO_SUDO="${KARUO_SUDO:-/Users/karuo/Documents/个人/卡若AI/01_卡资(金)/金仓_存储备份/脚本/karuo_sudo.sh}"
|
||
|
||
if [ ! -d "$MOUNT" ]; then
|
||
"$KARUO_SUDO" mkdir -p "$MOUNT" 2>/dev/null || mkdir -p "$MOUNT" 2>/dev/null || true
|
||
"$KARUO_SUDO" chown "$(id -un):staff" "$MOUNT" 2>/dev/null || true
|
||
fi
|
||
|
||
# mount_smbfs 走钥匙串密码,不弹「连接服务器」对话框
|
||
mount_smbfs "//${NAS_USER}:${PASS}@${CKB_IP}/${SHARE}" "$MOUNT"
|