(NTFS)ドライブが取り付けられているかどうかを検出します。それ以外の場合はインストールしてください。

(NTFS)ドライブが取り付けられているかどうかを検出します。それ以外の場合はインストールしてください。

USBドライブを起動時にマウントされていないNTFSパーティションのフォルダと同期したいと思います。私はこれを行うコマンドを見つけました:rsync -axu /media/USB/folder /home/user/folder。しかし、NTFSドライブをマウントしたことは間違いありません。

NTFSドライブがマウントされているかどうかをスクリプトでどのように検出できますか?私はLinux(Ubuntu)を使用しています。

これは修正された小さなスクリプトです(もともとここ)あなたの助けを借りて!

#!/bin/bash
## CONFIG SECTION
MOUNT_DRIVE=/dev/disk/by-id/scsi-SATA_Hitachi_HTS5416_SB3404GRGJRKBS-part5
MOUNT_POINT=/media/Windows/
# Local folder to sync with
SYNC_LOC=/media/Windows/vasia/Disertatie/
# Device folder to sync with
SYNC_DEV=Disertatie
#
## SCRIPT SECTION
#verify if the drives are mounted
if mount | grep -q "/media/Windows/"; then
#device is mounted
echo "Windows NTFS Drive is mounted!"
else
#device is not mounted,let's mount it
mount $MOUNT_DRIVE $MOUNT_POINT
fi
# Wait for thumbdrive to settle
sleep 10
# Synchronize thumbdrive with local
rsync -axu /media/DISK_IMG/${SYNC_DEV}/ ${SYNC_LOC}/
# Synchronize local with thumbdrive
#rsync -axu ${SYNC_LOC}/ /media/disk/${SYNC_DEV}/
# Inform user that synchronization is complete.
zenity --title "Thumbdrive Sync" \
       --info --text "File synchronization        complete."

ベストアンサー1

(Linuxでは)マウントポイントのリストをチェックするなど、特定のディレクトリがマウントポイントであるかどうかを確認する方法はいくつかあります。

if ! </proc/mounts awk '$2 == "/mount/point" {exit(0)} END {exit(1)}'; then
  mount /mount/point
fi

または、(移植的に)パスのファイルシステムのマウントポイントがそれ自体であることを確認してください。

if ! df -P /mount/point | grep -q '/mount/point$'; then
  mount /mount/point
fi

可能なマウントポイントがシンボリックリンクである可能性がある場合は、ディレクトリが親ファイルシステムとは異なるファイルシステムにあることを確認してください。

if df -P /mount/point/. /mount/point/.. | {
      read -r _; read -r dev1 _; read -r dev2 _
      [ "$dev1" = "$dev2" ]
    }; then
  mount /mount/point
fi

別の方法は自動インストーラディレクトリにアクセスすると、自動的にディレクトリをマウントします。たとえば、Linuxでは次のものを使用できます。自動ファイルシステム:

  • /etc/auto.masterその中の行のコメントを外します。/misc /etc/auto.misc
  • /etc/auto.misc、追加(マウントしたいパーティションとwindows_stuff -fstype=ntfs :/dev/sdz99交換)sdz99
  • シンボリックリンクの作成/home/user/folder/misc/windows_stuff
  • 実行/etc/init.d/autofs reload(またはautofsディストリビューションの構成を再読み込みするコマンド)を実行します。

おすすめ記事