Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- file=${1}
- if [[ -z "${file}" ]]; then
- echo "Path to a file within DDFS is required"
- exit 1
- fi
- ddfs_bmap ${file} 2>/dev/null | \
- awk '
- function myprint() {
- blk_skip=(cur_addr - prev_addr)/store_blk_size - 1;
- if (start_addr == prev_addr) {
- if (blk_skip == 0 || blk_skip == -1) {
- printf "[ %27x ] blk_read: %-10d\n", start_addr, blk_count;
- } else {
- printf "[ %27x ] blk_read: %-10d blk_skip: % -10d\n", start_addr, blk_count, blk_skip;
- }
- } else {
- blk_count=(prev_addr - start_addr)/store_blk_size + 1;
- printf "[ %12x - %12x ] blk_read: %-10d blk_skip: % -10d\n", start_addr, prev_addr, blk_count, blk_skip;
- }
- fragment_count=fragment_count + 1;
- }
- NR == 1 {
- store_blk_size=65568;
- zero_sig="c3320def4e1dbbf428c3f89c665c550933c4cfbb62ab8928";
- zero_blk_count=0;
- zero_blk_addr="";
- total_blk_count=0;
- fragment_count=0;
- }
- NR > 1 {
- total_blk_count=total_blk_count+1;
- cur_sig=$2;
- if (cur_sig == zero_sig) {
- zero_blk_count=zero_blk_count + 1;
- zero_blk_addr=strtonum("0x"$3);
- } else if (start_addr == "") {
- start_addr=strtonum("0x"$3);
- cur_addr=start_addr;
- prev_addr=start_addr;
- start_sig=$2;
- prev_sig=start_sig;
- blk_count=1;
- } else {
- cur_addr=strtonum("0x"$3);
- if (cur_sig == prev_sig) {
- blk_count=blk_count + 1;
- } else {
- if (cur_addr - prev_addr != store_blk_size) {
- myprint();
- start_addr=cur_addr;
- start_sig=cur_sig;
- blk_count=1;
- }
- prev_sig=cur_sig;
- prev_addr=cur_addr;
- }
- }
- }
- END {
- myprint();
- printf "#########################################################################\n";
- printf "#[ ZERO_BLOCK_ADDR: %9x ] blk_count: %-10d\n", zero_blk_addr, zero_blk_count;
- printf "#[ TOTAL_BLOCKS: %11d ]\n", total_blk_count;
- printf "#[ FRAGMENTS: %11d ]\n", fragment_count;
- }'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement