linux利用wget命令备份网站(镜像拷贝)

上篇文章写到使用curl下载上传ftp,陋室博客最近想把之前的实验页面做一个镜像站点,不过由于curl不支持递归下载,所以当要备份一个ftp服务器上的文件时,略显不足。

还好linux为我们提供了更加强大的命令wget,下面来看一下wget如何备份一个网站下所有文件:

首先下载ftp服务器上的所有文件用递归参数-r:

wget  ftp://name:passwd@ftp.malu.me -r

不过以上方式下载下来的文件会出现网站站名的目录,把该目录去掉,加上参数-nH –cut-dirs=number(number为需要削减的目录层数):

wget  ftp://name:passwd@ftp.malu.me –r –nH --cut-dirs=1

当我们需要更新下载时,可以把原来有的文件不去下载,wget也提供了更新方式下载,加参数-N:

wget ftp://name:passwd@ftp.malu.me –r –nH –cut-dirs=1 –N

文件下载都是在当前目录,想要下载到指定目录怎么办,后面加个参数-P:

wget ftp://name:passwd@ftp.malu.me –r –nH –cut-dirs=1 –N –P /home/dotcloud/current

每次下载有一大堆返回参数,如何把他们去掉,后面加个参数-q就解决啦:

wget ftp://name:passwd@ftp.malu.me –r –nH –cut-dirs=1 –N –P /home/dotcloud/current –q

网站上文件很多,一次执行需要很长时间,让它在后台执行吧,加上参数-b:

wget ftp://name:passwd@ftp.malu.me –r –nH –cut-dirs=1 –N –P /home/dotcloud/current –q –b

通过以上案例体会到wget的强大了吧,单条命令就能把一个网站的copy工作完成,再加上Crontab计划任务,让其在深夜执行,一个完美的网站备份(镜像)工作完成了。

*解决wget bad port number的办法
有些ftp的用户名和密码带有@号,会导致wget出现bad port number的错误。出现这个的原因是因为包含两个以上的@,只需要把前面的@换成%40即可。

此条目是由 malu8 发表在 未分类 分类目录的。将固定链接加入收藏夹。

评论已关闭。