ジョブ監視
バッチジョブ(PBS)で計算を流しているときに、自分のジョブが終わったのを確認して新たなジョブをqsubするシェルスクリプトを書く。
- 15分ごとにdoループの中を実行する。INTRVLの値は秒。
- qstatコマンドで拾われる文字列の中にjobnameがあるときは、まだ実行中なので何もしない。
- jobnameがないときは変数RSLTが空になるので、次のワーキングディレクトリにcdしてqsubする。
- breakでdoループを抜ける。監視を終了する。
#!/bin/sh INTRVL=900 while true do sleep $INTRVL RSLT=`qstat | grep jobname` if [ "$RSLT" = "" ] then cd directory-name ; qsub submit.sh break; fi done
簡単すぎるこのスクリプトを実行しっぱなしにすれば、少しは業務が楽になるはず。