How can I copy a file from one Windows server to another in a script?
I have two Windows 2003 servers, and I want to write a backup script on one that will copy a file to the other. What's the most idiomatic way to do this on Windows? Essentially, I'm looking for the Windows equivalent of
$ scp file.tar.gz user@host:/wherever
In response to questions: At the moment I'm only thinking about one file, a database backup. Potentially I might end up with multiple files, but I'm not that interested in rsync-like systems that track which files have changed and back up accordingly.
I'd like a solution that works with the servers on different networks, with firewalls in between. Opening up a single port on the firewall to a reasonably secure service ought not to be a problem.
Personally, I'd do it by mapping a drive from one server to the other and then copying the file to the mapped drive. Something like:
net use F: <\\path\to\share> /user:Username password
xcopy <file> F:
net use F: /delete
You could use robocopy instead, if you've got some more serious mirroring to do. I usually finish up by using blat or something similar to send me an email with a directory listing of the backup target, just to be sure everything made it over.
copy/xcopy/robocopy and if you have the admin permissions, use the administrator shares like
\\server\c$
freeSSHd + PSCP/PSFTP