標籤: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_filenameftp -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上傳下載