かいだんのーと

のーとの主の備忘録とか、やってることとか。

のーとの切れ端 - 【Linux】shellでPATHが通っていないと起きること

端的にいうと、これらが起きるという話。


シンタックスチェックはOK
・単体実行はできる
・でもcronからはスクリプトが実行されない
(/var/log/cron に実行ログは残る)


「きれはし」に書いて残している、Linux業務従事者(初心者マーク)が通る道シリーズです。

 

私は業務で使うスクリプトを初めて書く人でした。
他の方のスクリプトを見ると、大体はじめにこういう宣言がある。


#!/bin/bash

# Log-file
LOGFILE=/opt/hogetools/$(hostname)_hogehoge.log.`date "+%Y%m%d_%H%M%S"`

Q.これらってなんじゃい。なんのためにあるんじゃい。
A.スクリプトを動かすために必要。

こうなります。

#!/bin/bash ←bashで実行するよ!
# Log-file ←ログファイルはここに出すよ!
LOGFILE=/opt/hogetools/$(hostname)_hogehoge.log.`date "+%Y%m%d_%H%M%S"`

 

>こちらがわかりやすいです。

bash シェルスクリプト入門 -シェルスクリプトのいろは- | UNIX & Linux コマンド・シェルスクリプト リファレンス


>こんな方法もあるみたい。

cron実行時の環境変数を設定 – admin note


今回、2番目をフルパスで書いていなかった結果、長いこと(半日ほど)冒頭の状態が起きました。
上記はログファイルくらいしかパス指定が要らなかったのでLOGFILEにそのままフルパスを書いていますが、大体はログディレクトリを変数宣言して、各種ログファイルにもその変数をいれることが多いみたいですね。

またひとつお利口になりました。

ほんとそういう気分で仕事してます。