B級root
自宅PC環境整備計画

先日、WiFiネットワークを更新したのでいろいろ計画メモ まぁ外に遊びにいけないので家の中でできることをしようと。 現在使っているiMacはlate 2015だから、結構古いと言えば古い。メモリ32GBなので更新するなら […]

続きを読む
B級root
左クリックができないMac

先日、いきなり左クリックができない、という事態になりまして… おそらくロジクールのマウスドライバの問題だったように思うのですが、確かな話ではないです。 復旧にかなり苦労したのですが、その顛末をば。 私の環境は27 iMa […]

続きを読む
B級root
WP to Twitter

WordPressにWP to Twitterいれてみたのでテスト

続きを読む
B級root
OsiriXを用いたPACSバックアップシステム(4)

簡単なしかけで構築できるのはよいんだけど、やはり最大の問題はデータ量があふれた場合です。勿論50GB単位でzipを分割すればいいんだけど、運用上週に一回しかメディア交換に行かないとなると2枚に分かれるとその週だけ2回行か […]

続きを読む
B級root
OsiriXを用いたPACSバックアップシステム(3)

さてあとはデータをまとめてBD-Rに書き出すだけである。WIindowsではBDドライブについてきたPowerBackupというソフトにスケジューラがあったのでこのスケジューラを利用して書き出しを行っていた。この点Macの方が簡単である。Cronで前エントリのディレクトリ切り替えを行いこれに引き続いて書き出し処理をすればいいだけだからだ。問題は…Windowsでもそうだったのだけど、コマンドラインでBD-Rに書き出す方法である。検索してみるとhdiutilというコマンドがあるらしい。これでディスクイメージの制作もできるのでディスクイメージの作成と焼き付けを行う。

もしこのメディアをMacでしか扱わないのであればdmg形式で作成すればよい。自動的に圧縮がかかるのでBDRをドライブに入れれば(反応はおそいものの)OsiriXでそのままアクセスできる。

ウチの場合、このメディアが必要になるときと言うのは何らかの原因でメインサーバが壊れたりストレージが消失した状況で、相当に混乱している可能性がある。なんだかんだといってもMacが多数転がっているわけではないので必ず読めることを優先してiso形式にした。またメディア不良で書き込みエラーの可能性もあるので手動作業でもできるように引数でデータベースディレクトリを選択できるようにした。圧縮にはzipを使っているがこの一時ファイルはすぐに削除。デイスク

#!/bin/csh
#引数処理ルーチン
switch ($#argv)
case 0:
set source="DICOM2"
echo "DICOM2 is the sourcefile"
breaksw

case 1:
switch ($1)
case 1:
set source ="DICOM"
breaksw
case 2:
set source="DICOM2"
breaksw
case 3: set source = "DICOM3"
breaksw
case 4:
set source = "DICOM4"
breaksw
case 5:
set source = "DICOM5"
breaksw
default :
set source = "DICOM2"
breaksw
endsw
breaksw
default :
set source="DICOM2"
breaksw
endsw

set workdirectory = "/Volumes/DATA"
cd $workdirectory
set currentdate = ` date +'%Y%m%d%H%M%S'`
set targetname = $currentdate".iso"
set targetzip = ${workdirectory}"/temp/"${currentdate}".zip"
if ( ! -d ./temp ) mkdir temp
set targettar = ${workdirectory}"/temp/"${targettar}
echo $targetzip "を作成します"
zip -qr9 $targetzip $source
##making iso image
hdiutil makehybrid -o $targetname temp -iso -udf -udf-volume-name $currentdate

set devicename = `hdiutil burn -list | grep "USB" | tail -n 1 | sed -e "s/^.//"`
echo $targetname "をBD-Rに書き込みます"
#echo "BD-Rは"$devicename"です”
#hdiutil burn -device "${devicename}" $targetname
drutil burn $targetname
echo "BD-R 書き込み終了しました。"

@ isonumber=`ls *.iso |wc -l `
echo "ISO file count=" $isonumber
ls -la *.iso
while ($isonumber >5)
set deletefilename = ` ls *.iso |sort | head -n 1`
echo "delete file name is " $deletefilename
rm $deletefilename
echo $deletefilename"を削除しました"
@ isonumber = $isonumber - 1
end
echo "テンポラリファイルを削除します"
rm -drf ./temp
drutil tray close

実際の焼き付けにはデバイス指定がhdiutilではかなり複雑なのだけどdrutilを使うと簡単なのでこちらを使うように変更した。

あとは2つのスクリプトをweeklyとでも名付けたスクリプトにまとめてcrontabに登録すればよい。

続きを読む