web-dev-qa-db-ja.com

特定のユーザーでcronジョブを実行するにはどうすればよいですか?

私のcronとスクリプトのスキルは非常に貧弱ですが、ユーザー「cpc」によって5分ごとにジョブを実行する必要があります。そこで、スクリプトを作成して/ rootに残しました。

それについての私のcrontab-eエントリは次のとおりです。

0-59/5 * * * * /root/bi-kettle.sh

そして、このスクリプト(bi-kettle.sh)は次のとおりです。

#!/bin/bash
su cpc
cd /home/cpc/data-integration 
/bin/bash kitchen.sh -rep="01" -job="MainLoad" -user="admin" -pass="admin" -level="Basic"`

ただし、呼び出されたり実行されたりすることはありません。ここで何が欠けていますか?

前もって感謝します!

1
gtludwig

そのsuが失敗する理由であり、インタラクティブシェルを起動します。代わりに、cpcユーザーのcrontabに追加してみませんか? crontab -e -u cpc

4

スクリプトの権限はどのように見えますか?つまり、ls -l /root/bi-kettle.shを実行する場合、スクリプトはrootによって実行可能に設定されていますか?そうでない場合、修正はchmod +x /root/bi-kettle.shと同じくらい簡単かもしれません

0