2

いいえのために使用される以下のスクリプト (/support/memexsvr_count) があります。アプリケーションにログインしている現在のユーザーの数。

手動で実行すると、crontab を介して実行されるため、出力が異なります。誰でもすぐにアドバイスできますか。

crontab

#Count
* * * * * /support/memexsvr_count.sh

脚本

x=`(date)`
y=`(ps -ef|grep memexsvr|wc -l)`
z=`expr $y - 3`
echo "Number of memexsvr processes at $x is $z" >> /support/memexsvr_count.log

手動運転:出力

Number of memexsvr processes at Tuesday, 10 September 2013 14:30:26 BST is 0

Cronjob : 出力

Number of memexsvr processes at Tue Sep 10 14:59:00 BST 2013 is 3
4

2 に答える 2

0

日付をどのように実行したいかについて、より明確にすることをお勧めします。次のページの下部に適切な表があります。

http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

マニュアルは次のようになっていると思います。

x=`date +"%A, $d %B %Y %r %Z`
于 2014-03-13T22:34:06.303 に答える
0

Cron ジョブは、制限された環境で実行されます。 man 5 crontab詳細については、または のようなものを実行する cron ジョブを設定してくださいenv > cron-env.txt

(現在は削除された) コメントで、スーパー ユーザー (つまりroot) としてログインしたと述べましたがroot、対話型シェルでのアカウントの環境は、cron ジョブ用にセットアップされた環境とは異なる可能性があります。

datecron ジョブ外のコマンドの出力は、ロケール設定の影響を受けているようです。$LANG$LC_TIME、および/または$LC_ALL特定の値に設定して、 のような出力を生成する可能性がありdateます"Tuesday, 10 September 2013 14:30:26 BST"

date現在のロケール設定に関係なく出力形式を制御するオプションを指定して呼び出すか、cron ジョブに適切な環境変数を設定することができます。後者を行うにはいくつかの方法があります。envコマンドcrontab自体を使用するか、スクリプトを変更するか、crontab. 詳細は改めてman 5 crontab

(これは基本的に、fedorqui の削除された回答が言ったことですが、残念ながら彼は回答を削除しました。)

于 2014-03-13T22:57:05.267 に答える