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