【linux命令】通过命令reposync同步repo到本地
通过命令reposync同步repo到本地
使用场景:一个服务器集群,只有一台服务器能连接外网,连接外网那台服务器就把外网源的包全部同步下来放在本地,集群中其他服务器就以这台服务器为包库使用 yum 安装,当然,同步完包之后还需要使用 createrepo 来生成 repodata。
命令reposync用法如下:
-h, --help
# 显示帮助信息
-c CONFIG, --config=CONFIG
# 指定配置文件(默认为/etc/yum.conf)
-a ARCH, --arch=ARCH
# 指定arch
--source
# 同时下载src和rpm文件.
-r REPOID, --repoid=REPOID
# 指定要查询的repo id,可以指定多次(默认为全部启用)。
-e CACHEDIR, --cachedir CACHEDIR
# 存储元数据的目录。
-t, --tempcache
# 使用临时目录存储/访问yum-cache。
-d, --delete
# 删除存储库中不再存在的本地包。
-p DESTDIR, --download_path=DESTDIR
# 指定下载路径:默认为当前目录。
--norepopath
# 不要将重命名添加到下载路径中。只能在同步单个存储库时使用(默认是添加重命名)。
-g, --gpgcheck
# 下载后删除GPG签名检查失败的包。如果至少有一个包被删除,退出状态为“1”。
-u, --urls
# 只列出要下载的内容的url,不要下载。
-l, --plugins
# 启用yum插件支持。
-m, --downloadcomps
# 同时下载comps.xml。
--download-metadata
# 下载所有非默认元数据。
-n, --newest-only
# 每个repo只下载最新的包。
-q, --quiet
# 输出尽可能少的信息。
--allow-path-traversal
# 允许同步存储在repo目录之外的包。这些包是在元数据中通过使用绝对路径或上一级“..”系统引用的并且出于安全原因通常会在reposync中跳过。
# 注意:使用此选项有潜在的安全隐患,因为通过提供恶意repodata,攻击者可以使reposync写入任意位置运行该文件系统的用户可以访问的文件系统。
示例:
#1. 同步整个源到指定目录
[root@V10SP1-1 pac]# reposync -p /root/pac
# 2. 同步指定源到指定目录
[root@V10SP1-1 pac]# reposync --repoid=ks10-adv-updates -p /root/pac/
# 3. 更新同步过的源
[root@V10SP1-1 pac]# reposync -n --repoid=ks10-adv-updates -p /root/pac
参考资料
1. reposync命令详解--reposync同步aliyunyum库到本地