题目
日常工作中经常用到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天,期待你的进步。