Charlie Harvey

Collaborative pornography and making Windows 7 rsync

This should be an unusual blog. I’m attempting to combine a belated shoutout for nor’s collaborative porn project, OpenSauce with a howto guide to making rsync work on windows. Lets see how it that works out.

The OpenSauce Project

Nor's radicalx project has previously investigated the connections between activist and "kinky" cultures. Now she is interested in exploring the connections between the free culture/free software movement and sexuality in cyberspace. Using a simple wiki, the project investigates what collaborative pornography might look like. Rather than a broadcast, centred, patriarchal model of sexuality, where some distant professional decides what are the rules of the game, OpenSauce uses the technology of the "open source" movement to enable the internet community to create a collaborative fantasy together.

Like so many projects these days, its made out of Drupal. I helped Nor develop a little script for her exhibit at the Brookes Degree Show to suck the node revisions out of drupal and make a customised browsing interface that lets you investigate the diffs between the revisions. Now the wireless network at Brookes was until this week non-existent and in general may well be unreliable. So the approach that we decided to take was to make a script that generated flat html files. Those files could then be rsync-ed to the exhibition server as and when the network was functional. Unfortunately, we had to make the rsyncing on the brain dead crock of shite OS that is windows. *shudder*

opensauce investigator screenshot

So, How do you make windows do a regular rsync?

OK, let's outline the technical challenge. As we’ve said, we are on an unreliable network. We want to rsync our html files regularly (say every 10 minutes). So, first of all we need to make windows 7 run an rsync. Then we need to find something that lets us run regular jobs; the scheduler doesn't cut it — once a day is not regular enough. Hah, and we need to run rsync on a nonstandard port. Just to make things interesting.

First Challenge: rsync on windows 7

Thanks to the lovely rsync.net who were kind enough to post about it, I found cwRsync which is the cygwin version of rsync. Good enough? Hmmmmmm... well I did swear a lot, but after I remembered how to set the $HOME variable under DOS. Here we do the making a ssh key thang, but in a win7 stylee, props to the rsync.net crew for this.

  • First download the installer from sourceforge. Run it and let it install to the default place: C:\Program Files\cwRsync . That's important apparently.
  • Now to generate our key. cd "c:\program files\cwrsync\bin" set HOME=/cygdrive/c/ ssh-keygen.exe -t rsa -N '' Notice the /cygdrive/c/ bit. rsync.net's tute doen't mention that. It's important though. I’ve used different slashes from yer usual windows ones and prepended /cygdrive/ to the filepath I am using as my home directory.
  • Next, you'll be asked to choose a filename, and choose a passphrase. Press enter three times ;-)
  • Now we need to push our key on to the server, so we'll be able to log on without a password. We are running ssh on a nonstandard port, 44 in this case. > rsync.exe -ave 'ssh.exe -p44' "/cygdrive/c/.ssh/id_rsa.pub" user@example.com:~/public-key" > ssh.exe -p44 user@example.com $ cat public-key >> .ssh/authorized_keys $ exit >

OK, now we are ready to make a DOS batch file that will let us sync shit up. Fire up notepad (!) and do something like this. ECHO OFF SET HOME=/cygdrive/c/ SET CWRHOME=%PROGRAMFILES%\CWRSYNC SET PATH=%CWRHOME%\BIN;%PATH% rsync.exe -qze 'ssh.exe -p44' user@example.com:~/public_html /cygdrive/c/html

Almost there…

Now we have a batch file that we can run whenever. Now we need something less brain dead than the windows scheduler to let us run our batch script regularly. Any windows geeks out there? I would love to hear if there is a native way to make this happen. Anyhow, I found a rather nice tool called zCron. Its a sort of graphical crontab. Download and install, then do this.

  • OPen up the UI. It might have gone to your tray. A rightclick and show should bring it up.
  • Create new crontab, give it a label and use the ".." button to point to your sync batch file.
  • Click Batch and choose to run hidden, close window after run and "Windows Shell". OK that.
  • Go to the scheduler tab, click scheduler and choose every 10 minutes (or whatever). Check "Weekday", and click "Every Day".
  • In the run as tab, set your usename and password. Click Save and you're ready to rock.


Comments

  • Be respectful. You may want to read the comment guidelines before posting.
  • You can use Markdown syntax to format your comments. You can only use level 5 and 6 headings.
  • You can add class="your language" to code blocks to help highlight.js highlight them correctly.

Privacy note: This form will forward your IP address, user agent and referrer to the Akismet, StopForumSpam and Botscout spam filtering services. I don’t log these details. Those services will. I do log everything you type into the form. Full privacy statement.