人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cronでどうしてもshelが自動化できないのですが
わかる人教えてもらえますか?

/usr/local/analog/analog.sh というシェルがあります。
単体で実行できます。

Crontab -e

00 04 * * * /usr/local/analog/analog.sh
設定してあります。

service crond start

crond を起動中: cannot start crond: crond is already runnin
とでるので既に実行されていることは分かります。

だれか、わかる人 教えてください。

●質問者: itomune
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:00 analog sh シェル 自動
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kurukuru-neko
●27ポイント

1. 正しく保存されているか確認する

crontab -l

0 4 * * * /usr/local/analog/analog.sh


2. シェルを指定する

/usr/local/analog/analog.shの1行目に

動作させたいシェルを指定する。

(パスは実際に動作するシェルに変更)

例:1行目に#!の行を追加

#!/bin/bash

3. 実行権限の確認

ls -l /usr/local/analog/analog.sh

で該当ユーザーで実行権限がある

取り合えず確認なら

chmod 0555 /usr/local/analog/analog.sh

4. なんらかの出力がある場合

0 4 * * * /usr/local/analog/analog.sh >>/tmp/analog.log 2>>/tmp/analog-err.log

のように出力先を指定する。

5.cronの実行権限を調べる

もし/etc/cron.allowファイルがある場合

/etc/cron.allowに当該ユーザーを追加

する。

もし/etc/cron.denyファイルがある場合

/etc/cron.denyに当該ユーザーある場合

削除する。

6.crondの再起動

service crond restart

(/etc/rd.d/init.d/crond restart)

NECのCRON解説ガイド

http://www.express.nec.co.jp/linux/distributions/knowledge/syste...

http://cyberam.dip.jp/linux_foundation/system/cron_main.html

crontab

http://www.linux.or.jp/JM/html/cron/man1/crontab.1.html#lbAC

http://ja.wikipedia.org/wiki/Crontab


2 ● ito-yu
●27ポイント

id:kurukuru-nekoさんの書かれていないことだけ。

実行されているかどうかが心配ならばcronの実行ログを確認しましょう。

たいていのディストリでは /var/log/cron とかにあると思います

自分でシェル上で実行するときとcronで実行するときで環境変数が異なります。特にPATHが重要です。

シェルスクリプトの先頭で適切なPATH(シェルスクリプト中に現れるコマンドの存在するすべてのディレクトリ)を再設定してみてはいかがでしょうか。


3 ● oyajiman
●26ポイント

shellスクリプトが実行できないということですよね。単にcronで動かしたいんだったら

sh /usr/local/analog/analog.sh

じゃだめでしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ