You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:基于wget/curl实现数据记录仪每日定时自动下载脚本

优化后的自动适配日期下载脚本

下面是调整后的脚本,解决了日期硬编码问题,并修正了可能导致mirror功能失效的核心问题:

#!/bin/bash
# 重定向输出到日志文件,同时保留控制台输出
exec > >(tee -i update_logfile.txt)
exec 2>&1

# 生成符合目标格式的日期字符串:两位年+两位月+两位日(例如240615)
target_date=$(date +'%y%m%d')
printf "Record load started: %s\n" "$(date '+%Y-%m-%d %H:%M:%S')"

# 目标文件的FTP路径和本地保存目录
ftp_url="ftp://192.168.30.240/data/${target_date}/int_magnetek_${target_date}.txt"
local_dir="/home/username/upload"

echo "Attempting to download file: ${ftp_url}"
# 使用wget增量下载,仅当远程文件更新时才重新获取
wget -N --user='username' --password='password' "${ftp_url}" -P "${local_dir}"

# 检查下载结果并记录日志
if [ $? -eq 0 ]; then
    echo "File downloaded successfully to ${local_dir}"
else
    echo "ERROR: Failed to download target file"
fi

关键修改说明

  • 日期自动适配:用date +'%y%m%d'生成匹配目标格式的日期字符串,彻底替代原脚本中硬编码的日期值,实现每日自动对应目标文件夹和文件名。
  • 补充FTP协议前缀:原脚本URL缺少ftp://前缀,wget默认会以HTTP协议访问,这是mirror功能失效的核心原因。补上前缀后才能正确对接数据记录仪的FTP服务。
  • 精简下载参数:移除冗余的-m(递归镜像)参数,因为你仅需单个文件而非整个目录;保留-N参数实现增量下载,避免10分钟周期内重复下载无变化的文件。
  • 增加结果校验:通过$?判断wget执行状态,在日志中明确记录下载成功/失败信息,便于排查问题。

定时任务设置(每10分钟执行一次)

编辑crontab配置:

crontab -e

添加以下内容(替换为你的脚本实际路径):

*/10 * * * * /absolute/path/to/your/download_script.sh

保存退出后,crontab会自动加载新任务,脚本将每10分钟自动执行一次。

注意事项

  1. 确保运行脚本的服务器系统日期与数据记录仪的日期完全同步,否则会出现找不到对应日期文件夹的情况。
  2. 如果数据记录仪的FTP服务要求被动模式,可在wget命令中添加--passive-ftp参数。
  3. 定期清理update_logfile.txt日志文件,避免文件过大占用磁盘空间。

内容的提问来源于stack exchange,提问作者JX1974

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:30:59