This tool will profile official instances of OpenSUSE mirrorcache to determine the fastest repositories for your system

Overview

Mirror Magic tool to Magically make OpenSUSE Mirrors Magic-er

This tool will profile official instances of OpenSUSE mirrorcache to determine the fastest repositories for your system.

# sudo mirrorsorcerer
INFO ✨ Mirror Sorcerer ✨
INFO Profiling - mirrorcache.opensuse.org - 2001:67c:2178:8::16 - insufficient data
INFO Profiling - mirrorcache.opensuse.org - 195.135.221.140 - time=320.972483ms
INFO Profiling - mirrorcache-au.opensuse.org - 2400:8907::f03c:92ff:fe82:7bb - insufficient data
INFO Profiling - mirrorcache-au.opensuse.org - 172.105.167.90 - time=25.093516ms
INFO Profiling - mirrorcache-us.opensuse.org - 2a07:de40:401::65 - insufficient data
INFO Profiling - mirrorcache-us.opensuse.org - 91.193.113.65 - time=197.407333ms
INFO Selected - https://mirrorcache-au.opensuse.org/ - time=25.093516ms
INFO 🪄  updating repo repo-oss -> https://mirrorcache-au.opensuse.org/ports/aarch64/tumbleweed/repo/oss/
INFO 🪄  updating repo repo-debug -> https://mirrorcache-au.opensuse.org/ports/aarch64/debug/tumbleweed/repo/oss/
INFO 🪄  updating repo repo-source -> https://mirrorcache-au.opensuse.org/ports/aarch64/source/tumbleweed/repo/oss/
INFO 🪄  updating repo repo-update -> https://mirrorcache-au.opensuse.org/ports/aarch64/update/tumbleweed/
INFO 🔮 watching /etc/zypp/repos.d for changes ...
INFO 🪄  updating repo network:idm -> https://mirrorcache-au.opensuse.org/repositories/network:/idm/openSUSE_Tumbleweed

This will only update mirrors that are provided by OpenSUSE. Custom mirrors are not altered. If you add new repositories, they are dynamically updated.

Details

The primary way to use this will be to install it and allow it to run at boot

zypper in mirrorsorcerer
systemctl enable mirrorsorcerer
systemctl start mirrorsorcerer

If you wish to define a custom mirror list that should be profiled instead:

# vim /etc/my_custom_mirrors.json
{
  "replaceable": [
    "https://download.opensuse.org"
  ],
  "mirrors": [
    "..."
  ]
}
  • mirrors - The list of mirrors in the "pool" that you want to profile and potentially select from.
  • replaceable - A list of mirrors that are "excluded" from the pool, but could be replaced with a pooled mirror.

Then you can update the unit file with:

# systemctl edit mirrorsorcerer
[Service]
Environment=MIRROR_DEFS=/etc/my_custom_mirrors.json

To enable debug logging if you have an issue

# systemctl edit mirrorsorcerer
[Service]
Environment=RUST_LOG=debug
You might also like...
Delete useless GitHub repositories easily.

delete-unused-repo Delete useless GitHub repositories easily. Demo del-unused-repo.mp4 Usage Warning You are responsible for your own actions, this is

Mirroring remote repositories to s3 storage, with atomic updates and periodic garbage collection.

rsync-sjtug WIP: This project is still under development, and is not ready for production use. rsync-sjtug is an open-source project designed to provi

Check a folder for dirty git repositories, forgotten branches and commits

dg - find dirty git repos Ever forgot to push a commit or lost your work because you assumed it was pushed to Github but it wasn't? dg finds local git

Retrieve all requested SBOMs from the GitHub repositories.

GitHub SBOM(s) Generator Action This GitHub Action and/or standalone CLI application generates a Software Bill of Materials (SBOM) for a given GitHub

The official CLI for FlakeHub: search for flakes, and add new inputs to your Nix flake.

fh, the official FlakeHub CLI fh is a scrappy CLI for searching FlakeHub and adding new inputs to your Nix flakes. Usage Using fh from FlakeHub: nix s

Not the fastest terminal colors library. Don't even ask about size.
Not the fastest terminal colors library. Don't even ask about size.

TROLOLORS Not the fastest terminal colors library. Don't even ask about size. Why? Don't even try to use it. But maybe you need to say to your boss th

The fastest bloom filter in Rust. No accuracy compromises. Use any hasher.
The fastest bloom filter in Rust. No accuracy compromises. Use any hasher.

b100m-filter The fastest bloom filter in Rust. No accuracy compromises. Use any hasher. Usage # Cargo.toml [dependencies] b100m-filter = "0.3.0" use b

The fastest memoizing and caching Python library written in Rust.

Cachebox Cachebox is a Python library (written in Rust) that provides memoizations and cache implementions with different cache replecement policies.

Fastest GTF/GFF-to-BED converter chilling around
Fastest GTF/GFF-to-BED converter chilling around

gxf2bed The fastest G{F,T}F-to-BED converter around the block! translates chr27 gxf2bed gene 17266470 17285418 . + . gene_id "ENSG00000151743"; chr27

Comments
  • New mirrorcache domain for Brazil

    New mirrorcache domain for Brazil

    Hi,

    There's a new domain for BR mirrorcache, it is mirrorcache-br.opensuse.org, this follows the official patterns. The domain cache.opensuse.net.br won't be removed anytime soon, but it's also not official.

    I wonder if there are any latency differences between both domains, as our non-official is in Cloudflare and the other in openSUSE DNS.

    opened by alexandrevicenzi 6
  • Logs filling up with

    Logs filling up with "not updating"

    I'm testing mirrorsorcerer, and I noticed that it'll log this every 2 seconds:

    out 11 11:32:39 suselab-erico mirrorsorcerer[1246]:  INFO Not updating http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ - not a known mirror base
    out 11 11:32:39 suselab-erico mirrorsorcerer[1246]:  INFO Not updating http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ - not a known mirror base
    out 11 11:32:41 suselab-erico mirrorsorcerer[1246]:  INFO Not updating http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ - not a known mirror base
    out 11 11:32:41 suselab-erico mirrorsorcerer[1246]:  INFO Not updating http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ - not a known mirror base
    ...
    

    I'm using version 0.1.0~13-1.4 from the Tumbleweed repository.

    Is this intended? I know it's monitoring the defined repositories, but this could fill up the system log.

    opened by doccaz 3
Owner
Firstyear
IDM Tech Debt Collector
Firstyear
Update Twitter profile with a meter showing how close you are to code burnout.

WakaTime Code Burnout Meter in Twitter Profile Inspired by trash's Twitter profile, this repo adds a burnout meter to your Twitter profile. It uses Wa

Travis A. Wagner 6 Jan 12, 2023
A Rust library for evaluating log4j substitution queries in order to determine whether or not malicious queries may exist.

log4j_interpreter A Rust library for evaluating log4j substitution queries in order to determine whether or not malicious queries may exist. Limitatio

Fastly 22 Nov 7, 2022
Determine which CPU architecture is used in a binary file.

cpu_rec_rs Determine which CPU architecture is used in a binary file. Example: $ cpu_rec_rs /bin/bash /usr/lib/firmware/rtlwifi/rtl8821aefw* Loading c

Raphaël Rigo 61 Jun 27, 2023
A reconciliation service to sync a key-value map over multiple instances.

reconcile-rs Docs This crate provides a key-data map structure HRTree that can be used together with the reconciliation Service. Different instances c

Akvize 3 Nov 8, 2023
A command-line tool and Docker image to automatically backup Git repositories from GitHub or anywhere

A command-line tool and Docker image to automatically backup Git repositories from GitHub or anywhere

Jake Wharton 256 Dec 27, 2022
A tool to dump exposed .git repositories

git-dumper This repository houses a tool to dump exposed .git repositories. This is a rewrite from the original GitTools's Dumper project, but in a re

HoLLy 10 Dec 13, 2022
A tool to dump exposed .git repositories

git-dumper This repository houses a tool to dump exposed .git repositories. This is a rewrite from the original GitTools's Dumper project, but in a re

HoLLy 8 Nov 1, 2022
The fastest CLI tool for prompting LLMs. Including support for prompting several LLMs at once!

cai - The fastest CLI tool for prompting LLMs Features Build with Rust ?? for supreme performance and speed! ??️ Support for models by Groq, OpenAI, A

Adrian Sieber 45 Jul 21, 2024
Gix is a command-line interface (CLI) to access git repositories

gix is a command-line interface (CLI) to access git repositories. It's written to optimize the user-experience, and perform as good or better than the

Sebastian Thiel 5.2k Jan 5, 2023
gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

Nick Gerace 215 Jan 4, 2023