这是一个难题,我希望你能帮助我。 客户希望在通过cgi脚本上传文件47分钟后发送欢迎信。 我写了一个例程发送这封信,然后我试图用Linux的“at”命令来执行它。
当这不起作用时,我在/ cgi-bin目录中设置了以下testing。
底线是:当由apache调用时,“at”命令不起作用。 有没有办法解决?
谢谢,
Rob Young
testing文件 -------------------------------------------------- ------------------------- $> cat test1.pl #!的/ usr / bin中/ perl的 #这是对“在”LINUX命令的testing,当从APACHE中调用时 打印“Content-type:text / html \ n \ n”; my @ lt = localtime(time()+ 60); 我的$ cmd =“echo”/path/to/test2.pl“| at $ lt [2]:$ lt [1]”; 打印$ cmd; 系统($ CMD); $> cat test2.pl #!的/ usr / bin中/ perl的 我的$ cmd =“echo”它跑了!“> it_ran.txt”; 系统($ CMD); 命令行演示 -------------------------------------------------- ---------------- $> rm it_ran.txt rm:不能删除`it_ran.txt':没有这样的文件或目录 $> ./test1.pl 内容types:text / html echo'/path/to/test2.pl'| 在20:28上午55在2011-08-15 20:28 $> atq 55 2011-08-15 20:28一个ryoung $>date 星期一8月15日20:27:11 CDT 2011 $> cat it_rat.txt cat:it_rat.txt:没有这样的文件或目录 $>date 星期一8月15日20:28:01 CDT 2011 $> cat it_ran.txt 它跑了! APACHE演示 -------------------------------------------------- ---------------------------------------- 然后通过浏览http://www.MYSERVER.com/cgi-bin/test1.pl来调用相同的脚本 [浏览器输出: echo'/path/to/test2.pl'| 在20:30 ] $>date 星期一8月15日20:30:40 CDT 2011 $> cat it_ran.txt cat:it_ran.txt:没有这样的文件或目录
在脚本中指定at的完整path。 更不用说你的it_ran.txt文件了。 如何知道该文件应该存放在哪里? 它可能试图写入根目录并失败。
你应该使用错误检查 。 检查系统命令的结果代码或本身。
程序和调用返回错误,以帮助您正确处理exception。