
1.同步倉庫#!/bin/bash# # 腳本每月同步麒麟 V10 SP3 x86_64 和 aarch64 倉庫# 作者System Admin# 日期2026-09-02# 修改2026-10-13 適配實際倉庫目錄結(jié)構(gòu)# 修改2026-10-14 同步后用 mv 修正 reposync 多加的一層 repoid 目錄# # 配置變量REPO_ROOT/daxia/yum_reposLOG_FILE/var/log/sync_repo.logLOCK_FILE/var/run/sync_repo.lock# 實際倉庫目錄BASE_DIR$REPO_ROOT/v10sp3-2403/os/adv/lic/baseUPDATES_DIR$REPO_ROOT/v10sp3-2403/os/adv/lic/updates# 日志函數(shù)log(){echo[$(date%Y-%m-%d %H:%M:%S)]$1|tee-a$LOG_FILE}# 修正 reposync 目錄結(jié)構(gòu)# 用法: fix_repo_layout 目標(biāo)父目錄 repoid# reposync -p 會在目標(biāo)目錄下再建一層 repoid/Packages# 本函數(shù)把它修正為 目標(biāo)父目錄/Packagesfix_repo_layout(){localtarget_dir$1localrepoid$2localsrc_pkg$target_dir/$repoid/Packageslocaldst_pkg$target_dir/Packagesif[!-d$src_pkg];thenlogWARNING: 未找到$src_pkg跳過目錄修正return0fimkdir-p$dst_pkg# 若目標(biāo) Packages 已存在合并內(nèi)容if[-n$(ls-A$src_pkg2/dev/null)];thenmv$src_pkg/*$dst_pkg/2/dev/null# 處理隱藏文件一般沒有保險起見find$src_pkg-mindepth1-maxdepth1-execmv-f{}$dst_pkg/\;2/dev/nullfi# 刪除多余的 repoid 目錄rm-rf$target_dir/$repoidlog目錄修正完成:$src_pkg-$dst_pkg}# 檢查鎖文件防止重復(fù)運行if[-f$LOCK_FILE];thenlogWARNING: 同步腳本已在運行鎖文件存在退出。exit1fitouch$LOCK_FILE# 確保目標(biāo)目錄存在mkdir-p$BASE_DIR/x86_64$UPDATES_DIR/x86_64\$BASE_DIR/aarch64$UPDATES_DIR/aarch64# 開始同步log 開始同步麒麟倉庫 # 臨時repo配置文件X86_REPO_FILE/tmp/kylin_x86.repoARM_REPO_FILE/tmp/kylin_arm.repo# x86 repo 文件cat$X86_REPO_FILEEOF [ks10-sp3-os-x86] name Kylin Linux Advanced Server 10 - Os baseurl https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/x86_64/ gpgcheck 1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled 1 [ks10-sp3-updates-x86] name Kylin Linux Advanced Server 10 - Updates baseurl https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/updates/x86_64/ gpgcheck 1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled 1 EOF# arm repo 文件cat$ARM_REPO_FILEEOF [ks10-sp3-os-arm] name Kylin Linux Advanced Server 10 - Os (ARM) baseurl https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/aarch64/ gpgcheck 1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled 1 [ks10-sp3-updates-arm] name Kylin Linux Advanced Server 10 - Updates (ARM) baseurl https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/updates/aarch64/ gpgcheck 1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled 1 EOF# -----------------------------------------------------# 同步 x86_64 倉庫# -----------------------------------------------------log開始同步 x86_64 倉庫...# x86_64 basereposync-n-c$X86_REPO_FILE--repoidks10-sp3-os-x86\-p$BASE_DIR/x86_64/$LOG_FILE21if[$?-eq0];thenlogx86_64 base 同步完成fix_repo_layout$BASE_DIR/x86_64ks10-sp3-os-x86elselogERROR: x86_64 base 同步失敗fi# x86_64 updatesreposync-n-c$X86_REPO_FILE--repoidks10-sp3-updates-x86\-p$UPDATES_DIR/x86_64/$LOG_FILE21if[$?-eq0];thenlogx86_64 updates 同步完成fix_repo_layout$UPDATES_DIR/x86_64ks10-sp3-updates-x86elselogERROR: x86_64 updates 同步失敗fi# -----------------------------------------------------# 同步 aarch64 倉庫# -----------------------------------------------------log開始同步 aarch64 倉庫...# aarch64 basereposync-n-c$ARM_REPO_FILE--repoidks10-sp3-os-arm\-p$BASE_DIR/aarch64/$LOG_FILE21if[$?-eq0];thenlogaarch64 base 同步完成fix_repo_layout$BASE_DIR/aarch64ks10-sp3-os-armelselogERROR: aarch64 base 同步失敗fi# aarch64 updatesreposync-n-c$ARM_REPO_FILE--repoidks10-sp3-updates-arm\-p$UPDATES_DIR/aarch64/$LOG_FILE21if[$?-eq0];thenlogaarch64 updates 同步完成fix_repo_layout$UPDATES_DIR/aarch64ks10-sp3-updates-armelselogERROR: aarch64 updates 同步失敗fi# -----------------------------------------------------# 重建 repodata# -----------------------------------------------------log開始重建 x86_64 倉庫索引...createrepo$BASE_DIR/x86_64/$LOG_FILE21createrepo$UPDATES_DIR/x86_64/$LOG_FILE21logx86_64 索引重建完成log開始重建 aarch64 倉庫索引...createrepo$BASE_DIR/aarch64/$LOG_FILE21createrepo$UPDATES_DIR/aarch64/$LOG_FILE21logaarch64 索引重建完成# 刪除鎖文件rm-f$LOCK_FILElog 同步任務(wù)結(jié)束 2.同步CVE[rootjyt-kylin-kms daxia]# cat sync_kylin_updates_cve.sh#!/bin/bashwget-r-np-nH--cut-dirs2-Rindex.html*\https://update.cs2c.com.cn/NS/UpdateInfo_motive/V10SP3-2403/\-P/daxia/yum_repos/UpdateInfo_motive/