URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91264
[ Назад ]

Исходное сообщение
"проблемы с cron в Debian"

Отправлено md0 , 29-Мрт-11 02:11 
Доброго времени суток.
Имею Debian lenny на котором стоит apache и svn
юзера коммитят в svn код через авторизацию ssh (т.е. каждый юзер заведён в системе).

Необходимо что бы после каждого коммита код автоматом обновлялся в директории апача (/var/www)

Вариант 1:
Как примерный человек я беру post-commit.tmpl хук и переименовываю его в post-commit а в него пишу
svn update /var/www/workingcopy

запускаю скрипт из под юзера который может коммитить и вижу что всё шоколадно.
коммичу из свн клиента (из винды) и ничего не работает.

добавляю такие строки:
echo $USER > /var/www/comm.log

После коммита вижу что файл создался но пустой. при этом вижу что владелец файла, как и полагается, мой user которым я коммитил.

Вариант 2, извращенский:
пишу скрипт на пхп который создаёт лок файл /var/www/commit.lck
добавляю в кронтаб для root скрипт (post-commit)
кронтаб его должен дёргать каждую минуту.
и он его дёргает. смело утверждает что с лок-файлом расправился но код так и не обновился.
пробую строку из кронтаба запустить рутом - всё работает.
добавляю в скрипт кроме echo $USER ещё echo $PATH и вижу что PATH=/usr/bin:/bin
а вот USER - ничего. пусто. просто пустая строка...

Собсно вопросы:
как и почему у меня echo $USER показывает пустоту (хотя из консоли команда показывает текущего юзера) и почему мой скрипт не отрабатывает как надо ни кроном ни хуком а из-под юзера работает?
я уже в растерянности и на часах час ночи.. :(


Содержание

Сообщения в этом обсуждении
"проблемы с cron в Debian"
Отправлено vg , 29-Мрт-11 10:38 
а чем mod_dav_svn не устроил?

"проблемы с cron в Debian"
Отправлено md0 , 29-Мрт-11 10:55 
> а чем mod_dav_svn не устроил?

а им всё равно ssh доступ надо. так зачем лишнее пихать?


"проблемы с cron в Debian"
Отправлено тень_pavel_simple , 29-Мрт-11 11:49 
>> а чем mod_dav_svn не устроил?
> а им всё равно ssh доступ надо. так зачем лишнее пихать?

man pam_env, man sshd_config
на предмет
AcceptEnv UsePAM и моного другого