ファイルを生成して結果を追加するシェルスクリプト

ファイルを生成して結果を追加するシェルスクリプト

次のスクリプトは1時間ごとに実行されます。このスクリプトは、実行されるたびに新しいファイルを生成します。
最初のechoはヘッダーをプッシュし、forループは結果をプッシュします。

しかし、私が望むものは次のとおりです。

  • ヘッダーは 1 日に 1 回だけファイルに入力し、for ループの結果を同じファイルに継続的に追加する必要があります。
  • 1日に1つのCSVファイルのみを生成する必要があります。
  • result_somethingという名前の古いファイルをすべて削除する必要があります。

私が持っているコード

echo "collectiontime,hostname,diskusage,directory" > /home/result_$CURR_TIME_EPOCH.csv

for i in /data01 /opt /opt/splunk /opt/splunk/var/lib/splunk/kvstore /opt/splunk/var/run/searchpeers /opt/splunk/var/run
do
   T=`sudo du -sh $i 2> /dev/null`
if [ $? -eq 0 ]; then   
   T=`echo $T | awk '{print $1","$2}'`
   echo `date +%s`,$HOSTNAME,$T  
fi

done >> /home/result_$CURR_TIME_EPOCH.csv

ベストアンサー1

ファイルが存在するかどうかをテストし、存在しない場合:エコーヘッダー:

if [ ! -f "/home/result_$CURR_TIME_EPOCH.csv" ]; then 
    echo "collectiontime,hostname,diskusage,directory" > "/home/result_$CURR_TIME_EPOCH.csv"
fi

おすすめ記事