老男孩教育每日一題-第95天-shell腳本知識點:書寫腳本完成ftp上傳下載
阿新 • • 發佈:2017-07-19
ftp腳本 ftp上傳腳本 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
本文出自 “李導的博客” 博客,請務必保留此出處http://lidao.blog.51cto.com/3388056/1948924
老男孩教育每日一題-第95天-shell腳本知識點:書寫腳本完成ftp上傳下載