shell脚本_ftp上传文件

脚本参考实例

#!/bin/bash

# 导入系统级别的profile文件
source /etc/profile
# 导入用户级别的bash profile文件
source ~/.bash_profile

# 切换到工作目录
cd /home/ftp/
# 获取昨天的日期用来构造文件名
yesterday=`date  -d  "-1 days" +%Y-%m-%d`

# 定义FTP服务器信息
FTP_SERVER="xxx.xx.xx.xxx"
FTP_USER=user
FTP_PASS=password
FILE_DATA=="${yesterday}.zip"

# 检查文件是否存在
# exit命令接受一个可选的数值参数,称为退出状态码,退出状态码为1,表示发生了错误。
if [ ! -f "${FILE_DATA}" ]; then
    echo "文件 ${FILE_DATA} 不存在,退出脚本。"
    exit 1
fi

# 使用FTP命令上传文件
ftp -v -n "${FTP_SERVER}" << EOF
user ${FTP_USER} ${FTP_PASS}
binary
prompt
mput ${file_data}
bye
EOF

# 检查FTP命令的退出状态
if [ "${?}" -ne 0 ]; then
    echo "FTP命令执行失败,退出脚本。"
    exit 1
fi

echo "文件上传成功。"

FTP传输日志注释

Connected to xxx.xx.xx.xxx (xxx.xx.xx.xxx). 
# 客户端已成功连接到FTP服务器的IP地址xxx.xx.xx.xxx。
220 (vsFTPd 3.0.2)
# 这是FTP服务器的欢迎消息,表明它正在运行vsFTPd 3.0.2版本。
331 Please specify the password.
# 服务器要求客户端提供用户名对应的密码。
230 Login successful.
# 客户端提供的用户名和密码验证成功,登录成功。
200 Switching to Binary mode.
# 服务器通知客户端,它正在切换到二进制模式来传输文件。这通常是为了确保非文本文件(如图像、压缩文件等)的正确传输。
Interactive mode off.
# 这表示FTP会话处于非交互模式。在这种模式下,客户端通常会发送一个命令,然后等待服务器响应,再发送下一个命令。
local: file_data.zip remote: file_data.zip
# 这表示客户端打算上传或下载名为file_data.zip的文件。在这里,本地和远程的文件名都是相同的。
227 Entering Passive Mode (xxx,xx,xx,xxx,178,41).
# 服务器进入被动模式,并为数据传输指定了一个端口。客户端应使用此信息来连接到该端口以开始数据传输。
150 Ok to send data.
# 服务器准备好接收客户端发送的数据。
226 Transfer complete.
# 数据传输已完成。
400621999 bytes sent in 157 secs (2556.53 Kbytes/sec)
# 这行给出了数据传输的统计信息:客户端在157秒内发送了400,621,999字节的数据,传输速度为2,556.53 Kbytes/sec。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值