
apache停止してたら再起動させるcron
アパッチ停止時してたら再起動させるcronを設定したいのですが、cronに以下を設定してもうまくいきません。
set http=`ps aux | grep -v grep | grep -c http` ; if ( $http < 2 ) /usr/local/sbin/restart_apache
cronエラーとしてマスターユーザに以下エラーが来ます。
Syntax error: word unexpected (expecting "then")
シェルがX-Cron-Env: <SHELL=/bin/sh>であるという記述もありcron実行時にはshを使う?
ようなのですが。。。ググっても解決できずにいます!
thenとendifを入れてもだめです。
おそらく1行で実行する構文?がよくないのだと思っています。
セミコロン;とかを入れてみてもうまくいきませんでした。
どなたかおわかりでしょうか
No.2ベストアンサー
- 回答日時:
http=`ps aux | grep -v grep | grep -c http` ; echo $http |mail -s test root ; fi
uが余計ですね。
http=`ps ax | grep -v grep | grep -c http` ; echo $http
を使ってみてはいかがでしょうか?
auxになっていると行の長さが長すぎるためにhttpにマッチできません。
あと、crontabはSHELL=の値を見てもわかるとおり、デフォルトでsh (bshのこと) です。
cshの構文は使えません。
...というか、普通シェルスクリプトはcshでは書きません。
たしかに、BSD系OSのrootのシェルはcshですし、FreeBSDなんかtcshだったりしますが、それでもスクリプトは基本shで書きます。
あと、リスタートするのも/usr/local/etc/rc.d/apache22 restartとかではダメなんでしょうか? (スクリプトの正確な名前や位置はApacheのバージョン及びOSによって変わります)
最後に、BSD系OSもいろいろあるのでOS名とバージョンがあった方が答えやすいと思います。
確かに!auxではだめでした。知り合いにちょいと教えてもらい以下で改善です!
( ps -ax | grep -v grep | grep -q http ) || /usr/local/etc/rc.d/apache.sh start
ご協力ありがとうございました!
No.1
- 回答日時:
X-Cron-Envというのはよく分からないのですが、環境変数?
この変数を変更はできないんでしょうか?
おそらく、cron時にはshを使うのでしょう。
1行で書いているのは直接crontabに書いているからでしょうか?
シェルスクリプトを作って、それを実行させる方がきれいな気もしますし、
シェルスクリプトの中でシェルも指定(変更?)できそうです。
もし、shで1行で書くとしたら、
http=`ps aux | grep -v grep | grep -c http` ; if [ $http -lt 2 ]; then /usr/local/sbin/restart_apache; fi
でどうでしょうか?
ありがとうございます。うまく行きませんでした。
LINUXなら教えていただいた1行コマンドでいけますね
やろうとしてる事が単純なのでcrontabに直接1行で書いてしまいたいのです。
シェル変更に関しても/usr/local/bin/bash を先に入れて1行で試しましたが駄目でした。。
http=`ps aux | grep -v grep | grep -c http` ; echo $http |mail -s test root ; fi
念の為、上記試したところ、$httpに数値がはいってないようでした。
rootへ送信される本文は2となってしまいます。
set httpから初めてもhttpへ変数としてhttpの起動数を入れられてないようです。
cronの中で指定するときは何か特別なのが必要なのでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- UNIX・Linux メールアドレスにホスト名が入らないようにする設定 2 2022/06/23 21:06
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- JavaScript 指定時間になったら、WEBサイトの更新を自動で行うには…? 3 2022/04/28 22:14
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
posixでshellを起動したとき`da...
-
シェル 会話形式でエンターキ...
-
apache停止してたら再起動させ...
-
シェルスクリプトのbashとperl...
-
Kシェルに関して。
-
BシェルとBashの違い
-
シェルとシェルの間で環境変数...
-
UNIX(hp-ux)のコマンド履歴↑↓
-
本日日付のフォルダを作成する。
-
Linuxのファイル禁止文字
-
シェル内で自動ユーザ変更
-
『存在するかどうか分からない...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
batである文字列内に特定の文字...
-
SCコマンドでアクセス拒否
-
エクセルの表にヘンな枠が・・・
-
スクリプトのエラー「unexpecte...
-
pingは正常なのにtracerouteで...
-
ラズパイで『’test.service’をs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェル 会話形式でエンターキ...
-
export と set は違うの?
-
.cshrc ファイルについて
-
ターミナルが全く入力できない
-
Cシェル内でBシェルの様な関数...
-
ubuntuの端末の左にカレントデ...
-
シェルとシェルの間で環境変数...
-
シェルスクリプトのbashとperl...
-
Cシェルでのファイルからの入...
-
シェルスクリプトに関する問題...
-
違いについて
-
コンソールでの上下左右矢印ボ...
-
『存在するかどうか分からない...
-
31日前の日付はいつ?
-
BシェルとBashの違い
-
mac os x10.6.4のターミナルでp...
-
シェル(ksh)で変数にある文字列...
-
Tabキー補完や↑キーのヒストリ...
-
tcshなのにスクリプト構文中のs...
-
msys(cygwin)で、シェルスクリ...
おすすめ情報