shell脚本使用curl上传FTP
背景:要求使用curl通过shell脚本实现上传文件到FTP的功能,同时对远程目录不存在的时候,主动创建目录并上传文件,shell脚本如下:
#!/bin/bash# FTP服务器的地址
FTP_SERVER="ftp://1.1.1.1:2121"
# FTP用户名
FTP_USER=""
# FTP密码
FTP_PASS=""
# 要上传的ZIP文件路径
LOCAL_FILE="Desktop/test.zip"
# FTP远程目录
REMOTE_DIR="/com/test/1.0.0"## 使用 curl 上传文件并创建目录
upload_with_curl() {# 逐层创建目录IFS='/' read -ra DIR_PARTS <<< "$REMOTE_DIR"CURRENT_DIR=""for DIR in "${DIR_PARTS[@]}"; doCURRENT_DIR="$CURRENT_DIR/$DIR"# 创建目录,如果目录已存在则忽略错误curl --ftp-pasv -u "$FTP_USER:$FTP_PASS" -Q "MKD $CURRENT_DIR" "$FTP_SERVER" 2>/dev/nulldone# 上传文件curl -u "$FTP_USER:$FTP_PASS" -T "$LOCAL_FILE" "$FTP_SERVER$REMOTE_DIR/"echo "上传成功!!!"
}
upload_with_curl