本站镜像源 https://mirrors.xyh.moe:8888/ 同步脚本
#! /bin/bash
########################################################################################################################
# rsync
# -a 归档模式
# -v 详细输出
# -r 递归模式
# -t 保留修改时间
# -L 符号链接重定向为文件
# --delete 删除多余文件
# --no-motd 忽略 rsync daemon 的 MOTD 信息
# --quiet, -q 不显示 error 之外的信息
# --mkpath 在 DEST 上创建 DEST 指定的路径字符串中不存在的路径
########################################################################################################################
debian=1
debian_security=1
almalinux=1
epel9=1
centos7=1
epel7=1
dockerce=1
kubernetes=1
archlinux=0
archlinuxcn=0
########################################################################################################################
readonly MIRRORS_DIR='/mirrors' # 定义镜像根目录
readonly TSINGHUA_URL='mirrors.tuna.tsinghua.edu.cn' # 清华大学
readonly NJU_URL='mirrors.nju.edu.cn' # 南京大学
readonly USTC_URL='rsync.mirrors.ustc.edu.cn' # 中国科学技术大学
readonly SJTU_URL='mirror.sjtu.edu.cn' # 上海交通大学
########################################################################################################################
########################################################################################################################
if [[ "${debian}" == "1" ]];then # Debian
if [[ ! -d $MIRRORS_DIR/debian/ ]];then
mkdir -p $MIRRORS_DIR/debian/
fi
debmirror \
--progress \
--nosource \
--no-check-gpg \
-d bookworm,bookworm-updates \
-a amd64 \
--i18n \
-e rsync \
-h rsync.mirrors.ustc.edu.cn \
-r debian \
$MIRRORS_DIR/debian/
fi
if [[ "${debian_security}" == "1" ]];then # Debian Security
if [[ ! -d $MIRRORS_DIR/debian-security/ ]];then
mkdir -p $MIRRORS_DIR/debian-security/
fi
debmirror \
--progress \
--nosource \
--no-check-gpg \
-d bookworm-security \
-a amd64 \
--i18n \
-e rsync \
-h rsync.mirrors.ustc.edu.cn \
-r debian-security \
$MIRRORS_DIR/debian-security/
fi
########################################################################################################################
########################################################################################################################
if [[ "${almalinux}" == "1" ]];then # Almalinux 9
printf "%-24s%s\n" Almalinux 9
# AppStream
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/AppStream/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/AppStream/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/AppStream/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/AppStream/x86_64/os/repodata/
# BaseOS
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/BaseOS/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/BaseOS/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/BaseOS/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/BaseOS/x86_64/os/repodata/
# extras
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/extras/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/extras/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/extras/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/extras/x86_64/os/repodata/
# CRB
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/CRB/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/CRB/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/CRB/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/CRB/x86_64/os/repodata/
# HighAvailability
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/HighAvailability/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/HighAvailability/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/HighAvailability/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/HighAvailability/x86_64/os/repodata/
# NFV
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/NFV/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/NFV/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/NFV/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/NFV/x86_64/os/repodata/
# plus
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/plus/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/plus/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/plus/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/plus/x86_64/os/repodata/
# ResilientStorage
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/ResilientStorage/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/ResilientStorage/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/ResilientStorage/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/ResilientStorage/x86_64/os/repodata/
# RT
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/RT/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/RT/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/RT/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/RT/x86_64/os/repodata/
# SAP
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/SAP/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/SAP/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/SAP/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/SAP/x86_64/os/repodata/
# SAPHANA
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/SAPHANA/x86_64/os/Packages/ $MIRRORS_DIR/almalinux/9/SAPHANA/x86_64/os/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/9/SAPHANA/x86_64/os/repodata/ $MIRRORS_DIR/almalinux/9/SAPHANA/x86_64/os/repodata/
# GPG-KEY
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/RPM-GPG-KEY-AlmaLinux $MIRRORS_DIR/almalinux/RPM-GPG-KEY-AlmaLinux
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/almalinux/RPM-GPG-KEY-AlmaLinux-9 $MIRRORS_DIR/almalinux/RPM-GPG-KEY-AlmaLinux-9
fi
########################################################################################################################
########################################################################################################################
if [[ "${epel9}" == "1" ]];then # EPEL 9
printf "%-24s%s\n" EPEL 9
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/epel/9/Everything/x86_64/Packages/ $MIRRORS_DIR/epel/9/Everything/x86_64/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/epel/9/Everything/x86_64/repodata/ $MIRRORS_DIR/epel/9/Everything/x86_64/repodata/
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/epel/RPM-GPG-KEY-EPEL-9 $MIRRORS_DIR/epel/RPM-GPG-KEY-EPEL-9
fi
########################################################################################################################
########################################################################################################################
if [[ "${centos7}" == "1" ]];then # CentOS 7
printf "%-24s%s\n" CentOS 7
# os
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/centos-vault/centos/7/os/x86_64/ $MIRRORS_DIR/centos/7/os/x86_64/
# updates
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/centos-vault/centos/7/updates/x86_64/ $MIRRORS_DIR/centos/7/updates/x86_64/
# extras
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/centos-vault/centos/7/extras/x86_64/ $MIRRORS_DIR/centos/7/extras/x86_64/
# GPG-KEY
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/centos/RPM-GPG-KEY-CentOS-7 $MIRRORS_DIR/centos/RPM-GPG-KEY-CentOS-7
fi
########################################################################################################################
########################################################################################################################
if [[ "${epel7}" == "1" ]];then # EPEL 7
printf "%-24s%s\n" EPEL 7
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/fedora-archive/epel/7/x86_64/Packages/ $MIRRORS_DIR/epel/7/x86_64/Packages/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/fedora-archive/epel/7/x86_64/repodata/ $MIRRORS_DIR/epel/7/x86_64/repodata/
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/epel/RPM-GPG-KEY-EPEL-7 $MIRRORS_DIR/epel/RPM-GPG-KEY-EPEL-7
fi
########################################################################################################################
########################################################################################################################
if [[ "${dockerce}" == "1" ]];then # Docker-ce
printf "%-24s%s\n" Docker-ce
# CentOS 7
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/docker-ce/linux/centos/7/x86_64/stable/ $MIRRORS_DIR/docker-ce/linux/centos/7/x86_64/stable/
# CentOS 9
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/docker-ce/linux/centos/9/x86_64/stable/ $MIRRORS_DIR/docker-ce/linux/centos/9/x86_64/stable/
# GPG-KEY
rsync -avrtL --delete --mkpath --no-motd rsync://$NJU_URL/docker-ce/linux/centos/gpg $MIRRORS_DIR/docker-ce/linux/centos/gpg
# Debian 12
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/pool/stable/amd64/ $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/pool/stable/amd64/
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/stable/binary-amd64/ $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/stable/binary-amd64/
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/InRelease $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/InRelease
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/Release $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/Release
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/Release.gpg $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/Release.gpg
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64 $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64.bz2 $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64.bz2
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64.gz $MIRRORS_DIR/docker-ce/linux/debian/dists/bookworm/stable/Contents-amd64.gz
# GPG-KEY
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/docker-ce/linux/debian/gpg $MIRRORS_DIR/docker-ce/linux/debian/gpg
fi
########################################################################################################################
########################################################################################################################
if [[ "${kubernetes}" == "1" ]];then # Kubernetes
printf "%-24s%s\n" Kubernetes
rsync -avrtL \
--exclude="*/*/*/*/*/arm64/" \
--exclude="*/*/*/*/*/ppc64el/" \
--exclude="*/*/*/*/*/s390x/" \
--exclude="*/*/*/*/*/aarch64/" \
--exclude="*/*/*/*/*/ppc64le/" \
--exclude="*/*/*/*/arm64/" \
--exclude="*/*/*/*/ppc64el/" \
--exclude="*/*/*/*/s390x/" \
--exclude="*/*/*/*/aarch64/" \
--exclude="*/*/*/*/ppc64le/" \
--exclude="*/*/*/arm64/" \
--exclude="*/*/*/ppc64el/" \
--exclude="*/*/*/s390x/" \
--exclude="*/*/*/aarch64/" \
--exclude="*/*/*/ppc64le/" \
--exclude="*/*/*/s390x/" \
--delete --mkpath --no-motd \
rsync://$NJU_URL/kubernetes/ $MIRRORS_DIR/kubernetes/
fi
########################################################################################################################
########################################################################################################################
if [[ "${archlinux}" == "1" ]];then # Archlinux
printf "%-24s%s\n" Archlinux
# core
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/archlinux/core/ $MIRRORS_DIR/archlinux/core/
# extra
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/archlinux/extra/ $MIRRORS_DIR/archlinux/extra/
# community
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/archlinux/community/ $MIRRORS_DIR/archlinux/community/
# multilib
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/archlinux/multilib/ $MIRRORS_DIR/archlinux/multilib/
fi
########################################################################################################################
########################################################################################################################
if [[ "${archlinuxcn}" == "1" ]];then # Archlinuxcn
printf "%-24s%s\n" Archlinuxcn
rsync -avrtL --delete --mkpath --no-motd rsync://$USTC_URL/archlinuxcn/x86_64/ $MIRRORS_DIR/archlinuxcn/x86_64/
fi
########################################################################################################################