shell 脚本和 crontab 捕获 CSV 文件中的文件大小、名称和日期,然后通过电子邮件发送?

shell 脚本和 crontab 捕获 CSV 文件中的文件大小、名称和日期,然后通过电子邮件发送?

我在某个文件夹中有许多 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

现在我想创建一个 cronjob 每天运行并捕获我们每天准备的相同 CSV。

例子

测试30052014.csv:

"XXXXX_20140530_0401_28.txt.gz", "9.3","May 30"
"XXXXX_20140530_0401_29.txt.gz", "9.3","May 30"

测试31052014.csv:

"XXXXX_20140531_0401_01.txt.gz", "9.3","May 31"

生成 CSV 文件后,我应该也可以通过 crontab 发送邮件。

答案1

我将使用:

find . -maxdepth 1 -type f -exec stat --format=\"%n\",%s,\"%y\" {} \;

要通过电子邮件发送附加的 CSV,您可以使用:

find . -maxdepth 1 -type f -exec stat --format=\"%n\",%s,\"%y\" {} \; > output_$(date +%F).csv  && echo "PFA" | mail -s "subject" -a output_$(date +%F).csv

相关内容