这是我希望您能帮助我解决的一个难题。一位客户希望在通过 cgi 脚本上传文档后 47 分钟内发送一封欢迎信。我编写了一个例程来发送这封信,然后尝试使用 Linux“at”命令来执行它。
当这不起作用时,我在 /cgi-bin 目录中设置了以下测试。
************ 底线是:“at”命令在被 apache 调用时不起作用。有什么办法可以解决这个问题吗?
谢谢,
罗布·杨
测试文件 ------------------------------------------------------------------------------------------ $> cat 测试1.pl /usr/bin/perl 的 #! #这是在 APACHE 内部调用“at”LINUX 命令的测试 打印“内容类型:text/html\n\n”; 我的@lt=localtime(time()+60); 我的 $cmd="echo '/path/to/test2.pl' | at $lt[2]:$lt[1]"; 打印$cmd; 系统($cmd); $> cat 测试2.pl /usr/bin/perl 的 #! 我的 $cmd="echo ‘它跑了!’>it_ran.txt"; 系统($cmd); 命令行演示 ------------------------------------------------------------------ $> rm it_ran.txt rm:无法删除“it_ran.txt”:没有此文件或目录 $>./test1.pl 复制代码 内容类型:text/html echo '/path/to/test2.pl' | 于 20:28job 55 于 2011-08-15 20:28 $> atq 55 2011-08-15 20:28 a ryoung $> 日期 2011 年 8 月 15 日星期一 20:27:11 CDT $> cat it_rat.txt cat:it_rat.txt:没有此文件或目录 $> 日期 2011 年 8 月 15 日星期一 20:28:01 CDT $> cat it_ran.txt 它跑了! APACHE 演示 ------------------------------------------------------------------------------------------ 然后我通过浏览 http://www.MYSERVER.com/cgi-bin/test1.pl 调用相同的脚本 [浏览器输出: echo '/path/to/test2.pl' | 于 20:30 ] $> 日期 2011 年 8 月 15 日星期一 20:30:40 CDT $> cat it_ran.txt cat:it_ran.txt:没有此文件或目录
答案1
在脚本中指定完整路径at
。更不用说您的it_ran.txt
文件了。您怎么知道该文件应该存放在哪里?它可能正在尝试写入根目录并失败了。
你应该使用错误检查. 检查系统命令或其本身的结果代码。
程序和调用返回错误以帮助您适当地处理异常。