我有一个小型NAS服务器(QNAP TS-210),机载Linux有限。我在本地SVN守护程序中运行挂钩时遇到问题。如果我直接从命令行运行它们,一切都OK。如果SVN尝试将它们作为钩子运行,或者如果它们被添加到crontab然后CRON尝试运行它们,则两者都会失败。
我被告知这是由于运行这些脚本/钩子的用户之间的差异。我通过SSH以“admin”身份登录到我的nas,并假设CRON和SVN都在“root”下运行。似乎root没有获得足够的目标文件夹权限(我使用SVN post-commit-hook将存储库导出到某个本地文件夹)或运行SVN / CRON(SVN也在pre-revprop-change hook上失败,即使它仅包含exit 0
,因此我假设SVN根本无法运行挂钩。或者这可能有所不同?
编辑:如何强制SVN在“admin”下运行,或者如何为“root”设置足够的权限,这样它就可以运行SVN钩子(“admin”)?
编辑:我的钩子脚本位于/share/Sys/svn/tools_and_examples/hooks
,因此,调用
ls -lh /share/Sys/svn/tools_and_examples/hooks
结果如下:
-rwxrwx--x 1 trejder everyone 147 Jun 24 14:33 post-commit.cron*
-rw-rw---- 1 admin administ 1.9k Jun 25 12:20 post-commit.tmpl
-rw-rw---- 1 admin administ 1.6k Jun 25 12:20 post-lock.tmpl
-rw-rw---- 1 admin administ 2.2k Jun 25 12:20 post-revprop-change.tmpl
-rw-rw---- 1 admin administ 1.5k Jun 25 12:20 post-unlock.tmpl
-rw-rw---- 1 admin administ 3.3k Jun 25 12:20 pre-commit.tmpl
-rw-rw---- 1 admin administ 2.4k Jun 25 12:20 pre-lock.tmpl
-rw-rw---- 1 admin administ 6 Jun 25 12:29 pre-revprop-change
-rw-rw---- 1 admin administ 2.1k Jun 25 12:20 pre-unlock.tmpl
-rw-rw---- 1 admin administ 2.7k Jun 25 12:20 start-commit.tmpl
和ls -lh /share/Sys/svn/tools_and_examples/hooks/post-commit.cron
给了我这个:
-rwxrwx--x 1 trejder everyone 147 Jun 24 14:33 /share/Sys/svn/tools_and_examples/hooks/post-commit.cron*
希望,这会有所帮助。
答案 0 :(得分:1)
以管理员身份启动cron,而不是编辑
/etc/crontab
你应该使用
crontab -e
以管理员身份登录,并将管理员要使用自己的crontab启动的任何命令/脚本放入其中。如果我没错,它应该以“admin”用户身份启动它