近日,遇到一个问题,需要将一些数据上传到 web 服务器。由于防篡改的原因,只允许使用 FTP 或 SFTP 上传。允许上传的客户端却是 linux 服务器,上传的数据又不是单一文件。同时,由于防篡改,不可能将数据打包上传,然后再解包。因此,我写了以下两个脚本,分别针对 FTP 和 SFTP 上传目录的情况。
上传数据到 SFTP 服务器的脚本如下:
#!/bin/bash
# 作者:靑龍一笑(C.S.Ricen)
# 功能:上传数据到 SFTP 服务器
# SFTP 配置信息
# SFTP 帐号
USER=ricen
# SFTP 密码
PASSWD=p7954tF
# 要上传文件的根目录
SRC=/opt/
# SFTP 目录
DESC=/data/websites/
# IP
HOST=172.17.0.5
# 端口
PORT=22
echo -e -n "请输入要上传的目录:"
read UPLOAD
SRC_DIR=${SRC}$UPLOAD
DESC_DIR=${DESC}$UPLOAD
# 上传文件
lftp -u ${USER},${PASSWD} sftp://${HOST}:${PORT} <
mirror -R ${SRC_DIR} ${DESC_DIR}
by
EOF
echo "数据上传完毕!"
exit 0
上传数据到 FTP 服务器的脚本如下:
#!/bin/bash
# 作者:靑龍一笑(C.S.Ricen)
# 功能:上传数据到 FTP 服务器
# FTP 配置信息
# FTP 帐号
USER=ricen
# FTP 密码
PASSWD=p7954tF
# 要上传文件的根目录
SRC=/opt/
# FTP 目录
DESC=/
# IP
HOST=172.17.0.5
# 端口
PORT=21
echo -e -n "请输入要上传的目录:"
read UPLOAD
SRC_DIR=${SRC}$UPLOAD
DESC_DIR=${DESC}$UPLOAD
# 上传文件
lftp -u ${USER},${PASSWD} ftp://${HOST}:${PORT} <
mirror -R ${SRC_DIR} ${DESC_DIR}
by
EOF
echo "数据上传完毕!"
exit 0
这里以 FTP 为例,演示效果如下: