LINUX.ORG.RU

Сообщения Huxler

 

Помощь с редактированием скрипта

Форум — General

Добрый день, шеф дал задание: есть папка в ней больше 10000 файлов - надо написать скрипт чтобы он подсчитывал количество файлов сделанных каждый день, размер файлов сделанных в этот день.

Что-то в этом роде:

Дата Количество файлов Размер 01 июля 3567 32,8 02 июля 3232 21,1

Набросал легкий скриптик:

 find . -name '*' -printf '%Ad-%Ab %s\n' | awk  'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}' 
- но эта скотина не правильно подсчитывает количество файлов(добавляет лишние) Пример:

Date Quantity Size 26-Jul 871 4274.85

[root@server01 folder]# ls -l|grep -c 'Jul 26' 710 тоесть вместо 710 файлов обработало 871(( еще пробывал сделать так

#!/bin/bash
if [  $# -le 0 ]
 then  
   echo "Usage: $0 folderName"
   exit 1
 fi

folderName="$1"
for i in $(ls -l $folderName| awk '{print $6"."$7}' | sort | uniq | grep -v '^.$');
    do
        dt=$(echo "$i" | sed "s/\./ /g")
        echo $dt
        find  $folderName -type f  -exec ls -lart {} \; >  /tmp/tmp.txt
        awk '/$dt/''NR == 1 { sum=0;} { sum+=$5; }  END {print "COUNT=" NR, "SIZE=" sum}' /tmp/tmp.txt
    done;

Но оно подсчитывает общий размер файлов и общее количество файлов - вот output: Jul 1 COUNT=18248 SIZE=718566652 Jul 10 COUNT=18248 SIZE=718566652 Jul 11 COUNT=18248 SIZE=718566652 и т.д.

Помогите пожалуйста - от жары мозг плавится. Спасибо громадное за прочтение моего кривого кода

 , ,

Huxler
()

RSS подписка на новые темы