2016-12-16 139 views
0

我想创建一个脚本来运行在crontab中,但是当我尝试在crontab守护进程下使用它时,我遇到了命令位置的问题。找到: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

谢谢Ruslan,那是一条路,我做了'哪个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 
相关问题