Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
Hello Arthur, what's the sync protocol for? If a read-only client connected to the slave server does an update of a file that has been changed in the master but has not yet been rsynced to the slave, will the sync protocol be used to provide the client with the updates in the master, or will the client only get the updates that had already been rsynced to the slave server? Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality & Systems: Software Engineer Tel.: +32 56 43 42 45 Fax: +32 56 43 44 46 E-mail: jan.keirse at tvh.com Contactsheet: JAN KEIRSE TVH FORKLIFT PARTS nv-sa - BRABANTSTRAAT 15 - B-8790 WAREGEM Take a break to visit our site and tell us how we can help you today: www.tvh.com Before printing I think about the environment. "Arthur Barrett" <arthur.barrett at march-hare.com> schreef op 06/05/2008 23:55:44: > Jan/Gerhard, > > OK - second try - I left out some important info the first time... > > > > Great - we definitely need someone to write the documentation... ;) > > > > > > This feature has been stable for some time, I've been using > > > it myself to > > > test it out (albeit on a debian linux 'server'). > > > > Could you give us a hint on how to get it up and running? > > > > Another documentation volunteer! The current documentation is in the > source code ;) > > > Overview > -------------- > > 1. The slave communicates to the master cvsnt server using the :sync: > protocol - so that must be installed. > > 2. You need to install some mechanism to 'sync' the master repo back to > the client (excluding the CVSROOT directory). On linux you can use > 'rsync' or on windows or linux you can use 'unison'. Our current setup > uses 'rsync' 2.6.9. > > 3. You can optionally create a CVSROOT script (postcommit, postcommand) > on the 'slave' to automatically fire off an rsync. > > > Detail > -------------- > > 1. > Obviously you get the 'master' repository up and running first (which is > the same as it has always been) then you set up a slave. > > 2. > On the slave you need to setup the sync protocol (examples taken from > our server with only the physical locations and passwords changed): > > 'slave' /etc/cvsnt/Plugins > SyncProtocol=1 > > 'slave' /etc/cvsnt/PServer > Repository0=/opt/repo/cvs > Repository0Name=/cvs > Repository0Description=CVSNT Repository mirror > Repository0Default=1 > Repository0Publish=1 > Repository0Online=1 > Repository0Type=3 > Repository0RemoteServer=remote.server.org > Repository0RemoteRepository=/usr/local/cvs > Repository0ProxyPhysicalFiles=/var/repo/proxy > Repository0ProxyPasswdFiles=1 > Repository0RemotePassphrase=&^$&(HDIDLS? > CompressionLevel=0 > CertificateFile=/etc/cvsnt/secret.pem > PrivateKeyFile=/etc/cvsnt/secret.pem > AnonymousUsername=cvs > AnonymousProtocol=pserver > > 'master' /etc/cvsnt/Plugins > SyncProtocol=1 > > 'master' /etc/cvsnt/PServer > > Repository0=/var/repo/cvs > Repository0Name=/usr/local/cvs > Repository0Description=cvsnt main repository > Repository0Default=1 > Repository0Publish=1 > Repository0Online=1 > CertificateFile=/etc/cvsnt/brain.crt > PrivateKeyFile=/etc/cvsnt/brain.key > ServerPassphrase=&^$&(HDIDLS? > RunAsUser=woopie > AllowTrace=1 > AnonymousUsername=cvs > AnonymousProtocol=pserver > > These settings are also available in the Windows CVSNT Control Panel. > > The 'passphrases' I believe are 'passwd' encrypted. > > > 3. > You need to install some mechanism to 'sync' the master repo back to the > client (excluding the CVSROOT directory). On linux you can use 'rsync' > or on windows or linux you can use 'unison'. Our current setup uses > 'rsync' 2.6.9. > > note: this described technique uses rsync - do not attempt to set up > rsync on windows - use unison instead. > Note2: the commercial version of CVSNT 'CVS Suite Plus' or 'CVS Suite > Multi Site' due for release in a few months uses a plugin for this part > - the 'sync' trigger. > > 'slave' crontab (on windows use the windows scheduler) > # m h dom mon dow command > # run every 5 minutes > */5 * * * 0-6 /path/to/rsync.sh > > > > You can optionally create a CVSROOT script (postcommit, postcommand) on > the 'slave' to automatically fire off an rsync. > > > 'slave' CVSROOT/postcommand: > # > /path/to/rsync.sh > > > > 'slave' /path/to/rsync.sh > > #!/bin/sh > # /usr/sbin/ntpdate 0.au.pool.ntp.org > > ps -ef | grep /usr/bin/r[s]ync > while [ "$?" -eq 0 ] > do > exit > echo "rsync users still active, try in 30 seconds" > sleep 30 > ps -ef | grep /usr/bin/r[s]ync > done > > echo "+++++++++++++++++" >> /path/to/cvs-sync.log > date >> /path/to/cvs-sync.log > echo "+++++++++++++++++" >> /path/to/cvs-time.log > date >> /path/to/cvs-time.log > echo "+++++++++++++++++" >> /path/to/cvs-sync.err > date >> /path/to/cvs-sync.err > /usr/bin/time -a -o /path/to/cvs-time.log /usr/bin/rsync -4 -avz > --delete --exclude CVSROOT remote.server.org::rsync-name /opt/repo/cvs > >> /path/to/cvs-sync.log 2>> /path/to/cvs-sync.err > date >> /path/to/cvs-sync.log > echo "-----------------" >> /path/to/cvs-sync.log > date >> /path/to/cvs-time.log > echo "-----------------" >> /path/to/cvs-time.log > date >> /path/to/cvs-sync.log 2>> /path/to/cvs-sync.err > echo "-----------------" >> /path/to/cvs-sync.err > > > > 'master' /etc/rsyncd.conf > [rsync-name] > comment = master private sync > path = /var/repo/cvs > use chroot = yes > read only = yes > list = no > uid = nobody > gid = nogroup > hosts allow = 11.11.111.111 22.22.222.222 33.333.0.0/16 > 10.0.0.0/8 > strict modes = yes > ignore errors = no > ignore nonreadable = yes > timeout = 600 > refuse options = checksum dry-run > dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 > *.tbz > > > > OK - that really is pretty much all I have. > > > Regards, > > > Arthur > **** DISCLAIMER **** <A HREF="http://www.tvh.be/newen/pages/emaildisclaimer.html"> http://www.tvh.be/newen/pages/emaildisclaimer.html </A> "This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message."