
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
lftpsync镜像是一个基于lftp工具的轻量级文件同步解决方案,专为高效、灵活的跨服务器/协议文件镜像同步设计。该镜像集成lftp的核心功能,支持FTP、FTPS、HTTP、HTTPS、SFTP等多种文件传输协议,可实现断点续传、增量同步、定时任务等高级同步需求,广泛应用于开源软件镜像站点维护、服务器数据备份、跨环境文件分发等场景。
通过docker run命令直接触发单次同步任务,需指定源地址(SRC)、目标地址(DST)及必要的同步参数。
基础示例(FTP协议同步到本地目录)
bashdocker run --rm \ -e SRC="ftp://ftp.example.com/source" \ # 源地址(支持多种协议) -e DST="/data/mirror" \ # 容器内目标路径(需挂载宿主机目录) -v /path/to/local/dst:/data/mirror \ # 挂载宿主机目录作为同步目标 ustclug/lftpsync:latest
高级示例(SFTP协议+增量同步+排除文件)
bashdocker run --rm \ -e SRC="sftp://user@remote.server:/data/source" \ # SFTP源地址(格式:sftp://用户@主机:路径) -e DST="/data/mirror" \ -e SYNC_OPTS="-n -X *.log -P 5" \ # 同步选项:-n(增量)、-X(排除.log文件)、-P(5个并发连接) -v /path/to/ssh-key:/root/.ssh/id_rsa:ro \ # SFTP协议需挂载SSH私钥(只读权限) -v /path/to/local/dst:/data/mirror \ ustclug/lftpsync:latest
通过挂载crontab配置文件实现定时同步,配置格式遵循标准crontab语法,任务命令需调用内置的sync.sh脚本。
步骤1:创建crontab配置文件(如/host/crontab.txt)
crontab# 每天凌晨2点执行同步(语法:分 时 日 月 周 命令) 0 2 * * * /sync.sh
步骤2:启动容器并挂载配置文件
bashdocker run -d \ --name lftpsync-cron \ -e SRC="http://mirror.ustc.edu.cn/ubuntu" \ # 上游Ubuntu镜像源 -e DST="/data/ubuntu-mirror" \ -e SYNC_OPTS="-c -n -L" \ # -c(断点续传)、-n(增量)、-L(跟随符号链接) -v /host/ubuntu-mirror:/data/ubuntu-mirror \ # 宿主机镜像存储目录 -v /host/crontab.txt:/etc/crontabs/root:ro \ # 挂载crontab配置(root用户) ustclug/lftpsync:latest
yamlversion: '3' services: lftpsync: image: ustclug/lftpsync:latest container_name: lftpsync restart: always environment: - SRC="https://upstream.example.com/packages" # HTTPS源地址 - DST="/data/mirror" - SYNC_OPTS="-n -X .git -t 300" # 排除.git目录,超时300秒 - CRON_ENABLE="true" # 启用定时任务(默认true,单次同步设为false) volumes: - /local/mirror:/data/mirror # 本地存储目录 - ./crontab.txt:/etc/crontabs/root:ro # 定时任务配置 # SFTP协议需额外挂载SSH密钥(如使用SFTP源) # - ./ssh_key:/root/.ssh/id_rsa:ro
| 参数名 | 描述 | 示例值 |
|---|---|---|
SRC | 同步源地址(必填),格式:协议://[用户:密码@]主机[:端口]/路径 | sftp://user:pass@server.com:/data/src |
DST | 容器内目标路径(必填),需通过-v挂载到宿主机 | /data/mirror |
SYNC_OPTS | lftp mirror命令选项,多个选项用空格分隔 | -c -n -X *.tmp -P 5(断点续传、增量、排除.tmp、5并发) |
CRON_ENABLE | 是否启用定时任务 | true(默认,启用)/false(单次同步) |
LFTP_TIMEOUT | 传输超时时间(秒) | 300(默认300秒) |
| 选项 | 描述 |
|---|---|
-c | 断点续传(继续中断的传输) |
-n | 增量同步(仅下载新文件或大小/时间变化的文件) |
-r | 递归同步子目录 |
-X <pattern> | 排除匹配模式的文件/目录(如-X *.log排除.log文件) |
-P <num> | 设置并发连接数(默认5) |
-L | 跟随符号链接(同步链接指向的实际文件) |
-t <sec> | 超时时间(秒) |
如需调整lftp全局配置(如代理、被动模式、重试次数等),可通过挂载/etc/lftp.conf文件实现。示例配置文件(custom-lftp.conf):
conf# 启用被动模式(FTP默认推荐) set ftp:passive-mode yes # 设置网络超时时间(秒) set net:timeout 300 # 设置最大重试次数 set net:max-retries 3 # 配置HTTP代理(如需通过代理访问源站) set proxy http://proxy.example.com:8080
挂载配置文件启动容器:
bashdocker run --rm \ -v /path/to/custom-lftp.conf:/etc/lftp.conf:ro \ # 自定义lftp配置 -e SRC="[***]" \ -e DST="/data/mirror" \ -v /path/to/local/dst:/data/mirror \ ***/lftpsync:latest
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务