如何从命令行同步FTP目录?

时间:2009-03-28 18:27:23

标签: php ftp synchronization copy

我有一个包含PHP文件和其他网站的网站。我想在我的本地网站副本和服务器上的网站之间进行一键同步。如果Eclipse PDT有一个命令行实用程序或插件来执行此操作,那将是很好的。

8 个答案:

答案 0 :(得分:11)

我会推荐lftp。它是一个复杂的,可编写脚本的命令行FTP客户端。

 lftp has builtin mirror which can download or update a whole
 directory tree. There is also  reverse  mirror  (mirror  -R)
 which  uploads or updates a directory tree on server. Mirror
 can also synchronize directories between two remote servers,
 using FXP if available.

lftp -f mirror.sh

<强> mirror.sh

open sftp://<username>:<password>@<ip address>
mirror -c /<source> /<destination>
exit

答案 1 :(得分:7)

我找到了WinSCP。这是FTP,免费和开源: http://winscp.net/eng/docs/start

它可以在命令行中与文件进行比较(同步)

答案 2 :(得分:6)

有一个名为 FTP Synchronizer 的工具(适用于Windows),可以从命令行运行。如果不使用任何FTP库,则无法通过FTP同步文件。这个库越成熟,它就会越快地同步文件(例如它可以在其内部数据库中缓存已经同步的文件信息)。

不喜欢FTP Synchronizer? Google for alternative

答案 3 :(得分:2)

我一直在我的专用Windows服务器上使用scriptFTP超过一年,以便将我的数据库备份目录与本地服务器同步。它是一款出色的产品,允许您编写脚本(达到相当复杂的级别)并安排几乎任何FTP任务。

我与产品无关 - 只是给用户留下深刻印象。该产品精确地解决了它旨在解决的问题,并且已经证明对我来说是完全可靠的。这是商业性的 - 35美元 - 但是我花在软件上的最好的35美元之一。

答案 4 :(得分:0)

您可以尝试Aptana(http://www.aptana.org/studio/download),它提供文件传输工具,使用FTP将项目与远程服务器同步。 您可以使用脚本视图启用一个不错的功能:在保存时上传当前文件!

答案 5 :(得分:0)

我做了一个简单的脚本

#!/bin/bash

FTPLOCALFOLDER=$1
FTPLINK=$2

ls "$FTPLOCALFOLDER" > "./filesdownloaded.txt"

curl -sS "$FTPLINK" | grep -oE "(?href=\").*?(?\")" | awk -F '"' '{print $2}' > "./filesinlink.txt"

grep -v -f "./filesdownloaded.txt" "./filesinlink.txt" > "./filestodownload.txt"

echo "Start downloading"
while read p; do
    echo "downloading..... $p from $FTPLINK$p"
    wget "$FTPLINK""$p" -O "$FTPLOCALFOLDER""$p"
done < "./filestodownload.txt"

您可以使用链接:

./wgetSync.sh

答案 6 :(得分:-1)

PhpStorm just added two-way sync (over FTP and others)进入他们最优秀的PHP IDE。此功能位于current 3.0 EAP(测试版),而不是2.1版本。

答案 7 :(得分:-1)

听起来像是一个完美的版本控制软件应用程序。选择mercurialgit并将其用于两台计算机上的目录中的版本控制和同步。 Mercurial整体上更加用户友好,并且在Windows上安装和存在更平滑,但在Windows上设置git也不再是一件麻烦。