多级目录批量下载网站图片修订版,及改名方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,3.10再次修改。经过多次测试发现mv方式不是很好用,不再采用mv方式,而是进入目录后再进行下载,此次测试达到了预期效果修改后的版本为#!/bin/bash#下载#author:falconhero#
千家信息网最后更新 2025年12月02日多级目录批量下载网站图片修订版,及改名方法3.10再次修改。经过多次测试发现mv方式不是很好用,不再采用mv方式,而是进入目录后再进行下载,此次测试达到了预期效果
修改后的版本为
#!/bin/bash
#下载
#author:falconhero
#qq:40594324
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin
export PATH
mkdir -p /root/201010/{1..100}
for j in {1.100}
do
for i in {1..50}
do
cd /root/201010/$j
wget https://cache.yisu.com/upload/information/20200311/30/169178.jpg &
done
done
由于没注意导致重复下载了一次。后缀名变成了.jpg.1,原来的下载图片有的只下了一半,所以删除第一次下载的,保留第2次的
find . -name \*.jpg |xargs rm -f
重命名方法:
#!/bin/bash
for i in {10..78}
do
cd /root/201011/$i
rename ".jpg.1" ".jpg" *
done
可以再虚拟机里面下载,下载完毕后,用ftp的模式导出。
常用crt软件xshell自带ftp,用起来不错,比secureCRT好用。不用再打包下载了。
虚拟机内存视下载量调整,512M死掉概率很高,测试时候使用1G内存,下载进程1600+,再用top模式查看时发现内存使用瞬间降到0.然后逐渐恢复正常。如果在windows同时开启1000+下载进程估计会直接导致系统死机,windows下未尝试
大概1G内存支持到1600左右的下载进程,没有太细究。
IP地址为随意写的。请自行修改为你要下载的地址。
-----------------------------------------------
#暂告一段落:由于双变量混合数字会导致$m0$l 变为一个数字,所以转义0,写为20$m\0$l,测试成功,因测试20$m\0$l目录全为空,删除
实地测试:循环变量不能多嵌套,有几个变量就用几个变量,否则会额外循环N次
执行方法chmod 755 wgetdown.sh ;nohup ./wgetdown.sh & ,后台自动执行
#!/bin/bash
#下载
#author:falconhero
#qq:40594324
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin
export PATH
mkdir -p 20{10..12}{10..12}/{1..100}
mkdir -p 20{10..12}0{1..9}/{1..100}
for m in {10..12}
do
for j in {1..65}
do
for i in {1..50}
do
wget https://cache.yisu.com/upload/information/20200311/30/169180.jpg
mv *.jpg 20$m$m/$j/
done
done
done
#删除空目录下的空目录
for n in `find /root/falcon -type d -empty`;
do rmdir $n;
done
#删除空目录
for n in `find /root/falcon -type d -empty`;
do rmdir $n;
done
------------------额外测试--------------------
一些测试
wget http://wvw.Domain Name.com/2010$k/$j/$i.jpg &
#后台全部执行,但是命名会混乱,舍弃(再次测试,发现不会导致命名混乱)
修订:不会造成命名混乱,但是会导致消耗光大量内存。。毕竟相当于无限进程下载。。也就是linux稳定性不错,windows要是开启1000进程下载,早崩溃了。。。
关闭当前窗口后,下载终止解决方法
chmod 755 wgetlist
nohup ./wgetlist &
完美解决。后台慢慢下载去了
原因探索:
上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出
测试时额外多写了一层循环变量,但调用时候并未使用变量,导致多循环了数次
删除额外变量后,达到预期循环目的
结论:循环语句不能多写无用变量,会严重影响效率,重复执行N遍代码
--------------------搜集资料------------------
后面为转载,注释
http://hankjin.blog.163.com/blog/static/337319372010111492348473/
在批处理模式下执行某些任务需要启用一些选项。下面的文章会给出详细解释:.
============================================
4.26后续
现在跟oldboy老师上完编程课了,哪天继续修改下脚本去。重新测试完善下经验
修改后的版本为
#!/bin/bash
#下载
#author:falconhero
#qq:40594324
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin
export PATH
mkdir -p /root/201010/{1..100}
for j in {1.100}
do
for i in {1..50}
do
cd /root/201010/$j
wget https://cache.yisu.com/upload/information/20200311/30/169178.jpg &
done
done
由于没注意导致重复下载了一次。后缀名变成了.jpg.1,原来的下载图片有的只下了一半,所以删除第一次下载的,保留第2次的
find . -name \*.jpg |xargs rm -f
重命名方法:
#!/bin/bash
for i in {10..78}
do
cd /root/201011/$i
rename ".jpg.1" ".jpg" *
done
可以再虚拟机里面下载,下载完毕后,用ftp的模式导出。
常用crt软件xshell自带ftp,用起来不错,比secureCRT好用。不用再打包下载了。
虚拟机内存视下载量调整,512M死掉概率很高,测试时候使用1G内存,下载进程1600+,再用top模式查看时发现内存使用瞬间降到0.然后逐渐恢复正常。如果在windows同时开启1000+下载进程估计会直接导致系统死机,windows下未尝试
大概1G内存支持到1600左右的下载进程,没有太细究。
IP地址为随意写的。请自行修改为你要下载的地址。
-----------------------------------------------
#暂告一段落:由于双变量混合数字会导致$m0$l 变为一个数字,所以转义0,写为20$m\0$l,测试成功,因测试20$m\0$l目录全为空,删除
实地测试:循环变量不能多嵌套,有几个变量就用几个变量,否则会额外循环N次
执行方法chmod 755 wgetdown.sh ;nohup ./wgetdown.sh & ,后台自动执行
#!/bin/bash
#下载
#author:falconhero
#qq:40594324
PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin
export PATH
mkdir -p 20{10..12}{10..12}/{1..100}
mkdir -p 20{10..12}0{1..9}/{1..100}
for m in {10..12}
do
for j in {1..65}
do
for i in {1..50}
do
wget https://cache.yisu.com/upload/information/20200311/30/169180.jpg
mv *.jpg 20$m$m/$j/
done
done
done
#删除空目录下的空目录
for n in `find /root/falcon -type d -empty`;
do rmdir $n;
done
#删除空目录
for n in `find /root/falcon -type d -empty`;
do rmdir $n;
done
------------------额外测试--------------------
一些测试
wget http://wvw.Domain Name.com/2010$k/$j/$i.jpg &
#后台全部执行,但是命名会混乱,舍弃(再次测试,发现不会导致命名混乱)
修订:不会造成命名混乱,但是会导致消耗光大量内存。。毕竟相当于无限进程下载。。也就是linux稳定性不错,windows要是开启1000进程下载,早崩溃了。。。
关闭当前窗口后,下载终止解决方法
chmod 755 wgetlist
nohup ./wgetlist &
完美解决。后台慢慢下载去了
原因探索:
上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出
测试时额外多写了一层循环变量,但调用时候并未使用变量,导致多循环了数次
删除额外变量后,达到预期循环目的
结论:循环语句不能多写无用变量,会严重影响效率,重复执行N遍代码
--------------------搜集资料------------------
后面为转载,注释
http://hankjin.blog.163.com/blog/static/337319372010111492348473/
1. 使用&符号在后台执行命令
你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:.$ ./my-shell-script.sh &详情请参考这篇文章 Bg, Fg, &, Ctrl-Z - 5 Examples to Manage Unix Background Jobs
2. 使用nohup在后台执行命令
使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉。要避免这种情况,你可以使用nohup命令,如下所示:$ nohup ./my-shell-script.sh &详情请参考这篇文章 Unix Nohup: Run a Command or Shell-Script Even after You Logout
3. 使用screen执行命令
通过nohup和&符号在后台执行命令后,即使你退出登录,这个命令也会一直执行。但是,你无法重新连接到这个会话,要想重新连接到这个会话,你可以使用screen命令。. Linux的screen命令提供了分离和重新连接一个会话的功能。当你重新连接这个会话的时候,你的终端和你分离的时候一模一样。 详情请参考这篇文章 Screen Command Examples: Get Control of Linux / Unix Terminal4. 使用at将一个命令作为批处理执行
使用at命令,你可以让一个命令在指定的日期和时间运行,例如要在明天上午10点在后台执行备份脚本,执行下面的命令:$ at -f backup.sh 10 am tomorrow详情请参考这篇文章 Understand at, atq, atrm, batch Commands using 9 Examples
在批处理模式下执行某些任务需要启用一些选项。下面的文章会给出详细解释:.
- How To Capture Unix Top Command Output to a File in Readable Format
- Unix bc Command Line Calculator in Batch Mode
- How To Execute SSH and SCP in Batch Mode (Only when Passwordless login is enabled)
5. 使用watch连续地执行一个命令
要想按一个固定的间隔不停地执行一个命令,可以使用watch命令,如下所示:$ watch df -h详情请参考这篇文章 Watch: Repeat Unix Commands or Shell-Scripts every N seconds
============================================
4.26后续
现在跟oldboy老师上完编程课了,哪天继续修改下脚本去。重新测试完善下经验
命令
进程
测试
后台
变量
循环
内存
篇文章
详情
参考
时候
符号
脚本
方法
混乱
模式
空目录
目录
不错
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
诗词数据库
求生药抗服务器代码
华为p8登录微信显示链接服务器
浙江沃德尔科技集团软件开发
python写数据库
加强网络安全和信息化培训
严密防范网络安全十条禁令
iis服务器干什么用的
移动应用软件开发就业
上海今创病案系统数据库
女孩取名软件开发
三国杀怎么转服务器
dns服务器改ip
物联网app软件开发步骤
wost数据库
大连网络技术转让
广州php软件开发真本事
运用网络技术破案
个体工商户 软件开发
阿里最年轻的网络安全工程师
外文数据库哪个学位论文多
我的世界服务器粉碎机
供应商客户往来数据库表
中移动网络技术要求
通用网络技术咨询质量保障
软件开发文科生单招能报吗
安卓通信软件开发
网络技术学习文案长句
网络安全考试大题
管理存储服务器套什么定额