特定のフォルダに多くのzipファイルがあります。毎日ファイル名とファイルサイズをCSV形式でキャプチャし、crontabに入れて毎日報告し、各レポートにメールで送信しようとします。
ファイルの場所/somedirectory/archive/test
:
-rw-rw-r--+ 1 AAAA AAAA 9.3M May 30 17:09 XXXXX_20140530_0401_28.txt.gz
-rw-rw-r--+ 1 AAAA AAAA 9.3M May 30 17:09 XXXXX_20140530_0401_29.txt.gz
-rw-rw-r--+ 1 AAAA AAAA 9.3M May 31 17:09 XXXXX_20140531_0401_01.txt.gz
それでは、毎日実行して毎日準備するのと同じCSVをキャプチャするcronjobを作成したいと思います。
例test30052014.csv
:
"File Name","size","date"
"XXXXX_20140530_0401_28.txt.gz", "9.3","May 30"
"XXXXX_20140530_0401_29.txt.gz", "9.3","May 30"
test31052014.csv
:
"File Name","size","date"
"XXXXX_20140531_0401_01.txt.gz", "9.3","May 31"
ベストアンサー1
これを行う簡単な方法はスクリプトを書くことです。
#!/bin/bash
echo "File Name,Size,date" > /tmp/output_file
ls -l --time-style=+%m.%d.%Y /path/to/file |grep -v "^total|^d"|awk '{print $NF","$4","$5 }' >> /tmp/output_file
これにより、lsで始まる合計が削除され、ディレクトリは除外されます。