0

在 *NIX 框内有一个实际运行的 Java ServerPages (JSP) 应用程序,我在某种程度上以良好的权限管理它。这个想法是创建一个新的但非常简单的 JSP 页面来控制我在那里运行的一些 Korn Shell 脚本。所以目标是制作某种 HTML 表单,它将编写某种 scriptStatus.on / scriptStatus.off 文件:

#!usr/bin/ksh
# coolScript.sh
# This is my cool script that is being launched by cron every 10 minutes.

if [ -e scriptStatus.off ]
  then 
      # monitor disabled
  else
      # monitor enabled
fi

然后可以在运行脚本中检查它是否存在,因此可以轻松激活/停用它而无需实际处理 cron。如果所有这些都有意义,请告诉我,并且不要犹豫,根据需要提出尽可能多的问题。

提前非常感谢!

4

2 回答 2

2

您可能在这里遇到安全问题。考虑您有什么风险并采取适当的步骤来验证用户并确保他们被授权执行此操作。为此所需的步骤在某种程度上取决于您正在使用的 servlet 容器。

您不需要像 Apache Commons IO 这样的库来完成如此简单的任务。如果您不关心两个不同用户之间的竞争条件,则可以使用File.createNewFileFile.delete 。

File flag = new File("/path/scriptStatus.off");
String message;
if (flag.delete())
  message = "Script enabled.";
else if (flag.createNewFile()) 
  message = "Script disabled.";
else
  /* Maybe missing directory, wrong permissions, race condition. */
  message = "Error: script state unknown.";

cron 作业可以检查(空)文件是否存在,并采取相应措施。

于 2008-11-20T17:11:58.007 回答
1

可能是http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html#touch(java.io.File)

于 2008-11-20T17:11:13.217 回答