我正在 Linux 服务器上编辑一个项目。每次更改源代码时,我都必须运行一个 shell 脚本。有没有办法将保存操作绑定到脚本文件。这样,当我更改源代码时,我就不需要手动运行脚本了。
就像 git commit 可以挂接 *.sh 一样。我想使用 zend studio 编辑服务器上的文件,当我保存文件时,它可以触发所需脚本的运行。
答案1
inotify
以形式使用inotify-tools
并在服务器上运行包含如下内容的脚本:
#!/bin/bash
while true
do
inotifywait -e modify /path/to/watched_file.txt && /bin/bash /path/to/your-script.sh
done
只要文件被写入,此脚本就会执行,但是列表可能必须-e
根据您的情况进行调整,请参阅man inotifywait
。
替代方案:使用一个 git 钩子。
答案2
我发现因克龙对于此类事情来说非常方便。它的工作原理类似于 cron — 您有用户和系统表,以及在这些表中列出的事件上触发的操作。这样,您不必为每个观察者始终运行专门构建的脚本。
请注意,虽然该项目尚未停止,但也不是很活跃,因此不要期待太多新功能。它也不是非常普及,因此如果它有一些安全漏洞,我也不会感到惊讶 — 我不会在高调、关键的多用户服务器上提供每个用户的 incron 表。