Cron環境変数


2

からログインシェルで正常に実行される単純なシェルスクリプトを実行していますがcron、実行されていません。何らかの理由で、シェルで実行されているときに実行されているとき/usr/local/binに、ユーザーパス上にありませんcron

環境はどこでcron決定されますか?

回答:


1

一般的に、のため/bin/shに確立された非ログイン環境から、これはコマンドの実行に使用されるデフォルトです。

ほとんどのバージョンのcrontabで追加の環境変数を設定できます。

PATH=/usr/local/bin:/usr/bin:/bin
@reboot whatever

詳細crontab(5)を確認してください。man 5 crontab


0

スクリプトが使用しているシェルを確認します。

crontabのシェルと変数は、/ etc / crontabで指定されています

x@x:~$ cat /etc/crontab 

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

shが使用するプロファイルファイルは、ユーザーのホームにあります。

x@x:~$ ls ~/.profile 
/home/x/.profile

このファイルの最後にPATH変数を追加できます(正しいユーザーのプロファイルファイルに追加していることを確認してください)

PATH="$PATH:/usr/local/bin"

または、独自のスクリプトに同じ行を追加できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.