NFS の履歴(No.5)


NFSで主従のサーバをつなぐ。
例えば、

主サーバ 192.168.0.10
従サーバ 192.168.0.20

として、主従ともにsargeorcainst.shでORCAをインストールする。

 

従サーバにnfs-kernel-serverをインストール。

# apt-get install nfs-kernel-server

# emacs /etc/exports

/home/ormaster 192.168.0.0/255.255.255.0(rw,no_root_squash)

/etc/exportsに上記の一行を追記して、

# /etc/init.d/nfs-kernel-server restart
 

主サーバに従サーバの/home/ormasterをnfsでmountする。
主サーバに/mnt/orca directoryを作成して、従サーバの/home/ormaster以下を主サーバの/mnt/orcaにmountする。

# mkdir /mnt/orca

主サーバの/etc/fatabに以下の1行を追記する。

192.168.0.20:/home/ormaster /mnt/orca nfs rw 0 0

主サーバをrebootとすると主従サーバのNFSによる接続完了。

まさかの時のためのバックアップにNFSを利用

処方箋と診療費明細書が残っていればデータの復旧は可能。 処方箋と診療明細書を/mnt/orca/data/orcaprintにpsファイルとして作成するようにすれば、主サーバがクラッシュしてもそれまでの診療データは残り、再手入力で復旧可能。
(psファイル作成directoryは何処でも良いが、directoryのpermissionを777にしておくこと。)

 

処方箋印刷プリンタ名がcanon1診療明細書プリンタ名がcanon2として割り当てられていて、印刷可能な状態と仮定する。

# emacs /usr/lib/cups/backend/ps10

#!/bin/sh
PSDIR=/mnt/orca/data/orcaprint
FILENAME=shoho.ps
if [ $# -eq 0 ]; then
echo "direct ps10:/ \"Unknown\" \"PS10 Writing\""
exit 0
fi 
cat $6 - - >> $PSDIR/$FILENAME
chmod 666 $PSDIR/$FILENAME
exit 0
lp -d canon1 $6

# emacs /usr/lib/cups/backend/ps11

#!/bin/sh
PSDIR=/mnt/orca/data/orcaprint
FILENAME=meisai.ps
if [ $# -eq 0 ]; then
echo "direct ps11:/ \"Unknown\" \"PS11 Writing\""
exit 0
fi 
cat $6 - - >> $PSDIR/$FILENAME
chmod 666 $PSDIR/$FILENAME
exit 0
lp -d canon2 $6

ps10 ps11を新規に作成後、

# chmod 755 /usr/lib/cups/backend/ps10
# chmod 755 /usr/lib/cups/backend/ps11
# rm /usr/lib/cups/backend/ps10~
# rm /usr/lib/cups/backend/ps11~

としてから、

# /etc/init.d/cupsys restart
http://localhost:631

でプリンタ ps10を追加する。

プリンタ名 ps10
デバイス PS10Writing
メーカ  Raw
モデル Raw Queue

ps11も同様に

プリンタ名 ps11
デバイス PS11Writing
メーカ  Raw
モデル Raw Queue

ORCA 出力先プリンタ割り当て情報の設定画面で、canon1をps10、 canon2をps11に変更する。

 

主サーバのデータを従サーバにバックアップする。
主サーバに
/usr/local/bin/bkorcaを作成。スクリプトは、

/etc/init.d/jma-receipt stop
sudo -u orca pg_dump -O orca > /mnt/orca/data/orca.dump
/etc/init.d/jma-receipt start

作成後は # chmod 755 /usr/local/bin/bkorcaを実行。

 

従サーバにデータをリストア。
従サーバに
/usr/local/bin/rstorcaを作成。スクリプトは、

/etc/init.d/jma-receipt stop
sudo -u orca dropdb orca
sudo -u orca createdb -EEUC_JP orca
sudo -u orca psql -e orca < /home/ormaster/data/orca.dump
apt-get --reinstall install jma-receipt
/etc/init.d/jma-receipt start

作成後は # chmod 755 /usr/local/bin/rstorcaを実行。

 

午前の診療が終了したら主サーバでbkorcaを実行。食事に出かけます。
食事が終わったら従サーバでrstorcaを実行。リストア成功を確認したら/mnt/orca/data/orcaprintのファイルを削除。

 

shoho.ps meisai.psはkghostviewでプレビューできる。
pdfに変換するには、

$ pstopdf shoho.ps
$ pstopdf meisai.ps

とすれば、windowsでもacrobatReaderでプレビューできる。

 

午後診療終了時も主サーバでbkorcaを実行。
翌朝、従サーバでrstorcaを実行。
午前の診療で主サーバがクラッシュした場合、
従サーバにて診療を続行する。昼休みに従サーバの/home/ormaster/data/orcaprintのshoho.ps meisai.psを使って手入力でクラッシュ前のデータを復旧する。