[实践OK]scp断点续传,wget自动断点续传参数wget -c 的方法,及wget无论如何下载新的参数N及参数F。

jackxiang 2012-2-12 10:03 | |
背景:有些时候在下载时有很多相同的项,如果wget不加-c会出现多次下载,文件名后面会加上.1后缀,鉴于此,最好还是用那个wget -c,一是这个不会重命名好处(断点续传在下载时wget会判断是否已经有该文件有了不会再下载,也就没有重复文件。),二是这个网络不好时(指windows和linux下的secureCRT出现闪断的情况,用shell脚本跑批量wget可能就会出现再次运行时会重新下载,有了-c就好了,重新下载时会接着下,同样是判断本地文件是否存在。),这个东西这点作用还是挺好的。三是下载时磁盘满了,如果不是断点下载就完了,如果是经实践wget -c 这种,可以把文件挪动到别的盘,再cd 到新的盘符路径,在上面重新运行一样的命令,此时它又开始从断开的点开始下载了。还有时是VPN下面下载,VPN断开了,怎么办?还是一样,它会一直卡住,而VPN网好后,它又开始自动继续下载了,是不是很好,这是SSH下地sz 和 sftp> get都无法比拟的,只需要开通一个Nginx服务,下载时所下载目录 权限不够可将nginx.conf里的 www用户改为root即可,user root; ,打成一个大包就可下载。

未安装wget,联网执行以下命令即可,来自:https://blog.csdn.net/z_dianjun/article/details/50819489
yum install wget
1、断点续传,只需要添加 -c 参数即可
wget -c http://mirrors.163.com/ubuntu-releases/9.10/ubuntu-9.10-desktop-amd64.iso
2、限速下载,只需要添加 -limit-rate=300k 合理参数即可
wget -c --limit-rate=300k http://mirrors.163.com/ubuntu-releases/9.10/ubuntu-9.10-desktop-amd64.iso
3、Nginx日志,下载时所下载目录 权限不够可将nginx.conf里的 www用户改为root即可,user root;
==> access.log <==
"10.6*.12.**" "10.71.***.108" "-" "[29/Mar/2018:14:59:46 +0800]" "GET /180329downloadPKG1148.bak.tar.gz HTTP/1.0" "200" "10066122" "-" "Wget/1.11.4" "8.155" "-"
"10.6*.12.**" "10.71.***.108" "-" "[29/Mar/2018:15:12:03 +0800]" "GET /180329downloadPKG1148.bak.tar.gz HTTP/1.0" "206" "626704840" "-" "Wget/1.11.4" "735.603" "-"
"10.6*.12.**" "10.71.***.108" "-" "[29/Mar/2018:15:23:36 +0800]" "GET /180329downloadPKG1148.bak.tar.gz HTTP/1.0" "206" "909031010" "-" "Wget/1.11.4" "684.815" "-"

实践如下:
一:scp断点续传 [暂时没有使用过]
scp一旦出错中断就只能重新开始,不过可以利用rsync实现scp的断点续传
1、在~/.bashrc中加入一个alias:
$vim ~/.bashrc
alias rscp=’rsync -v -P -e ssh’
2、重新载入.bashrc配置
$source ~/.bashrc


二:wget自动断点续传的方法
有时候我们使用wget下载东西被迫打断, 比如网络故障, 终端意外断开, 忘了加"&"放入该台等等.
沉稳的人或许会想到重新开启wget, 并使用 -c断点续传, 可是有时候, 因为N个g的东西突然断了, 一冲动就晕了, 就纠结了, 可能就会就重新跑wget了, 甚至截止到本文还有人不知道-c.

那么为了杯具不再发生, 我们可以让wget每次运行的时候自动加上 -c参数, 那样就万事大吉了嘛. 方法如下:
在家目录下新建文件".wgetrc", 内容如下:
continue = on
写入wget.sh后,可以这样同时下载多个文件:

如果想不用IP,但有两个相同的域名,则需要配置/etc/hosts加和IP对应的域名,再Wget即可。
保存退出, 以后再使用wget就会自动断点续传了, Y, 演示如下Url:http://windphp.com/unix/43.html

scp 是通过ssh协议传输数据,如果是想传输一个很大的数据,这几天我就遇到过,一个tar包,400G左右,通过scp拷贝时,有可能遇到服务器断电什么的悲剧问题,那么类似scp拷贝的另一个命令 rsync就可以实现意外中断后,下次继续传,命令如下:

rsync -P --rsh=ssh home.tar 192.168.0.34:/home/home.tar

-P: 是包含了 “–partial –progress”, 部分传送和显示进度

-rsh=ssh 表示使用ssh协议传送数据

如果不想每次都使用 rsync -P rsh=ssh 之类的,可以写成alias scpr="rsync -P --rsh=ssh"

那么下次就可以直接使用 scpr home.tar 192.168.0.34:/home/home.tar 来拷贝数据了。

在传输过程中,目标文件会以.home.tar.xxxx文件也隐藏,可以用la -a来显示出来。如果scpr中断了,那么该文件会变成用户指定的目标文件"home.tar",下次传的时候又会改成.home.tar.xxxx文件。



三:wget无论如何下载新的参数N,我看有运维人员加上N,查了下帮助:
  -N,  --timestamping            don't re-retrieve files unless newer than
如: wget -N www.baidu.com/config.php


四:wget查看http的返回头参数 -S:
wget -S  www.baidu.com
--2013-12-12 17:33:21--  http://www.baidu.com/
Resolving www.baidu.com... 61.135.169.125, 61.135.169.105
Connecting to www.baidu.com|61.135.169.125|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Thu, 12 Dec 2013 09:33:21 GMT
  Server: BWS/1.0
  Content-Length: 16414
  Content-Type: text/html;charset=utf-8
  Cache-Control: private
  BDPAGETYPE: 1
  BDUSERID: 0
  BDQID: 0xa8ab100800026240
  Set-Cookie: BDSVRTM=23; path=/
  Set-Cookie: H_PS_PSSID=1450_4405_4261_4450; path=/; domain=.baidu.com
  Set-Cookie: BAIDUID=17D8999849AA8E6EDBDA95A846D765FB:FG=1; expires=Thu, 12-Dec-43 09:33:21 GMT; path=/; domain=.baidu.com
  Expires: Thu, 12 Dec 2013 09:33:21 GMT
  P3P: CP=" OTI DSP COR IVA OUR IND COM "
  Connection: Close
Length: 16414 (16K) [text/html]
Saving to: `index.html.1'
                                 local.

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/4968/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-1-30 14:40
评论列表
2012-2-20 07:36 | hxngb5cf Email Homepage
要看要看。謝謝分享哦
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]