Ubuntu 10.04 サーバーで、バックアップやデータベース ダンプなどを実行する長時間実行される bash スクリプトを取得しました。
私は現在、それらを cron 経由で実行し、結果をメールで送信しています。ただし、さらに Web インターフェイス全体で手動でトリガーすることをお勧めします。(ユーザーがスクリプトをトリガーできるように、ユーザーに SSH アクセスを許可したくありません)
たとえば、PHP には、スクリプトの終了後にスクリプト出力を取得する exec コマンドがあります。スクリプトは 30 秒のブラウザ タイムアウトよりも長く続くため、これは役に立ちません。(そして進行状況を監視したい)そのため、現在、スクリプト出力を定期的に収集する方法、または「テーリング」してJavaScriptまたはPagereloadsなどを介して表示する方法を見つけることに行き詰まっています。
私が気づいたように、たとえば Webmin は、Web インターフェイスを介して apt などのシステム コマンドを実行すると、何らかの形でこれを行っています。
私が想像できる 1 つの方法は、メイン プロセスがページのリロード/Ajax 要求でそれを読み取っている間に、スクリプトの実行をフォークして出力をファイルにリダイレクトすることです。しかし、これはどういうわけか回避策のように聞こえます:)
それで、誰かがこの問題の良い解決策を持っていますか? PHP である必要はありません。Python や Perl など、サーバー側のものでもかまいません。または、そのようなツールやライブラリはありますか?
どんなアイデアでも大歓迎です!