shell脚本实现ftp上传下载文件

这是一个使用bash脚本进行SFTP文件上传和下载的示例。脚本定义了上传和下载函数,通过指定的FTP服务器地址、用户名、密码和端口,可以执行对本地和远程文件的操作。用户可以通过命令行参数选择执行上传或下载操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

FTP_SERVER="1.1.1.1"
FTP_USER="root"
FTP_PASS="root"
FTP_PORT="22222" # SFTP端口号

#上传和下载的本地文件路径和远程文件路径
LOCAL_FILE_PATH="/home/ali/test/test1.txt"
REMOTE_FILE_PATH="/test/test1.txt"



function upload_file() {
sftp -P $FTP_PORT $FTP_USER@$FTP_SERVER <<EOF
cd $(dirname $REMOTE_FILE_PATH)
put $LOCAL_FILE_PATH $(basename $REMOTE_FILE_PATH)
bye
EOF
}

function upload_file1() {
sftp -P $FTP_PORT $FTP_USER@$FTP_SERVER <<EOF
cd $(dirname $3)
put $2 $(basename $3)
bye
EOF
}


function download_file() {
sftp -P $FTP_PORT $FTP_USER@$FTP_SERVER <<EOF
cd $(dirname $REMOTE_FILE_PATH)
get $(basename $REMOTE_FILE_PATH) $LOCAL_FILE_PATH
bye
EOF
}


#sftp
#执行上传文件操作 ./ftp.sh upload
if [[ $1 == "upload" ]]; then 
	echo "upload start"
	upload_file
	echo "upload end"



#执行下载文件操作 ./ftp.sh download
elif [[ $1 == "download" ]]; then 
	echo "download_file"
	download_file





#自定义参数 ./ftp.sh upload1 /home/ali/test/test2.txt /test/test2.txt
elif [[ $1 == "upload1" ]]; then 
	echo "upload1 start"
	upload_file1
	echo "upload end"


# 如果命令行参数不正确,则提示使用方法
else 
	echo "Usage: $0 [upload|download|upload]"
fi


#结束脚本
exit 0


#./ftp.sh upload
#./ftp.sh download
#./ftp.sh upload1 /home/ali/test/test2.txt /test/test2.txt






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值