shell 脚本统计 http 文件服务器下指定目录及其子目录下所有文件的大小

shell脚本如下:
首先 vi calculate_size.sh 写入下入内容

#!/bin/bash

url=$1
excludes=("." "..", "./", "../")

TOTAL_SIZE=0
FILENAME="calculate_size_result.log"
echo $FILENAME

function calculate_size() {
    local current_url="$1"
    local file_list=$(curl -s "$current_url" | grep -oP '(?<=href=")[^"]+')

    for file in $file_list; do
        local file_url="$current_url$file"

        if [[ ! " ${excludes[@]} " =~ " ${file} " ]]; then
                    local file_size=$(curl -s --head "$file_url" | grep -i "Content-Length" | awk '{ print $2 }'|sed 's/\r//g')
                    echo "File: ${file_url}  Size: ${file_size} TOTAL_SIZE: ${TOTAL_SIZE}"
                    echo "File: ${file_url}  Size: ${file_size} TOTAL_SIZE: ${TOTAL_SIZE}" >> $FILENAME

                        TOTAL_SIZE=$((TOTAL_SIZE + file_size))
                        calculate_size "$file_url/"
        fi
    done
}

calculate_size "$url"
echo "finish $url, TOTAL_SIZE: ${TOTAL_SIZE}"
echo "finish $url, TOTAL_SIZE: ${TOTAL_SIZE}" >> ${FILENAME}

执行 sh calculate_size.sh http://example.com/some/dir/ 即可统计 http 文件服务器http://example.com/some/dir/ 中 dir 目录及其子目录下所有文件的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值