3.10再次修改。經(jīng)過(guò)多次測(cè)試發(fā)現(xiàn)mv方式不是很好用,不再采用mv方式,而是進(jìn)入目錄后再進(jìn)行下載,此次測(cè)試達(dá)到了預(yù)期效果
修改后的版本為
#!/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 /upload/otherpic71/169178.jpg &
done
done
由于沒(méi)注意導(dǎo)致重復(fù)下載了一次。后綴名變成了.jpg.1,原來(lái)的下載圖片有的只下了一半,所以刪除第一次下載的,保留第2次的
find . -name \*.jpg |xargs rm -f
重命名方法:
#!/bin/bash
for i in {10..78}
do
cd /root/201011/$i
rename ".jpg.1" ".jpg" *
done
可以再虛擬機(jī)里面下載,下載完畢后,用ftp的模式導(dǎo)出。
常用crt軟件xshell自帶ftp,用起來(lái)不錯(cuò),比secureCRT好用。不用再打包下載了。
虛擬機(jī)內(nèi)存視下載量調(diào)整,512M死掉概率很高,測(cè)試時(shí)候使用1G內(nèi)存,下載進(jìn)程1600+,再用top模式查看時(shí)發(fā)現(xiàn)內(nèi)存使用瞬間降到0.然后逐漸恢復(fù)正常。如果在windows同時(shí)開啟1000+下載進(jìn)程估計(jì)會(huì)直接導(dǎo)致系統(tǒng)死機(jī),windows下未嘗試
大概1G內(nèi)存支持到1600左右的下載進(jìn)程,沒(méi)有太細(xì)究。
IP地址為隨意寫的。請(qǐng)自行修改為你要下載的地址。
-----------------------------------------------
#暫告一段落:由于雙變量混合數(shù)字會(huì)導(dǎo)致$m0$l 變?yōu)橐粋€(gè)數(shù)字,所以轉(zhuǎn)義0,寫為20$m\0$l,測(cè)試成功,因測(cè)試20$m\0$l目錄全為空,刪除
實(shí)地測(cè)試:循環(huán)變量不能多嵌套,有幾個(gè)變量就用幾個(gè)變量,否則會(huì)額外循環(huán)N次
執(zhí)行方法chmod 755 wgetdown.sh ;nohup ./wgetdown.sh & ,后臺(tái)自動(dòng)執(zhí)行
#!/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 /upload/otherpic71/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
------------------額外測(cè)試--------------------
一些測(cè)試
wget http://wvw.
Domain Name.com/2010$k/$j/$i.jpg &
#后臺(tái)全部執(zhí)行,但是命名會(huì)混亂,舍棄(再次測(cè)試,發(fā)現(xiàn)不會(huì)導(dǎo)致命名混亂)
修訂:不會(huì)造成命名混亂,但是會(huì)導(dǎo)致消耗光大量?jī)?nèi)存。。畢竟相當(dāng)于無(wú)限進(jìn)程下載。。也就是linux穩(wěn)定性不錯(cuò),windows要是開啟1000進(jìn)程下載,早崩潰了。。。
關(guān)閉當(dāng)前窗口后,下載終止解決方法
chmod 755 wgetlist
nohup ./wgetlist &
完美解決。后臺(tái)慢慢下載去了
原因探索:
上方到后臺(tái)執(zhí)行的進(jìn)程,其父進(jìn)程還是當(dāng)前終端shell的進(jìn)程,而一旦父進(jìn)程退出,則會(huì)發(fā)送hangup信號(hào)給所有子進(jìn)程,子進(jìn)程收到hangup以后也會(huì)退出
測(cè)試時(shí)額外多寫了一層循環(huán)變量,但調(diào)用時(shí)候并未使用變量,導(dǎo)致多循環(huán)了數(shù)次
刪除額外變量后,達(dá)到預(yù)期循環(huán)目的
結(jié)論:循環(huán)語(yǔ)句不能多寫無(wú)用變量,會(huì)嚴(yán)重影響效率,重復(fù)執(zhí)行N遍代碼
--------------------搜集資料------------------
后面為轉(zhuǎn)載,注釋
http://hankjin.blog.163.com/blog/static/337319372010111492348473/
1. 使用&符號(hào)在后臺(tái)執(zhí)行命令
你可以在Linux命令或者腳本后面增加&符號(hào),從而使命令或腳本在后臺(tái)執(zhí)行,例如:.
$ ./my-shell-script.sh &
詳情請(qǐng)參考這篇文章 Bg, Fg, &, Ctrl-Z – 5 Examples to Manage Unix Background Jobs
2. 使用nohup在后臺(tái)執(zhí)行命令
使用&符號(hào)在后臺(tái)執(zhí)行命令或腳本后,如果你退出登錄,這個(gè)命令就會(huì)被自動(dòng)終止掉。要避免這種情況,你可以使用nohup命令,如下所示:
$ nohup ./my-shell-script.sh &
詳情請(qǐng)參考這篇文章 Unix Nohup: Run a Command or Shell-Script Even after You Logout
3. 使用screen執(zhí)行命令
通過(guò)nohup和&符號(hào)在后臺(tái)執(zhí)行命令后,即使你退出登錄,這個(gè)命令也會(huì)一直執(zhí)行。但是,你無(wú)法重新連接到這個(gè)會(huì)話,要想重新連接到這個(gè)會(huì)話,你可以使用screen命令。.
Linux的screen命令提供了分離和重新連接一個(gè)會(huì)話的功能。當(dāng)你重新連接這個(gè)會(huì)話的時(shí)候,你的終端和你分離的時(shí)候一模一樣。
詳情請(qǐng)參考這篇文章 Screen Command Examples: Get Control of Linux / Unix Terminal
4. 使用at將一個(gè)命令作為批處理執(zhí)行
使用at命令,你可以讓一個(gè)命令在指定的日期和時(shí)間運(yùn)行,例如要在明天上午10點(diǎn)在后臺(tái)執(zhí)行備份腳本,執(zhí)行下面的命令:
$ at -f backup.sh 10 am tomorrow
詳情請(qǐng)參考這篇文章 Understand at, atq, atrm, batch Commands using 9 Examples
在批處理模式下執(zhí)行某些任務(wù)需要啟用一些選項(xiàng)。下面的文章會(huì)給出詳細(xì)解釋:.
- 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連續(xù)地執(zhí)行一個(gè)命令
要想按一個(gè)固定的間隔不停地執(zhí)行一個(gè)命令,可以使用watch命令,如下所示:
$ watch df -h
詳情請(qǐng)參考這篇文章 Watch: Repeat Unix Commands or Shell-Scripts every N seconds
============================================
4.26后續(xù)
現(xiàn)在跟oldboy老師上完編程課了,哪天繼續(xù)修改下腳本去。重新測(cè)試完善下經(jīng)驗(yàn)
分享標(biāo)題:多級(jí)目錄批量下載網(wǎng)站圖片修訂版,及改名方法
分享路徑:
http://weahome.cn/article/peoiii.html