
avaasiaadmin/ava_scada_loggerGeneric Reader Utility 是一个基于Python的通用读取工具,设计用于定期执行数据读取、诊断和系统清理任务。该工具通过定时任务自动化处理流程,并提供详细的日志记录功能。
执行安装脚本
bash./setup.sh
登录 Docker
bashdocker login
将 Compose 文件复制到目标服务器
拉取镜像
bashdocker-compose pull
启动服务
bashdocker-compose up -d
验证容器状态
bashdocker ps
进入容器
bashdocker exec -it {container_id} /bin/bash
查看定时任务
bashcrontabs -l
bash# 安装虚拟环境工具 pip3 install virtualenv # 创建虚拟环境 python3 -m venv venv # 激活虚拟环境 source venv/bin/activate # 安装依赖包 pip install -r requirements.txt
bash# 进入源代码目录 cd src # 运行测试 python -m manager.test_reader
bash# 主目录结构 mkdir /ava_write/logs mkdir /ava_write/outgoing mkdir /ava_write/uploaded mkdir /ava_write/archive # 控制目录结构 mkdir /ava_write/controls mkdir /ava_write/controls/logs mkdir /ava_write/controls/outgoing mkdir /ava_write/controls/uploaded mkdir /ava_write/controls/archive
/ava_write/logs: 主日志目录/ava_write/outgoing: 待传出文件目录/ava_write/uploaded: 已上传文件目录/ava_write/archive: 归档文件目录/ava_write/controls: 控制相关文件目录启动应用程序:
bashcd ava_iec_reader source venv/bin/activate cd src python -m manager.execute
编辑当前用户的crontab:
bashcrontab -e
添加以下内容:
bash# 每5分钟执行一次数据读取(工作日5:00-19:00) */5 5-19 * * * cd /home/pi/ava_iec_reader/src/ && /home/pi/ava_iec_reader/venv/bin/python -m manager.execute >> /ava_write/logs/ava_reader.log 2>&1 # 每10分钟执行一次系统诊断 */10 * * * * cd /home/pi/ava_iec_reader/src/ && /home/pi/ava_iec_reader/venv/bin/python -m diagnosis.diagnosis >> /ava_write/logs/diagnosis.log 2>&1 # 每天凌晨2点执行一次系统清理 0 2 * * * cd /home/pi/ava_iec_reader/src/ && /home/pi/ava_iec_reader/venv/bin/python -m cleanup.cleanup >> /ava_write/logs/cleanup.log 2>&1
编辑sudo级别的crontab:
bashsudo crontab -e
添加以下内容:
bash# 每30分钟执行一次连接性检查(工作日5:00-19:00) */30 5-19 * * * cd /home/pi/ava_iec_reader/src/ && /home/pi/ava_iec_reader/venv/bin/python -m diagnosis.connectivity >> /ava_write/logs/connectivity.log 2>&1
bashsudo nano /etc/udev/rules.d/95-serialdaemon.rules
添加以下内容:
KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="gen_env.service"
bashsudo nano /etc/systemd/system/gen_env.service
添加以下内容:
ini[Unit] Description=.env file generator After=remote-fs.target After=syslog.target [Service] WorkingDirectory=/home/pi/ava_iec_reader/src ExecStart=/home/pi/ava_iec_reader/venv/bin/python3 -m gen_env.gen_env
启用并启动服务:
bashsudo systemctl enable gen_env.service sudo systemctl start gen_env.service
所有日志文件均保存在 /ava_write/logs 目录下,主要日志文件包括:
ava_reader.log: 主应用程序日志diagnosis.log: 系统诊断日志cleanup.log: 清理操作日志connectivity.log: 连接性检查日志日志文件可通过标准文本查看工具查看:
bashtail -f /ava_write/logs/ava_reader.log
bashdocker ps # 查看运行中的容器 docker logs {container_id} # 查看容器日志
bashcrontab -l # 查看用户级定时任务 sudo crontab -l # 查看系统级定时任务
确保应用程序对所需目录具有读写权限:
bashls -la /ava_write/
bashsudo systemctl status gen_env.service
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务