📂
Synology NASでリモートフォルダマウントの再接続自動化
はじめに
Synology NAS(記事執筆時、DSM7.2.2)にはリモートフォルダ(CIFSまたはNFS共有フォルダ)をローカルにマウントする機能がFile Stationにあります。
しかし共有サーバー側で何かしらのトラブルが発生し、フォルダの接続が切断してしまった場合、自動で復旧する機能はなく、File Stationのマウントリストから再接続の操作をしなければ復旧しません。
この記事では問題を解決すべく、タスクによる接続チェックと再接続の自動化の設定を説明します。
/etc/fstabへの登録
リモートフォルダをFile Stationのマウントリストからアンマウントし、fstabへ登録します。
例:SBMの場合
/etc/fstabt
\\xxx.xxx.xxx.xxx\share /volumeN/mountpoint
cifs username=usr,password=pwd,iocharset=utf8,vers=3.0.2 0 0
※vers=でSMBのバージョンを指定しなければmount errorになります。
マウントポイントの再接続を行うシェルスクリプトの作成
mount.sh
#!/bin/bash
# マウントポイントを定義
MOUNT_POINT="/volumeN/mountpoint"
# マウントポイントがマウントされているかどうかを確認
if mount | grep "on ${MOUNT_POINT} type" > /dev/null; then
echo "${MOUNT_POINT} is already mounted."
# アクセステスト
if ls ${MOUNT_POINT} > /dev/null 2>&1; then
echo "Access to ${MOUNT_POINT} is successful."
else
echo "Access to ${MOUNT_POINT} failed. Remounting now..."
umount ${MOUNT_POINT}
mount ${MOUNT_POINT}
# 再度アクセスを確認
if ls ${MOUNT_POINT} > /dev/null 2>&1; then
echo "${MOUNT_POINT} successfully remounted and accessed."
else
echo "Failed to remount and access ${MOUNT_POINT}."
fi
fi
else
echo "${MOUNT_POINT} is not mounted. Mounting now..."
mount ${MOUNT_POINT}
# 再度確認
if mount | grep "on ${MOUNT_POINT} type" > /dev/null; then
echo "${MOUNT_POINT} successfully mounted."
else
echo "Failed to mount ${MOUNT_POINT}."
fi
fi
タスクスケジューラーへ登録
作成したシェルスクリプトをタスクへ登録し、お好みのスケジュール間隔で実行してください。
Discussion