rsyncで/var/www/html/centos以下にミラーを取得する方法のメモ。過去のリリースが含まれたミラーをrsyncで公開してくれているftp.rken.jpに感謝。

#!/bin/bash

rsync="/usr/bin/rsync -avSHP --delete"
mirror="rsync://ftp.riken.jp/centos"

verlist="6.3 6.4 6.5"
baselist="os updates addons extras isos"
archlist="x86_64"
repo_base_dir="/var/www/html/centos"


if [ -f /var/lock/subsys/rsync_updates ]; then
    echo "Updates via rsync already running."
    exit 0
fi

touch /var/lock/subsys/rsync_updates

for ver in $verlist
do
  for base in $baselist
  do
    for arch in $archlist
    do
      repo_dir=$repo_base_dir/$ver/$base/$arch/
      remote=$mirror/$ver/$base/$arch/

      mkdir -p $repo_dir

      $rsync $remote $repo_dir
    done
  done
done

rm -f /var/lock/subsys/rsync_updates