複数のリモートサーバーでレポートを実行し、中央サーバーから毎月インポートします。プロセス全体が自動化され、うまく機能scp
します。
問題は、データを収集するために別々のサーバーでこれらのレポートを手動で実行しようとすると問題が発生することです。これにより、中央サーバーは同じサーバーから多数のファイルをインポートでき、そのファイルを見つけて削除する必要があります。
私はこのプロセスをスマートにし、月間同じサーバー上で複数のファイルを処理する必要がないようにする方法についてのアイデアを探しています。
答え1
問題は、データを収集するために別々のサーバーでこれらのレポートを手動で実行しようとすると問題が発生することです。これにより、中央サーバーは同じサーバーから多数のファイルをインポートでき、そのファイルを見つけて削除する必要があります。
上記の内容から、リモートサーバーのファイルコピーを中央サーバーにアーカイブするだけでよいことがわかります。リモートサーバーにファイルのコピーを1つだけアーカイブすると、これを実現できます。
scp操作を実行するときは、すべてのファイルにリモートサーバー名とタイムスタンプを追加するだけです。したがって、中央サーバーに最新のファイルが表示されたら、古いタイムスタンプを持つファイルで古いファイルを上書きできます。
答え2
カップルオプション:
手動実行が別の場所に保存されるように生成されたレポートのワンタイム手動実行を分離し、自動化された月別レポートには常に毎月のレポートのみが含まれます。
または
レポートを生成するスクリプトは、その月のcronの月別レポートを呼び出すことができるオプションの引数を受け入れるため、ファイル名は "current-report.June"などと同じです。手動実行には特別なパラメータは含まれていないため、毎月のレポートをインポートするプロセスはその月のレポートのみをインポートできます(もちろん、この例は限られているため、月と年が必要になる可能性があるため、次のように決定できます)。 12を超えるレポートをアーカイブすると、毎月のデータに問題は発生しません。
上記と同様に、無限の変形があると確信しています。私は個人的に自動化されたスクリプト/レポートを一時スクリプト/レポートとは別に維持することを好みますが、これはもちろん変更が必要な場合は二重メンテナンスを意味します。したがって、誰かが一時レポートを実行するときに毎月のプロセスが中断されないように、レポートジェネレータに追加するパラメータに柔軟性を許可することをお勧めします。