Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

haravikk

macrumors 65832
Original poster
May 1, 2005
1,503
24
I've found plenty of articles on how to get Time Machine to backup TO a network drive, however I have the opposite problem; I have a Windows machine on my network, with some shared folders, and I'd like to back-up their contents using Time Machine on my Mac since it has plenty of space, without having to copy their contents somewhere first if possible.

However, Time Machine only lets you choose what to exclude, it doesn't let you specify special sources to backup. I was thinking a symbolic link from /Volumes, but I've no idea where to point it to.

A second relevant question as well would be; how do I get OS X to automatically connect to a Windows share when it's available? The Windows machine isn't always on when I start up my Mac, but I don't want to have to manually connect all the time.

Thanks!
 
There must be some way around it though, as once the SMB share is connected it's basically just a folder following all the normal rules. I just need some way to make Time Machine see it as such, or trick it into thinking the SMB share is a drive no different from any other that it would normally back-up.
 
Okay, well there must at least be some way to mount and copy files from an SMB share using command line, but it's a really difficult thing to search one.

Does OS X come with SMB command line utilities? Don't suppose anyone knows of a simple shell or apple script command for connecting to a SMB share and either creating a link of some kind that Time Machine will follow, or then proceed to copy from the share to a folder somewhere (preferably with awareness of what's already been copied to avoid copying everything).
 
This was the same problem that I was trying to solve as well.

As long as you don't mind having a live backup of your data, the best solution that I have found is to have an extra drive hooked up to your Mac.

Use something like File Synchronization to keep a synchronize copy of the data locally. And then use Time Machine locally to back up that data.

For my situation, at home, I was looking to backup drives from an Airport Express Base Station - and this was the best solution that I could find. Extra drives are real cheap to come by, and I definitely don't mind having an 'extra' copy of my data anyway.
 
Here's the solution I found in the end:

Code:
echo "#--- $(date)"

SMBUSER="My%20Username"
SMBPASS="MyPassword"
SMBNAME="MachineName"
SMBPATH="ShareName"

MOUNT_PATH="/Path/To/My/Mount/Point"
RSYNC_TARGET="/Path/To/Backup/Folder"

if mount_smbfs "//$SMBUSER:$SMBPASS@$SMBNAME/$SMBPATH" "$MOUNT_PATH"
	then
		echo "$SMBNAME/$SMBPATH connected, copying file(s)..."
		rsync -ru --delete "$MOUNT_PATH" "$RSYNC_TARGET"
		umount "$MOUNT_PATH"
		echo "Done."
	else
		echo "$SMBNAME/$SMBPATH was not found."
fi

  • SMB Variables (because these are formed into a URL make sure not to include spaces or other special characters in any of these):
    • SMBUSER - should be the username to log-in as on the SMB share.
    • SMBPASS - the password to log-in with on the SMB share.
    • SMBNAME - the NET BIOS name, DNS address, or IP address of the machine with the SMB share.
    • SMBPATH - the name (and path if relevant) of the SMB share.
  • MOUNT_PATH - the path to use as a mount point, this can be anywhere just make sure to create a directory with the same name (or it'll complain that the mount point doesn't exist).
  • RSYNC_TARGET - the path to copy the files to.

The script will simply try to connect to a SMB share, copy the files from it to another location using rsync (so only changed files are copied, with the --delete flag any files no longer in source will be removed from destination. The share is then unmounted automatically.

The script is designed to be logged somewhere so make sure to tell it where, as I'm not sure how to redirect future output of a script to a file, so you'll need to invoke with something like:

Code:
sh /Path/To/My/Script.sh > /Path/To/My/Log.txt

Anyway, with this set up and running periodically you will keep a folder on your machine in sync with the SMB share, and if you make sure time machine can see the target folder then it will back-up with file-history.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.