2016-12-26 3 views
0
私は次のように私のcronコマンドは、カスタムシェルから実行するようにしたい

クローンタブカスタムシェルを実行するcron

SHELL=/bin/cron-launcher.sh 
* * * * * test echo "toto" >> /tmp/shell.log 

問題は、私は自分の殻を指定した場合、ファイル/tmp/shell.logが空であることです。

#!/bin/bash -e 

#Script use to launch cron tasks 

set -e 

SHELL="/bin/bash -e" 
LOGDIR="/var/log/cronlauncher/" 

echo "$USER" > /tmp/test.log 

のcronを起動するために使用されるユーザーは非常によく、ファイル/tmp/test.logに出力されますが、クーロンからcronコマンドecho "toto"は次のように

私のカスタムシェルのコンテンツがありますファイル/tmp/shell.logに出力されることはありません。

カスタムシェルでcronコマンドを正しく実行させるにはどうすればよいですか。

これは、cron-launcher.shスクリプトをラッパーとして機能させるためです。以下は

私は/ var/log /のcronの抽出物である:

12月26日午前15時55分01秒bf7fe8653ac9 CROND [658]:(テスト)CMD( "TOTO" をエコー>> /tmpに/シェル。

+0

は '、それはbashスクリプトです。 – Cyrus

+0

それは本当ですが、私はシェルのように '行為'にしたいです –

+0

またはより簡単にシェルの間のラッパーとして動作する –

答えて

0

問題がシェルに解析された第2引数を実行することによって解決されたcron-launcher.sh

FACはそのクーロン

からコマンド

SHELL=/bin/cron-launcher.sh * * * * * test echo "toto" >> /tmp/shell.log

は、シェルcron-launcher$2として解析されます。

そこで私は次のように私のコードを変更する必要がありましたジュスト:cronの-launcher.sh`は何シェルではありません

#!/bin/bash 

#Script use to launch cron tasks 

SHELL="/bin/bash" 
LOGDIR="/var/log/cronlauncher/" 

#echo "$USER" >> /tmp/test.log 
COMMAND="$2" 
eval $COMMAND 
関連する問題