awk算术运算一例:统计hdfs上某段时间内的文件大小
计算hdfs指定目录中所有文件名中包含2011-04-24的文件大小,并换算成GB:
- $HADOOP_HOME/bin/hadoop fs -du /user/hdfs/s3/ifocus/*2011-04-24* |awk '{sum += $1}END{print sum}' |awk '{total=$1;base=1024*1024*1024;print total/base}'
-
#!/bin/bash
-
#
-
DIR=/log/tmp/cd
-
-
startdate="$1"
-
date1=$(date -d "$1" "+%s")
-
date2=$(date -d "$2" "+%s")
-
date_count=$(echo "$date2 - $date1"|bc)
-
day_m=$(echo "$date_count"/86400|bc)
-
-
for ((sdate=0;sdate<"$day_m";sdate++))
-
do
-
DAY=$(date -d "$startdate $sdate days" "+%F")
-
Size=$(~/hadoop-0.20.2-CDH3B4/bin/hadoop fs -du ${DIR}/*${DAY}* |awk '{sum += $1}END{printf "%u",sum}')
-
let a=${a}+${Size}
-
done
-
-
echo $a |awk '{total=$1;base=1024*1024*1024;print total/base}'