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
ディストリビューションの構成を再読み込みするコマンド)を実行します。