Automated FTP to upload new files to web server?

纵然是瞬间 提交于 2021-02-07 21:51:48

问题


I'm looking for a FTP client that I can use to upload new files from a local development machine to a remote web-server. I only want to upload the newly edited files though.

Is there a command line utility that can do this, that I can add into an automated process? Is there a GUI client available that can do this? Would be nice to have it cross-platform too. Any ideas?


回答1:


The Mercurial FTP Extension should do this for you, although I haven't tried it myself.




回答2:


There is a 'backup' program called SyncBack that does this.

You can find out more about it here: http://www.2brightsparks.com




回答3:


You have two options:

  • Schedule a frequent synchronization of a local folder against a remote folder (or moving all files from local folder to a remote folder, if that's more appropriate)
  • Use a tool that can watch for changes in a local directory and reflect them on a remote directory

You can implement both these options with WinSCP FTP client.


Scheduling

To synchronize changes in a local directory to a remote directory, use the WinSCP synchronize script command from a batch file like:

winscp.com /ini=nul /log=c:\writable\path\to\synchronize.log /command ^
    "open ftp://username:password@ftp.example.com/" ^
    "synchronize remote C:\local\path /remote/path" ^
    "exit"

And schedule the batch file to be run frequently using Windows scheduler.

If you do not want to keep a local copy of the images, just move them to the FTP server, instead of synchronizing them. For that, replace the

"synchronize remote C:\local\path /remote/path" ^

with the put -delete command like:

"put -delete C:\local\path\* /remote/path/" ^

For details see also a guide to automating file transfers (or synchronization) to FTP server.


Watching for changes

Use "Keep remote directory up to date" function of WinSCP.

It can be used both in command-line/console mode using the keepuptodate command, like:

winscp.com /ini=nul /log=c:\writable\path\to\synchronize.log /command ^
    "open ftp://username:password@ftp.example.com/" ^
    "keepuptodate C:\local\path /remote/path" ^
    "exit"

Or in a graphical/GUI mode. You can launch the graphical mode in WinSCP GUI (after logging in) or from a command-line using the /keepuptodate switch like:

winscp.exe ftp://username:password@ftp.example.com/ /keepuptodate C:\local\path /remote/path

(I'm the author of WinSCP)



来源:https://stackoverflow.com/questions/4823126/automated-ftp-to-upload-new-files-to-web-server

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!