老男孩教育每日一题-第95天-shell脚本知识点:书写脚本完成ftp上传下载

题目

日常工作中经常用到FTP,进行文件的共享与下载,单对于有些不熟悉FTP命令行人员
使用FTP进行共享文件管理,是一件很头疼的事。
而且FTP如果有些文件需要每天定时进行上传或下载,人为重复相同工作也是没有意义的
因此如何编写自动下载或上传FTP文件脚本?

答案参考:

1. ftpput.sh 上传文件到ftp脚本

#!/bin/sh
#FileName:ftpput.sh
#Function:从本地客户端向ftp服务器上传一个文件
#Version:V0.1
#Author:
#Date:
#$#表示传递给此Shell脚本的参数个数
#-ne表示不等于
if[$#-ne2]
then
echo"Usage$0<local_dir/filename><remote_dir>"
exit1
fi
说明:如果传递的参数个数不等于2个,即提示传参报错信息

#IP表示ftp的服务器ip地址
IP=127.0.0.1
#IP=192.168.6.1

#FULLNAME获取本地文件全路径名
FULLNAME=$1

#DESTDIR获取需要上传的ftp远程目录路径
DESTDIR=$2

#basename返回一个路径中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#当local_filename=`basename$FULLNAME`
#最终local_filename="test.log"
local_filename=`basename$FULLNAME`

#DESTFILE表示ftp服务器的路径,以及保存后的文件名
DESTFILE=$DESTDIR/$local_filename

#自动上传文件到ftp服务器,免交互方式
ftp-i-n<<FTPIT
open$IP
userSunrierredhat
bin
passive
cd/home/remote/log/ftpfile
put$FULLNAME$DESTFILE
quit
FTPIT
exit0

2. ftpget.sh 下载文件到ftp客户端脚本

#FileName:ftpget.sh
#Function:从ftp服务器上下载一个文件到本地计算机上
#Version:V0.1
#Author:
#Date:

#$#表示传递给此Shell脚本的参数个数
#-ne表示不等于
if[$#-ne2]
then
echo"Usage$0<remote_dir/filename><local_dir>"
exit1
fi

#IP表示ftp的服务器ip地址
IP=127.0.0.1
#IP=192.168.6.1

#FULLNAME获取从ftp服务器上下载的文件全路径名
FULLNAME=$1

#DESTDIR获取从ftp服务器上下载的文件所存放的本地计算机的目录路径
DESTDIR=$2

#remote_filename获取从ftp服务器上下载的文件名
remote_filename=`basename$FULLNAME`

#DESTFILE表示下载文件所存放的本地路径,以及本地保存后的文件名
DESTFILE=$DESTDIR/$remote_filename

ftp-i-n<<FTPIT
open$IP
userSunrierredhat
bin
cd/home/remote/log/ftpfile
get$FULLNAME$DESTFILE
quit
FTPIT
exit0

备注

今天是每日一题陪伴大家的第95天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引

http://www.jb51.cc/article/p-dxklwfhw-bcy.html

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...