NFS

2023-04-19 (水) 10:35:05

WebORCAでは変更が必要な所があります(2023/4/19)

nfs-commonのインストール

# apt-get install nfs-common 

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

主サーバ 192.168.0.10
従サーバ 192.168.0.20

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

# apt-get install nfs-kernel-server

# nano /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 defaults 0 0

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

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

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

 

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

# nano /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 
/usr/bin/pdftops $6 - >> $PSDIR/$FILENAME
chmod 666 $PSDIR/$FILENAME
lp -d canon1 $6
exit 0

# nano /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 
/usr/bin/pdftops $6 - >> $PSDIR/$FILENAME
chmod 666 $PSDIR/$FILENAME
lp -d canon2 $6
exit 0

ps10 ps11を新規に作成後、

# chmod 755 /usr/lib/cups/backend/ps10
# chmod 755 /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を作成。スクリプトは、

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

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

 

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

$ sudo /etc/init.d/jma-receipt stop
$ sudo -u orca dropdb orca
$ sudo jma-setup --noinstall
$ sudo -u orca pg_restore -x -O -d orca /mnt/orca/data/orca.dump
$ sudo jma-setup
$ sudo /etc/init.d/jma-receipt start

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

 

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

 

shoho.ps meisai.pspdfに変換するには、

$ ps2pdf shoho.ps
$ ps2pdf meisai.ps

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

 

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