【发布时间】:2013-03-19 17:39:38
【问题描述】:
我的 Ubuntu 10.04 服务器上有一些长时间运行的 bash 脚本,它们执行备份和数据库转储等操作。
我目前正在通过 cron 执行它们并将结果邮寄给我。但是,另外在 Web 界面中手动触发它们会很好。 (我不想给任何用户 SSH 访问权限,以便他可以触发脚本)
例如,在 PHP 中,有 exec 命令在脚本完成后获取脚本输出。这没有用,因为脚本持续时间超过 30 秒浏览器超时。 (而且我想监控进度)所以我目前一直在寻找一种方法来定期收集脚本输出或“拖尾”并通过 JavaScript 或 Pagereloads 或类似的东西显示它。
正如我所注意到的,例如,当您通过 Web 界面运行 apt 等系统命令时,Webmin 会以某种方式执行此操作。
我可以想象的一种方法是分叉脚本执行并将输出重定向到一个文件,而主进程正在页面重新加载/Ajax 请求上读取它。但这听起来像是一种解决方法:)
那么,有没有人对这个问题有好的解决方案?不需要是 PHP,也可以是 python 或 perl 或服务器端的其他任何东西。或者有这样的工具或库吗?
任何想法都非常感谢!
【问题讨论】:
-
你可以看看这些 PHP 解决方案:stackoverflow.com/questions/1281140/…
标签: php javascript ajax bash shell