Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am looking to copy files from a local windows machine (my development machine) to another windows machine (the production machine).

Currently, the only way I can move files from one machine to the other is by manually using Ftp FileZilla client. The production server is hosting a non-SSL enabled FTP server.

I am looking for advice for the easiest way to securely copy a directory from the development machine to the production machine. The only requirement is that the solution allows for copying directories in a scripted manner.

I am aware of the following possibilities:

  1. Create a VPN and share a folder
  2. Set up a SSH server on the production machine

The development machine is running Windows 7 and the production machine is an Amazon EC2 instance running Windows Server 2008 R2. They are not on the same network or Homegroup.

What would you recommend?

Thanks, Jason

share|improve this question
    
does the server have iis running on it? If so you could probably setup a webdav session and copy via that. –  tony roth Dec 20 '11 at 4:46
    
It does have IIS. I don't know anything about WebDAV - any suggested reading? –  jmacinnes Dec 20 '11 at 5:08
    
learn.iis.net/page.aspx/350/… –  tony roth Dec 20 '11 at 14:19

3 Answers 3

up vote 0 down vote accepted

there are a couple of ways to perform this:

Microsoft offer Web Deploy http://www.iis.net/download/webdeploy

which i've had problems with deploying large sites (~3-500 MB)

If you want SSH I can recommend a powershell based SSH server http://www.powershellinside.com/powershell/ssh

my personal fav is using git - you can leverage github to have an external repo; or you can push from your dev to your prod systems. Also makes change auditing / roll-back a lot easier. you'll need: tortoise git - http://code.google.com/p/tortoisegit/downloads/list msysgit - http://code.google.com/p/msysgit/downloads/list

if you're daring you could also use dropbox http://www.dropbox.com to sync the files to one or more web servers.

share|improve this answer
    
Thanks, I ended up using WebDav –  jmacinnes Jan 13 '12 at 18:36

Another option is to setup a source control repository somewhere and have the server automatically pull new revisions in is production tree. Mercurial seems well fitted for that.

For the security side of things, you can setup HTTPS as transport and require logon for accessing the source control.

share|improve this answer
    
I thought about this, but how would I automate the download from the repository to the remote server? I want to execute the deployment script from the development server. –  jmacinnes Dec 20 '11 at 13:02
    
Simple way: have the server pull the latest source at regular interval from a single source and update that source whenever you want to deploy. –  Stephane Dec 20 '11 at 16:47
    
Complex way: write a simple PHP app that calls the update script and invoke it whenever you want. Use SSL certificate user mapping and directory ACLs to protect the script and it'll even be easy to use while staying secure. –  Stephane Dec 20 '11 at 16:49
    
Using source control system would be a Right Thing indeed –  Sergei Dec 23 '11 at 13:24

You can use a command line FTP client and a script to automate the FTP commands.

Example of command line FTP Client: PSFTP

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.