搭建yum源在以前的文章里面提起过,但是讲的是手动操作,这次我们高大上一点,自动化shell脚本。
首先,我的服务器是一台桌面版的ubuntu(自己在上面写代码用的),需要为自己的虚拟机(centos)提供yum源的rpm包安装,以及部分常用的其他tar.gz包文件。所以我将ubuntu划分为了三部分
第一部分 :yum源
nginx或者apache来提供http方式的在线yum,采用rsync同步公网的yum源。
按照这个思想,我把yum源放到了/var/yum/centos目录下面。为了方便同局域网的人,yum源只同步centos6版本(同事在用)和centos7版本(我自己用)的数据。
(1)安装rsync,rsync软件是用来同步公网上的yum源,选用的同步源一定要支持rsync,不然rsync不会执行。
(2)安装httpd(或者nginx),用来实现局域网yum源服务。
(3)安装createrepo,用来创建yum源的repo文件。
这样我们使用apt-get install nginx/httpd rsync createrepo依次(一次)安装。
当然我们说要实现shell脚本就一定要实现shell脚本,不多说,贴shell脚本代码
#!/bin/bash
YUM_SITE="rsync://mirrors.ustc.edu.cn/centos/"
LOCAL_PATH="/var/yum/centos/"
LOCAL_VER="6 6* 7 7*"
LOCK_FILE="/var/log/yum_server.pid"
LogFile=/var/yumlog/`date +"%Y-%m-%d"`.log
RSYNC_PATH="/usr/bin/rsync"
REPO_PATH="/usr/bin/createrepo"
echo "rsync start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "==============================================" >> $LogFile
for VER in $LOCAL_VER
do
if [ ! -d "$LOCAL_PATH$VER" ] ;then
echo "Create dir $LOCAL_PATH$VER" >> $LogFile
mkdir -p $LOCAL_PATH$VER` >> $LogFile
fi
echo "Start rsync $LOCAL_PATH$VER" >> $LogFile
echo "==================================" >> $LogFile
$RSYNC_PATH -avru --delete $YUM_SITE$VER $LOCAL_PATH >>$LogFile
done
echo "rsync end at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "============================================" >> $LogFile
$REPO_PATH --update $LOCAL_PATH >> $LogFile
echo "$(date +"%Y-%M-%D %H:%M:%S") INFO yum information update ended" >> $LogFile
=================================分割线=================================
这个shell脚本在使用的时候只需要更改几个地方就能立即使用,在写这个脚本的时候,参考了这位大佬的文章——用rsync同步公网centos yum源做本地yum源服务器(作者:minminmsn),在此表示感谢。这个脚本是使用rsync软件来进行yum源的同步。
文章评论