无聊随便写了一个刷网站服务器流量的下载脚本,只要是下载链接均可下载,支持批量下载和设置下载次数

无聊随便写了一个刷网站服务器流量的下载脚本,只要是下载链接均可下载,支持批量下载和设置下载次数

支持多链接下载,和设置下载次数,每次下载后都会输出下载次数和消耗流量统计信息

写着玩的不要用于非法刷别人网站,特别是刷别人对象存储这种不道德的行为是可耻的,当然你要是用来刷了与本站无关

脚本主要是刷流量主要是就一直下载一直刷不会保存任何下载文件,不会占用服务器空间,下载完设置的次数会自动结束

QQ截图20240527233305.jpg

脚本代码
#!/bin/bash
# 下载间隔(秒)
interval=1
# 记录日志文件夹(与脚本当前目录相同)
log_folder="./"
# 记录日志文件名
log_file="$log_folder/download_log.txt"
# 统计变量
total_downloads=0
total_megabytes=0
# 提示用户输入下载链接
echo
echo "本脚本为测试下载或刷服务器流量使用"
echo
echo "支持多链接输入,输入链接后回车确认"
echo
echo "日志保存到当前目录download_log.txt文件" 
echo
urls=()
while true; do
  read -p "请输入下载链接 或 按 Enter 键结束输入: " url
  if [ -z "$url" ]; then
    break
  fi
  # 检测下载目标文件是否可访问
  if [[ "$url" =~ ^https?://.* ]]; then
    if curl --output /dev/null --silent --head --fail "$url"; then
      echo
      echo "URL $url 链接访问正常, 继续输入多个下载链接或回车确认"
      echo
      urls+=("$url")
    else
      echo
      echo "URL $url 无法访问,请检查链接是否正确"
      echo
    fi
  else
    echo
    echo "URL $url 无效,请输入有效的链接"
    echo
  fi
done
# 如果没有输入任何链接则退出
if [ ${#urls[@]} -eq 0 ]; then
  echo "未输入有效的下载链接,退出脚本。"
  exit 1
fi
# 提示用户输入下载次数
echo
echo "下载的文件不会保存到本地,仅缓存到内存,下载完成后自动清除,不会占用空间"
echo
read -p "请输入下载次数: " download_limit
echo
remaining_downloads=$download_limit
# 如果日志文件不存在,则创建并添加标题行
if [ ! -f "$log_file" ]; then
  echo "下载时间, 文件名, 文件大小 (MB), 下载次数, 记录流量 (MB)" > "$log_file"
fi
# 轮询下载文件
url_index=0
while [ "$remaining_downloads" -gt 0 ]; do
  # 获取当前时间戳(中国标准时间格式)
  timestamp=$(TZ=Asia/Shanghai date +"%Y-%m-%d %H:%M:%S")
  # 获取当前要下载的链接
  url="${urls[$url_index]}"
  # 获取文件名
  filename=$(basename "$url")
  # 下载文件并重命名,如果失败则跳过
  filesize=$(wget -O- "$url" | wc -c)
  if [ $? -ne 0 ]; then
    echo "下载 $url 失败,跳过到下一个文件。"
    url_index=$(( (url_index + 1) % ${#urls[@]} ))
    continue
  fi
  # 转换文件大小为MB
  filesize_mb=$(echo "scale=2; $filesize / 1024 / 1024" | bc)
  # 更新统计信息
  total_megabytes=$(echo "scale=2; $total_megabytes + $filesize_mb" | bc)
  total_downloads=$((total_downloads + 1))
  # 记录日志
  echo "下载时间: $timestamp, 文件名: $filename, 文件大小: $filesize_mb MB, 下载次数: $total_downloads, 记录流量: $total_megabytes MB" >> "$log_file"
  # 打印统计信息到控制台
  echo "下载次数: $total_downloads"
  echo "消耗流量: $total_megabytes MB"
  # 减少剩余下载次数并输出剩余下载次数和总下载次数
  remaining_downloads=$((remaining_downloads - 1))
  echo "剩余次数: $remaining_downloads"
  echo "总下载数: $download_limit"
  echo
  # 如果下载次数用完,则退出
  if [ "$remaining_downloads" -le 0 ]; then
    echo "下载完成,退出脚本。"
    exit 0
  fi
  # 循环到下一个链接
  url_index=$(( (url_index + 1) % ${#urls[@]} ))
  # 等待指定间隔
  sleep "$interval"
done

使用方法:

1. 将脚本保存为 download_script.sh 使用你喜欢的编辑器进行操作即可,我喜欢用nano
如果没安装安装一下nano即可,CentOS 安装: 
yum -y install nano    ubuntu安装: apt -y install nano  ubuntu一般默认都安装有nano
sudo nano download_script.sh
2. 赋予脚本执行权限:
chmod +x download_script.sh
3. 运行脚本:
./download_script.sh
这个脚本会持续运行,直到下载完成设置的下载次数会自动停止(也可以通过停止 Ctrl+C),如果需要在后台运行,可以使用 `nohup` 或 `&` 来运行:
nohup ./download_script.sh &


发表观点 / Comment

提示:本文章评论功能已关闭