0

我有一个小型 NAS 服务器(QNAP TS-210),板载有限的 Linux。我在本地 SVN 守护程序中运行挂钩时遇到问题。如果我直接从命令行运行它们,一切正常。如果 SVN 尝试将它们作为钩子运行,或者将它们添加到 crontab 中,然后 CRON 尝试运行它们,两者都会失败。

有人告诉我,这是由于运行这些脚本/挂钩的用户之间存在差异。我以“admin”身份通过 SSH 登录到我的 nas,并假设 CRON 和 SVN 都在“root”下运行。似乎 root 对目标文件夹没有足够的权限(我使用 SVN post-commit-hook 将存储库导出到某个本地文件夹)或运行 SVN / CRON(SVN 在 pre-revprop-change 挂钩上也失败,即使它包含 only exit 0,所以我假设 SVN 根本不能运行钩子)。或者也许这是不同的东西?

编辑:如何强制 SVN 在“admin”下运行,或者如何为“root”设置足够的权限,以便它可以像我一样(“admin”)运行 SVN 挂钩?

编辑:我的钩子脚本就是/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*

希望,这会有所帮助。

4

1 回答 1

1

对于以管理员身份启动的 cron,而不是编辑

/etc/crontab

你应该使用

crontab -e

以管理员身份登录并放置您希望管理员使用其自己的 crontab 启动的任何命令/脚本。如果我没记错的话,它应该以“管理员”用户身份启动

于 2012-06-25T12:16:55.100 回答