crontabでGRASSを動かすときのメモ。
crontabは定期的にコマンドを実行するためのコマンドなわけだが,特徴として,環境変数が保持されない,ということがあげられる。なんでそうなのかは,きっと理由があるのだろう。
ただちょいと困ったことに,GRASSの上でcrontabを使おうとすると,この環境変数が無いことが原因でGRASSのコマンドが使えなかったりするわけですよ,これが。
ということで結構うんうん悩んだので,解決法のメモ。
私の場合,CentOSにGRASSをインストールしているという変則的な環境なわけですが,GRASS(6.2です)の起動時には,
/usr/local/bin/grass62
というシェルスクリプトが走ることになります。
で,こいつの中身を見てみると実に単純で,
/usr/local/grass-6.2.3/etc/Init.sh
というスクリプトを走らせろ,としか書いてないわけです。
ならばということで,そいつを見に行くと,
# Set the GRASS_PERL variable
GRASS_PERL=/usr/bin/perl
export GRASS_PERL# Set GRASS version number for R interface etc (must be an env_var for MS-Windows)
GRASS_VERSION="6.2.3"
export GRASS_VERSION# Get the command name
CMD_NAME=grass62
(・・・以下略)
的なことが書かれておりますので,このうちGRASSの実行に必要な環境変数をcrontabで使用するスクリプトに登録して完了です。
で,どこが必要かというと・・・,すみまんせん,実際に動いたスクリプトを間違えて消してしまったので,どれか分かりません(汗
ということで,これからもう一度作業ですw