shell脚本自动下载远程主机WEB目录中的文件

2014/07/0116:55:08 发表评论

一般当我们架设一个网站时,会需要一个空间,空间商会告诉你一个FTP账号和密码用于网站的文件上传与下载。

本例中将使用shell脚本无交互下载远程主机FTP目录中的文件,使用的是wget命令,我们可以通过命令:man wget 看到如下信息:

       --user=user
       --password=password
           Specify the username user and password password for both FTP and HTTP file
           retrieval.  These parameters can be overridden using the --ftp-user and
           --ftp-password options for FTP connections and the --http-user and
           --http-password options for HTTP connections.

意思是说支持指定FTP或HTTP服务器用户名密码进行无交互下载。

这里使用了wget命令中的-m选项,关于选项的说明如下:

       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and
           time-stamping, sets infinite recursion depth and keeps FTP directory listings.
           It is currently equivalent to -r -N -l inf --no-remove-listing.

意思是说首先会下载一份远程主机中FTP目录下的目录列表,然后根据这个目录列表目录进行下载,类似于递归目录下载。

下面是自动化shell脚本。

#!/bin/bash
#FTP用户名
USER="myuser"
#FTP密码
PASS="mypass"
#远程主机IP或域名
HOST="www.example"
DATE=`date "+%Y%m%d"`
#下载日志存放路径
LOGPATH="/home/wget.log"
#下载后文件存放位置
DOWNLOAD_PATH="/home/"
#远程FTP目录相对路径
REMOTE_DIR="sqlbackup/DATE"
[ ! -d DOWNLOAD_PATH/DATE ] && mkdir -p DOWNLOAD_PATH/DATE
cd DOWNLOAD_PATH/DATE
echo "`date "+%F %T"` starting..." >> LOGPATH
wget --ftp-user=USER --ftp-password=PASS -m  ftp://HOST/REMOTE_DIR/*
echo "`date "+%F %T"` completed" >> $LOGPATH

脚本完成后,我们可以把它加入到定时任务中去,这里不再介绍定时任务的添加方法了。

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!