FTP 上传-下载-文件脚本(亲测成功)----复杂版

ftp上传文件脚本,若本地上传文件路径下没有文件则会说为空,上传成功后则会删除文件,失败则不作为

说明:$1:本地上传下载文件路径

           $2:服务器IP

           $3:用户名

           $4:密码

#/bin/bash

DIRCTORY=$1

is_empty_dir(){
	return `ls -A $DIRCTORY | wc -w`
}

put_file(){
	exec 6>&1 1>$1/../tmp.txt
	ftp -nv<<-EOF
	open $2
	user $3 $4
	passive
	binary 
	hash 
	cd UP/ 
	lcd $DIRCTORY
	prompt  
	mput *	
	close
	bye
	EOF
	
	exec 1>&6
	exec 6>&-
	if grep -q "Transfer complete" $1/../tmp.txt;then
		echo "commit to ftp successfully" >> $1/../log.txt
		rm -rf $DIRCTORY*.*
	else
		echo "commit to ftp failure!" >> $1/../log.txt
	fi
	rm -rf $1/../tmp.txt
	sleep 60
	echo "commit to ftp successfully"
}


#上传文件
while true
do
	echo `date +%y%m%d%H%M%S`>> $1/../log.txt
	if is_empty_dir $DIRCTORY
	then
		echo "$DIRCTORY  NO files" >> $1/../log.txt
		sleep 60
	else
		put_file
	fi
done

FTP下载含指定字符串的文件,下载成功后,ftp上删除文件

get_file(){
	exec 6>&1 1>$1/tmp.txt
	ftp -nv<<-EOF
	open $2
	user $3 $4
	passive
	binary
	cd DOWN/
	lcd $1
	hash
	prompt off
	mget voice_*.mp3
	close
	bye
	EOF

	exec 1>&6
	exec 6>&-
	if grep -q "Transfer complete" $1/tmp.txt;then
		ftp -nv<<-EOF
		open $2
		user $3 $4
		passive
		binary
		cd DOWN/
		hash
		prompt off
		mdelete voice_*.mp3
		close
		bye
		EOF

		echo "get file from ftp successfully" >> $1/log.txt
	else
		echo "get file from ftp failure!" >> $1/log.txt
	fi
	rm -rf $1/tmp.txt

	echo "download from ftp successfully"
}

echo `date +%y%m%d%H%M%S`>> $1/log.txt
get_file

猜你喜欢

转载自blog.csdn.net/yuchunhai321/article/details/82500641