一般当我们架设一个网站时,会需要一个空间,空间商会告诉你一个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
脚本完成后,我们可以把它加入到定时任务中去,这里不再介绍定时任务的添加方法了。
- 微信扫码赞助
- 支付宝赞助