0

レポート ツールは、ファイル システム (Unix ディレクトリ) に膨大な数のレポート/ファイルを生成します。宛先 (電子メール アドレスと共有フォルダー) のリストがあり、各宛先で異なるレポート/ファイル セット (重複する可能性があります) を配布する必要があります。

今後、レポートと宛先のリストのメンテナンスが混乱しないように、シェル スクリプトを使用してこのレポート配信を効率的に管理する方法があるかどうかを知りたいです。

これは非常に自由な質問ですが、制約は、Unix FS でレポートを管理する境界内で機能する必要があるということです。

4

1 に答える 1

0

レポートが送信される名前/場所を含む単純なテキスト ファイル (ここでは report_locations.txt) をいつでも作成できます。

ReportName1;/home/bob
ReportName2;/home/jim,/home/jill
ReportName3;/home/jill,/home/bob

この例では、レポート名が常に最初のフィールドになり、対応するレポートが配置される場所が続き、コンマ (または任意の区切り記号) で区切られます。

for次に、そのファイルをシェル スクリプトで読み取ります (この種の操作にはループを使用するのが好きです)。

#!/usr/bin/ksh93
for REPORT in $(cut -d";" -f1 report_locations.txt)
do
        LISTS=$(grep ${REPORT} report_locations.txt | cut -d";" -f2)
        for LIST in ${LISTS}
        do
                DIRS=$(echo ${LIST} | tr ',' '\n')
                for DIR in ${DIRS}
                do
                        echo "Copying ${REPORT} to ${DIR}"
                        cp -f ${REPORT} ${DIR}
                done
        done
done

ループの使用はfor少し過剰かもしれませんが (私はループに巻き込まれてしまいます)、仕事は完了します。

これがあなたが探しているものかどうかはわかりませんが、どちらかといえば出発点です。コードの説明が必要な場合は、遠慮なくお尋ねください。

于 2010-01-15T20:03:04.807 に答える