是否有一个有宏的免费ftp客户端


2

目前我正在使用filezilla将新版本的站点部署到实时服务器。麻烦的是,有一个或两个配置,bootstrap等文件对于实时站点是不同的,我必须小心不要覆盖。还有很多代码永远不会改变(例如我使用的是zend框架,它始终是相同的)。

我希望能够每次都记录一个宏来上传同一堆文件和文件夹,不包括子目录和不应该被覆盖的文件。

有没有ftp客户端提供这个?

Answers:


0

的ncftp 支持宏。但我宁愿使用真正的脚本语言,然后只转移必须转移的内容。我更喜欢ssh / sftp而不是ftp。


0

我已经设置了期望脚本来做这件事。如果你在客户端的Windows上,那么你需要安装cygwin with expect。在linux上,您只需要确保安装了expect解释器。这是一个示例脚本,我用来使用scp将文件从Windows框传输到Linux服务器。它捕获密码,然后使用它为单个文件多次调用scp。您可以使用sftp和通配符发送多个文件,甚至ftp,但我不喜欢ftp。 Ftp以明文方式发送密码。

#!/usr/bin/expect  --

# Prompt for the password and store it in $PASS
send_user "\n"
send_user "Password? "
stty -echo
expect_user -re "(.*)\n" {set PASS $expect_out(1,string)}
send_user "\n"
stty echo

# Set user name and parameters
# You can remove the above password entry and just set it here.
set user "username"
set server "server.com"
# set PASS "superSecret"
set timeout 30
set destDir "/home/user/www/htdocs/updates/"
set scp "/usr/bin/scp"

set file "/cygdrive/c/Workspace/Release/index.html"
puts "\rSending $file to $server\r"
spawn -noecho $scp $file $user@$server:$destDir
match_max 100000
expect "*?assword:*" 
send -- "$PASS\r"
send -- "\r"
expect eof

set file "/cygdrive/c/Workspace/Release/test.cfg"
puts "\rSending $file to $server\r"
spawn -noecho $scp $file $user@$server:$destDir
match_max 100000
expect "*?assword:*" 
send -- "$PASS\r"
send -- "\r"
expect eof
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.