使用shell写批量下载脚本,
目前是单线程下载,脚本实例如下:
---------------------------------------
#!/bin/bash
for r in {1..300}
do
for i in {1..10}
do
echo $r file
echo $i time
you-get `sed -n ${r}p urls`
if [ $? == 0 ]
then
find -size +300M -exec mv {} /dest \; &
break
fi
done
done
-----------------------------------------
上面这个脚本只能单线程下载视频,因此速度必定有限,而且当视频进行合并的时候,还会空闲,浪费带宽。
因此希望可以写出3线程的下载脚本。
理想的模式是类似aria2的rpc那种模式,进程一直开着,多线程下载,然后前端监控,这样就知道具体每个文件的情况。
最好能够给you-get指定高速缓存设备,这样就能够加快合并的速度了。
希望写出的多线程下来脚本能够监控每个文件的下载进度。不要弄出那种3个文件同时下载,但是只有一个文件能够查看下载状态的情况。
高手看看!
高手问题:shell脚本如何多线程可监控下载文件
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
- maplebeats
- 帖子: 378
- 注册时间: 2011-02-16 1:17
- 冲浪板
- 论坛版主
- 帖子: 7513
- 注册时间: 2007-05-06 8:19
Re: 高手问题:shell脚本如何多线程可监控下载文件
楼主是要下载资源是么,干嘛不试下wget,
可以断点续传,可以设置多个线下载,可去后台。
可以断点续传,可以设置多个线下载,可去后台。
-
- 帖子: 28
- 注册时间: 2017-09-21 14:46
- 系统: ubuntu16.04
Re: 高手问题:shell脚本如何多线程可监控下载文件
shell 是单线程语言.不过可以伪造多进程 网上学来的 利用后台+wait
试试这个 秒级 探测活跃主机
一个c类网段,254主机,1s内探测完毕.
试试这个 秒级 探测活跃主机
代码: 全选
#!/bin/bash
# ******************************************************
# Author : kids
# Last modified: 2018-04-30 18:42
# Email : ak871933839@163.com
# Filename : fping.sh
# Description :
# ******************************************************
for i in `seq 1 254`
do
{
fping -t 30 192.168.31.$i >/dev/null 2>&1
[ $? -eq 0 ]&&{
echo "192.168.31.$i is up"
}
}&
done
wait
代码: 全选
kids@kids-virtual-machine:~/桌面$ time sh fping.sh
192.168.31.1 is up
192.168.31.22 is up
192.168.31.216 is up
192.168.31.137 is up
real 0m0.407s
user 0m0.306s
sys 0m0.177s
kids@kids-virtual-machine:~/桌面$