题目
日常工作中经常用到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