Вы должны сравнить переменные среды.Я написал для этого простой сценарий bash:
#!/bin/bash
env
echo $PATH
type -a svn
cd /home/<username>
svn info
exit 0
И сохрани его в /home//crontest.sh
Затем вы выполняете код вручную и пишетерезультат в файл:
/home/<username>/crontest.sh > /home/<username>/hand_env
Затем в вашем crontab:
* * * * * /home/<username/crontest.sh > /home/<username>/cron_env
После этого у вас есть два файла, вы, вероятно, увидите, что между переменными среды есть некоторые различия.
Решение проблемы svn и cron состоит в том, чтобы установить переменные окружения в bash-скрипте обновления svn на те, которые получены вручную, это должно выглядеть примерно так (parts 2> / dev / null и exit 0 ОЧЕНЬ ВАЖНО ):
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X$
export MAIL=/var/mail/root
export _=/usr/bin/env
export PWD=/home/tv
export LANG=en_US.UTF-8
export HOME=/home/tv
export SHLVL=2
export LOGNAME=root
#export LESSOPEN=| /usr/bin/lesspipe %s
#export LESSCLOSE=/usr/bin/lesspipe %s %s
export SHELL=/bin/bash
svn update https://localhost/svn /var/www/<dir> 2>/dev/null
exit 0
Напишите этот скрипт, например, для./etc/init.d/skrypty/cron.sh Затем вы просто вставляете свой crontab (я сделал это как root)
* * * * * /etc/init.d/skrypty/cron.sh >/dev/null 2>&1