ログローテートによる日レセの再起動
概要
日医標準レセプトソフトを2台運用するため主従環境を構築した場合、dbredirectorにより更新ログがファイルに出力されます。
上記ログファイルのファイルサイズが肥大化し、OSの上限に達した場合、日レセのサーバプロセスが起動できなくなるため、ログをローテートさせ、起動できなくなることを防いでいます。
ログのローテートの処理中に、日レセのサーバプロセスを再起動しているため、ローテート処理が日レセ入力中である場合、クライアントが切断されてしまうため、注意が必要です。
実際の処理の流れ
・anacron によりAM7時30分に /etc/cron.daily/logrotateが実行される。
↓
・設定ファイル:/etc/logrotate.d/jma-receiptがlogrotateにより実行される
参考:ログローテートの設定ファイル
/etc/logrotate.d/jma-receipt
/var/lib/jma-receipt/dbredirector/*.log { rotate 6 daily compress missingok postrotate /etc/init.d/jma-receipt restart 2>&1 > /dev/null endscript }
/var/lib/jma-receipt/dbredirector/ 内に[*.log]が存在する場合、日レセの再起動をおこない、 6世代分のログをローテートする動作となる。
事例:日レセを起動し、約5分程度でクライアントが切断される
anacronの挙動によりlogrotateがおこなわれていなかった場合、自動でlogrotateが実行されるため、クライアントが切断されます。
通常、24時間365日体制で日レセの運用をおこなうことを推奨していますが、この運用が困難である場合には、anacron の設定内容を見直していただく他、 anacronを削除し、cronによるcron.dailyの実行スケジュールを設定する必要があります。
※anacron、cronの詳細は、WEBや書籍等を参照してください