I know what you did between 14-18, computer.
September 3, 2010 11:33 AM   Subscribe

I'm looking for an osx app which would periodically check a folder on a remote WebDAV volume and download anything which has appeared on the same day.

I do retouch work for a photographer who uploads images to his server and gives me a ring, whereupon I go home and download the daily folder overnight and work on it in the morning.

I'm looking for an application which would login to the server every fifteen minutes between certain hours of the day (he usually uploads the stuff between 14-18), check two directories for anything which might have been uploaded that same day and download whatever that would be. (I don't wan't to have synchronized folders because all the old stuff is left in the original folder as backup)

Ideally, it would give me a message through SMS / Twitter / Email if the transfer aborted for some reason, as well as a confirmation of successful download & list of folders downloaded. Being able to remotely initiate the check would be a pretty pony indeed.

In eager anticipation of your brilliant suggestions.
posted by monocultured to Computers & Internet (4 answers total) 1 user marked this as a favorite
Never used it, but: GoodSync?
It does syncing with WebDAV, supports filtering by modification date, support for scheduling, has email notifications (you might need an email-to-SMS/twitter thingy).
posted by misterbrandt at 12:18 PM on September 3, 2010

Best answer: macs can mount webdav volumes, and i've written a python script for you that'll monitor a set of directories for changes and copy any file/subdirectories that a) aren't stored locally, and b) are modified today, to a local directory.

here's what you need to do:
  1. Open a Finder window, go to "Go -> Connect to server..." and enter in "http://<server>:<port>" to mount the server. This server gets mounted to /Volumes/<server>
  2. Go to here: http://pastebin.com/pn8FwMKm, download the file somewhere handy as "monitor_directory.py"
  3. Open this file in TextEdit or any other editor, and look for the following constants inside it and modify them:
    • DIRECTORIES: list of directories you want to monitor. These will look like "/Volumes/<server>/dir1, ...
    • DESTINATION: where you want to copy new files/subdirectories to
    • START_TIME: when you want to start monitoring for new stuff
    • END_TIME: when you want to stop monitoring for new stuff

  4. Open up Terminal, change directory to where you saved "monitor_directory.py", and execute:
    python monitor_directory.py

that should work! i tested it locally. i made the following assumptions:
  • If you're monitoring e.g. /tmp/dir1/ and /tmp/dir2/ and there are new files e.g. /tmp/dir1/file1 and /tmp/dir2/file1 then only one version of file1 will be copied to the local directory, i.e. filenames within all monitored directories must be unique.
  • Mac's WebDAV mounting capabilities are robust (if they aren't you'd need to put together a Python WebDAV client rather than relying on Mac to get it right
if this works for you then drop me a memail and i'll extend it to do twitter/email notifications, memail me if something comes up and we can sort it out.
posted by asymptotic at 2:30 PM on September 3, 2010 [2 favorites]

Best answer: zsh has file globbing extensions which will match files based on a date range.

rsync, of course, will simply ensure two locations are in sync without copying everything over again, and is highly customizable.
posted by vsync at 6:33 PM on September 4, 2010

Response by poster: Most excellent, thanks for the suggestions. And holy crap thanks for your effort asymptotic — I'll take you up on that customization offer once I get it up and running. Cheers.
posted by monocultured at 11:17 AM on September 5, 2010

« Older I love a cutter. Help me help her.   |   Can I bring a backpack to the US Open? Newer »
This thread is closed to new comments.