微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

老男孩教育每日一题-第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

原文地址:https://www.jb51.cc/bash/391969.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐