<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Vijay Avarachen wrote:
<blockquote
 cite="mid576c9ac40601050808j499900f0j7d1b8b7de6ddac17@mail.gmail.com"
 type="cite">Hello,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My environment is using CentOS 4.2 on all workstations and I
would like to setup a local mirror just for the updates.&nbsp; I only x86,
x86_64 and ia64 architectures.&nbsp; How can I setup a rsync mirror of the
updates folder for only these architectures?&nbsp; I am very new to rsync,
so please apologize if this is a very ignorant question.
  <br>
  <br>
</blockquote>
I just finished figuring this out and documenting, so here you go. You
can probably fine tune it as this is my first attempt.<br>
<br>
### How to use rsync to create a local mirror of the insallation files
for CentOS, of course this could be used for anything else with
modifications.<br>
### We are going to create 2 files and edit a 3rd<br>
### 1- Create&nbsp; a directory to store some files in.<br>
### 2- A script to run rsync --- "update.sh"<br>
### 3- An exclusion list so we don't download a bunch of stuff we don't
want --- "rsync-exclude.list"<br>
### 4- We need to schedule the update to run by modifying ---
/etc/crontab, (crontab -e would be better)<br>
<br>
1- Create a directory to store the files "update.sh" and
"rsync-exclude.list"<br>
mkdir /opt/mirror<br>
<br>
2- Create "update.sh" script to run rsync<br>
# See a list of mirrors at
<a class="moz-txt-link-freetext" href="http://www.centos.org/modules/tinycontent/index.php?id=13">http://www.centos.org/modules/tinycontent/index.php?id=13</a><br>
# --delete means delete files locally that no longer exist on the mirror<br>
vi /opt/mirror/update.sh<br>
rsync -aqzH --exclude-from=/opt/mirror/rsync-exclude.list --delete
rsync.planetmirror.com::centos /var/ftp/pub/centos/<br>
# make it executable<br>
chmod 700 /opt/mirror/update.sh<br>
<br>
3- Create an exclude list<br>
vi /opt/mirror/rsync-exclude.list<br>
# add a list of the files you want to be excluded in the rsync process<br>
# files with a slash at the beginning are referenced to the root of the
rsync directory you connected to.<br>
# in this case rsync.planetmirror.com/centos (the ::centos above is the
/centos here)<br>
# files with a trailing slash indicate any directory with that name
anywhere. e.g "apt/" will skip any directory in any sub-tree named apt<br>
<br>
/2.1/<br>
/2/<br>
/3.1/<br>
/3.3/<br>
/3.4/<br>
/3.5/<br>
/3.6/<br>
/3/<br>
# The following need to be excluded from /4/<br>
apt/<br>
docs/<br>
isos/<br>
# The following need to be excluded from all directories they are
present in, like /4/os/ and /4/updates/&nbsp; ...&nbsp; We only want the i386
directory.<br>
SRPMS/<br>
alpha/<br>
ia64/<br>
ppc/<br>
s390/<br>
s390x/<br>
x86_64/<br>
<br>
<br>
<br>
4- Add a line to /etc/crontab to run the job once a day or once a week
or whenever, the following shows run on the 1st minute, 1st hour, Sunday<br>
<br>
1&nbsp; 1&nbsp; * * sun root /opt/mirror/update.sh<br>
<br>
<blockquote
 cite="mid576c9ac40601050808j499900f0j7d1b8b7de6ddac17@mail.gmail.com"
 type="cite">Thank you,<br>
Vijay Avarachen<br clear="all">
  <br>
-- <br>
"Knowledge is the only wealth that grows as you spend it, and
diminishes as you save it."<br>
-- ancient Sanskrit saying
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
CentOS-mirror mailing list
<a class="moz-txt-link-abbreviated" href="mailto:CentOS-mirror@centos.org">CentOS-mirror@centos.org</a>
<a class="moz-txt-link-freetext" href="http://lists.centos.org/mailman/listinfo/centos-mirror">http://lists.centos.org/mailman/listinfo/centos-mirror</a>
  </pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">-- 
Stephen Weyland</pre>
</body>
</html>