パスワードを忘れた? アカウント作成
360196 journal

mumumuの日記: ncftp + cron(2) 2

日記 by mumumu

過去にこんな日記を書いたことがあります。

コマンドラインでは実行できるスクリプトをcron経由でやると
どうしても実行できなかったのです。

今日詳細にログを吐き出させつつ、rootに実行結果をメール
させて中身を見てみたところ、、ncftpputやtarとかのコマンド
がnot foundになっているではないですか。。

つまりPATHが通ってなかったのです、、(´ー`;)(´ー`;)

crontab -eで編集するファイルにPATHを追加してあげたところ
あっさりと解決しました。多分/etc/crontabに素直に書けば、
実行できていたと思われます。(PATHがそこで定義されている為)

cronから実行されるスクリプト自体は、crontab -eを実行した
ユーザの権限で実行されているのですが、何故PATHが通らなく
なるのだろう、、(´ー`;) 謎でありまっす。

----

これで思う存分バックアップがとれるというものです、、(*´~`)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • crontab(5) [linux.or.jp] は、/bin/sh を起動するので
    ~/.bashrc で設定しているような特殊な設定は
    無効になるかもしれません [linux.or.jp]
    • umqさめ、コメントありがとうございます。

      1 ~/test.shを以下のように書き、実行権限を付加

      echo "printing environment valuable..."
      echo $SHELL
      echo $PATH

      2 この日記 [srad.jp]で書いたスクリプトを実行
        したユーザのcrontabに以下の記述を追加

      */1 * * * * ~/test.sh >> test.log

      3 ~/test.shの実行結果をtail -fで観察

      printing environment valuable...
      /bin/sh
      /bin:/usr/bin
      printing environment valuable...
      /bin/sh
      /bin:/usr/bin

      ・・・以下繰り返し

      ----

      ということで、/bin/shを起動するのはマニュアル通り
      そして、このユーザのPATHをbash上でechoさせると

      /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/ssh3.8p1/bin:
      /usr/X11R6/bin:/usr/local/bin:/usr/local/mysql/bin:

      等と言った具合に/etc/profileや~/.bashrcで設定した値が
      ごっそり出てきます。よってumqさめの仰る通りのようです。

      私はncftpの類を/usr/local/binにインストールしていたので
      失敗するのは道理と思われます、、が、/bin/tarまでnot found
      になっていたのは何故、、?(´ー`;)

      もう一度ログをチェックチェック(*´~`) 勘違いかもしれ
      ないっす。
      --
      # 無精、短気、傲慢、これ最強
      親コメント
typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...