tuna / tunasync

Mirror job management tool.
GNU General Public License v3.0
1.61k stars 273 forks source link

tunasync worker 同步指定的文件? #182

Closed SwarmKit closed 9 months ago

SwarmKit commented 1 year ago
[[mirrors]]
name = "epel"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/epel/"
use_ipv6 = false

怎麽只同步“epel/7/x86_64/” “epel/8/x86_64/” 其他的不同步? 使用了include_file 選項不起作用?

ZenithalHourlyRate commented 1 year ago

您可以参考 https://github.com/tuna/tunasync/issues/181#issuecomment-1362530198

ZenithalHourlyRate commented 1 year ago

您可以先尝试手动使用 rsync 进行相关同步以调试 include_file。

一般来说,include_file 的格式中需要包含各级目录,例如

epel
epel/7
epel/7/x86_64
epel/7/x86_64/**
epel/8
epel/8/x86_64
epel/8/x86_64/**
ZenithalHourlyRate commented 1 year ago

使用了include_file 選項不起作用?

另外我们并没有 include_file 选项,参考 https://github.com/tuna/tunasync/pull/84#issuecomment-413226206

SwarmKit commented 1 year ago
[[mirrors]]
name = "epel"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/epel/"
rsync_options = [ "--include", "7", "--include", "7/x86_64", "--include", "7/x86_64/**", "--include", "8", "--include", "8/*", "--include", "8/*/x86_64", "--include", "8/*/x86_64/**", "--exclude", "*" ]
use_ipv6 = false

以上方式可以同步。 還有一個問題,

  {
    "name": "grafana",
    "is_master": true,
    "status": "syncing",
    "last_update": "0001-01-01 00:00:00 +0000",
    "last_update_ts": -62135596800,
    "last_started": "2023-01-12 10:25:56 +0800",
    "last_started_ts": 1673490356,
    "last_ended": "2023-01-12 10:37:31 +0800",
    "last_ended_ts": 1673491051,
    "next_schedule": "0001-01-01 00:00:00 +0000",
    "next_schedule_ts": -62135596800,
    "upstream": "rsync://mirrors.tuna.tsinghua.edu.cn/grafana/",
    "size": "unknown"
  }

”next_schedule“ 時間是否可以指定,比如同步失敗可以 1小時后重試?

shankerwangmiao commented 1 year ago

next_schedule 表示下一次安排的同步时间,是计算得出的,不可以配置。同步的安排规则是根据 interval 配置项和 retry 配置项决定。其中 interval 表示两次同步的时间间隔,单位是分钟,retry 表示失败时重试的次数。上述两个配置项既可以全局配置,也可以为个别镜像单独指定。同步调度的行为是:在完成一次同步后,如果同步失败,则立刻重新同步,直到同步成功或重试次数达到 retry 指定的为止;然后等待 interval 后开始下一轮同步。如果同步任务开始时,正在进行的其它同步任务超过了 concurent 所指定的最大并行同步任务数目,那么这个同步任务将会被推迟,直到有其它同步任务结束为止。您需要注意的是,rsync 同步对上游服务器的开销较大,因此,不建议您配置过小的 interval。建议可以将同步间隔设置为 6 个小时。