我有一套定期(大约每天一次)为具有相关文件夹结构的站点生成一组静态HTML页面的工具。
然后,我需要将这些文件放到生产服务器上,我的问题是服务器运行IIS(6我认为),我只有普通的FTP访问。
我需要一种方法来自动化发布新网站的过程,并且每次发布文件时都需要全部更换这些文件,例如删除整个文件夹和内容,然后放置新的文件。
我的源服务器是一个Ubuntu机器,我已经完全控制了这一点,我已经尝试使用CurlFTpFS,但它似乎太慢,我想要做什么,并locking。
写一个脚本。 你可能会发现Expect是合适的,对于一些人来说,它的学习曲线较less。 我通常做这样的事情redirectinput在bash中:
ftp HOST<<_EOF USER PASSWORD ls _EOF
期望
如果可以的话使用rsync。 Rsync允许你生成diff文件,这些文件可以显示已经改变的内容,目标上存在的内容,而不是源文件中的内容等。这将使这种任务变得更容易。
有几个Windows的rsync重新打包。
我会用ftpfs检出FUSE,这样你可以简单地通过ftpfs挂载外部服务器,并像普通的Filesystem一样使用它,所以只需编写一个脚本来更新整个页面。 我在我的Mac上使用FUSE和ftpfs,它在那里performance相当好,所以我猜Linux应该不会有太大的变化。
cwrsync是Windows的rsync端口 – 易于安装,如果你有pipe理员访问(这听起来像你可能不)。 如果可能的话,你的主机也可以在服务器上设置rsync来从你的Ubuntu盒子中取出。 如果两者都不可能,可以寻找更灵活的主机来满足您的需求。
基于保险丝的ftp和/或脚本,将会变得更加困难,除非你有一小部分文件 – 你可能会超时,部分上传等。rsync是非常简单的,真正的devise来pipe理这个挑战types。
Yuu可以使用Kermit FTP客户端,它具有自己的脚本语言/语法来自动进行FTP上传。 似乎很挑剔,但看起来应该能够做到这一点
试试lftp ; 它可以编写脚本等,并支持“mrm”(multi-remove)和“mput”(multi-put)等命令。 它的包装等Ubuntu的,所以
aptitude install lftp
会让你轻松试用。