0

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

3
  • 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, 2011 at 4:46
  • It does have IIS. I don't know anything about WebDAV - any suggested reading?
    – jmacinnes
    Dec 20, 2011 at 5:08
  • learn.iis.net/page.aspx/350/…
    – tony roth
    Dec 20, 2011 at 14:19

3 Answers 3

0

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.

0
1

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.

4
  • 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, 2011 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, 2011 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, 2011 at 16:49
  • Using source control system would be a Right Thing indeed
    – Sergei
    Dec 23, 2011 at 13:24
0

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

Example of command line FTP Client: PSFTP

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .