2016-12-16 3 views
0

crontabで実行するスクリプトを作成しようとしていますが、crontabデーモンで使用しようとするとコマンドの場所に問題があります。find:git:crontabのスクリプトでそのようなファイルやディレクトリがありません

既にスクリプトでいくつかのテストを行い、正常に動作しているようです。ここで

は次のとおりです。

# I add this cd because of crontab location 
cd ~/Documents/gitrepobackup/  

find . -type d -depth 1 -exec git --git-dir={} --work-tree=$PWD/{} fetch origin \; >> git_backup_update.log 2>&1 

そして、これは私がそのログを受け取る出力されます:

find: git: No such file or directory 

また、これは私がcrontabファイルに追加したエントリです:

* * * * * ~/Documents/gitrepobackup/git_backup_update.sh 

誰でも?

+0

あなたの 'PATH'。一般的な 'cron'の実装では、_crontab_:PATH =/bin:/ usr/bin:...に環境変数を設定することができます。代わりに、 'git'への絶対パスを渡します。 '/ usr/bin/git' –

+0

ありがとうルスラン、それは行く方法の一つですが、私は 'git'を作り、場所を見つけてスクリプトに追加しました。 – SipriusPT

答えて

0

http://man.cx/crontab(5)にあるように、PATH環境変数は/usr/bin:/binに設定されています。 gitがそれらの場所のいずれかにない場合、スクリプトはそれを見つけられません。独自のPATH環境変数を設定したい場合は、それを設定するか、PATHに見つからない実行可能ファイルへの絶対パスを使用します。

0

調整があり、これを行うために他の方法がありますが、私は唯一のgitとの問題を抱えていたため、私が作った、

which git 

はそれがあった場所を発見し、ちょうどgitの場所を追加し、

find . -type d -depth 1 -exec /usr/local/git/bin/git --git-dir={} --work-tree=$PWD/{} fetch origin \; >> git_backup_update.log 2>&1 
関連する問題