インフラ仕事のメモ書きでございます。
バッチ用プログラムを書いた時に一々プログラム側でログの出力をするのが面倒って時に使えます。 ログの出力先に指定して、dateコマンドを使ってログファイルを出力します。 サンプルcron 0 0 * * * /bin/sh /root/batch.sh > /root/log/bat_`date +%Y%m%d`.log ですが上記のままだとエラーに・・・ 上記のままだと以下のエラーが出力されます。 /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file 原因は「%」でした。 cronだと「%」はコマンドの終わりと解釈されるようです。 なのでシングルクォートが閉じられていない等のエラーが出ていました。
シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く