多级目录批量下载网站图片修订版,及改名方法
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,3.10再次修改。经过多次测试发现mv方式不是很好用,不再采用mv方式,而是进入目录后再进行下载,此次测试达到了预期效果修改后的版本为#!/bin/bash#下载#author:falconhero#
千家信息网最后更新 2025年01月31日多级目录批量下载网站图片修订版,及改名方法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安全错误
数据库的锁怎样保障安全
维护网络安全英雄人物
网络安全系统概念股
中通吉网络技术有限公司工作
安卓收费软件开发
软件开发招聘新手
软件开发工具的特点
信息化网络技术协议
我的世界服务器出售
mc多人生存服务器
延庆区大型软件开发设置
木盒网络安全社区
服务器带外管理口作用
设计网络安全方案设计
亿网通达网络技术有限公司
金华公需课信息网络安全答案
市地税局抓网络安全侧记
网络安全法的要求
台州企业软件开发要求
计算机网络技术和软件设计
维语网络技术公司
如何看数据库后台异常
db2安装创建数据库
服务器安全配置的用途
芝罘区游戏软件开发公司电话
软件开发数据库搭建
免费云服务器管理
求生之路2服务器怎么调模式
想在软件开发混口饭吃
适合新人的网络技术书
网络安全法的有关试题