
Generic Reader Utility 是一个基于Python的通用读取工具,设计用于定期执行数据读取、诊断和系统清理任务。该工具通过定时任务自动化处理流程,并提供详细的日志记录功能。
4.1.1 前提条件
4.1.2 部署步骤
执行安装脚本
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
4.2.1 环境准备
bash# 安装虚拟环境工具 pip3 install virtualenv # 创建虚拟环境 python3 -m venv venv # 激活虚拟环境 source venv/bin/activate # 安装依赖包 pip install -r requirements.txt
4.2.2 测试安装
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
6.2.1 用户级定时任务
编辑当前用户的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
6.2.2 系统级定时任务
编辑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
6.3.1 创建udev规则
bashsudo nano /etc/udev/rules.d/95-serialdaemon.rules
添加以下内容:
KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="gen_env.service"
6.3.2 创建systemd服务
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务