rsync scheduler for open source mirror site
Python Shell
Switch branches/tags
Permalink
Failed to load latest commit information.
config
docs/man
mirror
package/archlinux
test
util/systemd/system
.gitignore
.travis.yml remove 2.6 for sometime Sep 26, 2014
AUTHORS
ChangeLog
LICENSE
MANIFEST.in
README.md
create_potfiles_in.py
ez_setup.py for python 3 Nov 19, 2014
gettextize.sh
msgfmt.py
setup.cfg
setup.py

README.md

Mirror

PyPi version Build Status

Mirror is an open source python application for mirror site (e.g. mirror.bjtu.edu.cn) to sync files from upstreams (it uses rsync internally), it actually works like a cron, but still has some differences. It has been served for mirror.bjtu.edu.cn with more than 40 rsync tasks.

You are welcome to send comments, patches and any others to github or to @idealities.

Homepage: http://mirror.bjtu.edu.cn

Authors

  • Shang Yuanchun
  • Bob Gao

For contributors and past developers see: AUTHORS

Installation Instructions

You can install mirror by running pip:

sudo pip install mirror

Or if you want to build and install from source:

python setup.py build
sudo python setup.py install

If from source, you can install it to a custom directory:

python setup.py install --root=/tmp

After that, you are going to set up environment, you are encouraged to add a specific user to run mirrord, here we suppose the username is mirror and its home directory is /home/mirror.

Make necessary directories:

sudo mkdir /var/log/mirrord /var/log/rsync
sudo chown mirror:mirror /var/log/mirrord /var/log/rsync
mkdir ~/.config/mirror
cp config/mirror.ini ~/.config/mirror/

Now you can edit mirror.ini to fit your needs and run:

mirrord

and that's done. Also you can use man mirrord or mirrord -h to read the documents.

If mirrord is running, you can run:

mirrord -t

to show the current task queue.

screenshot

Contact/Support

Email: idealities@gmail.com

Features

  • It's simple and easy to add a mirror
  • You can set a priorty for each mirror, from 1 to 10, 1 is highest
  • And scheduler will schedule a task depending on current conditions
  • You can also set a timeout for each mirror
  • Support for two stage syncing (for ubuntu, debian)
  • You can also use it as another cron...