2012/10/28

DVDイメージを一括mount

DVDのコピーが違法行為なので、意味がないけど。
DVDイメージコピーをDLNAサーバに突っ込んでおくと、いちいちDVDを入れ替えなくてもDLNA機器のリモコン操作だけで次々見れるので、快適。というわけで、DVDイメージを一括でmount/unmountするscript。FreeBSD用。むかーしむかーしにイメージを作っていたという人にしか役に立たないけど。
ネットで視聴なら、こんなことしなくてもリモコン操作だけでラクラクだけどね。

一括マウント。マウント先は/media。DVD毎にフォルダを分けてイメージを作成したと想定。

#!/usr/local/bin/bash
FILES=$(/usr/bin/locate ISO | /usr/bin/grep '^/int.*ISO$')

for isofile in $FILES
do
  devnum=$(/sbin/mdconfig -a -t vnode -f "${isofile}")
  dir=$(/usr/bin/dirname ${isofile}|/usr/bin/sed 's/\.ISO$//')
  name=$(/usr/bin/basename $dir)
  /bin/mkdir /media/$name > /dev/null 2>&1
  /sbin/mount -r -t cd9660 /dev/$devnum /media/$name
done

一括アンマウントは

#!/usr/local/bin/bash
DEVS=$(/bin/ls /dev/md* |/usr/bin/grep -v ctl)

for target in $DEVS
do
  num=$(/bin/echo $target|/usr/bin/sed 's/^.*md//')
  /sbin/umount $target
  /sbin/mdconfig -d -u $num
done
/bin/rmdir /media/*

スクリプトは可読性を高めるため、bash用の拡張構文を使用。たいしたことはやっていないので、/bin/sh の範囲でも書けるけど、仕事でメンテナンス性の高いコードを書けるよう、普段から練習。


クックブックは電子書籍の方が便利だと思う。O'Reilly Japan - bashクックブック



1 件のコメント :

  1. muninで監視していると利用率100%で警告が飛んでくるので、muninのdfプラグインのEXCLUDEFSにcd9660を加えた。

    返信削除

Comments on Google+: