老男孩教育每日一题-第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 [ $# -ne 2  ]  
then  
    echo "Usage $0  <local_dir/filename> <remote_dir>"  
    exit 1  
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  
user Sunrier redhat  
bin  
passive  
cd /home/remote/log/ftpfile  
put $FULLNAME $DESTFILE  
quit  
FTPIT  
exit 0

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

#FileName:ftpget.sh    
#Function:从ftp服务器上下载一个文件到本地计算机上      
#Version:V0.1        
#Author:
#Date:
     
# $#表示传递给此Shell脚本的参数个数  
# -ne表示不等于  
if [ $# -ne 2  ]  
then  
    echo "Usage $0  <remote_dir/filename> <local_dir>"  
    exit 1  
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  
user Sunrier redhat  
bin  
cd /home/remote/log/ftpfile  
get $FULLNAME $DESTFILE  
quit  
FTPIT       
exit 0

备注

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

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

http://lidao.blog.51cto.com/3388056/1914205


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1948924

相关文章
|
4月前
|
存储 安全 Shell
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
112 0
|
4月前
|
存储 Shell Linux
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
115 0
|
网络协议 C# 文件存储
C# 利用FluentFTP实现FTP上传下载功能
C# 利用FluentFTP实现FTP上传下载功能
407 0
C# 利用FluentFTP实现FTP上传下载功能
|
25天前
|
Java
Java SpringBoot FTP 上传下载文件
Java SpringBoot FTP 上传下载文件
61 0
|
4月前
|
Java
java上传、下载、预览、删除ftp服务器上的文件
java上传、下载、预览、删除ftp服务器上的文件
|
12月前
|
Apache
基于commons-net实现ftp创建文件夹、上传、下载功能.
基于commons-net实现ftp创建文件夹、上传、下载功能.
197 0
|
4月前
|
Shell Python Windows
通过Python实现win11环境下FTP的上传与下载
通过Python实现win11环境下FTP的上传与下载
Java——通过Java代码从ftp服务器下载文件
Java——通过Java代码从ftp服务器下载文件
|
9月前
|
API 分布式数据库 数据安全/隐私保护
C/C++ 实现FTP文件上传下载
FTP(文件传输协议)是一种用于在网络上传输文件的标准协议。它属于因特网标准化的协议族之一,为文件的上传、下载和文件管理提供了一种标准化的方法,在Windows系统中操作FTP上传下载可以使用WinINet库,WinINet(Windows Internet)库是 Windows 操作系统中的一个网络 API 库,用于访问 Internet 上的资源。它提供了一组函数,使开发人员能够创建网络应用程序,例如通过 HTTP 协议下载文件,发送 HTTP 请求,处理 cookie 等,本章将通过使用WinInet所提供的接口实现FTP文件上传下载功能,使得用户可以通过代码的方式上传或下载文件与FTP
155 1
C/C++ 实现FTP文件上传下载
|
Shell
从 FTP 服务器下载文件
从 FTP 服务器下载文件
68 0