ncftp tem suporte para macros. mas eu prefiro usar uma linguagem de script real e depois transferir apenas o que tem que ser transferido. e eu preferiria ssh / sftp em vez de ftp.
No momento, estou usando o filezilla para implantar novas versões de um site no servidor ativo. O problema é que há um ou dois arquivos de configuração, bootstrap, etc., que são diferentes para o site ao vivo e eu tenho que ter cuidado para não sobrescrevê-lo. Também existem grandes áreas de código que nunca mudam (por exemplo, eu uso o framework zend, que é sempre o mesmo).
Gostaria de poder gravar uma macro para carregar o mesmo grupo de arquivos e pastas todas as vezes, excluindo subdiretórios e arquivos que não devem ser sobrescritos.
Algum cliente ftp oferece isso?
ncftp tem suporte para macros. mas eu prefiro usar uma linguagem de script real e depois transferir apenas o que tem que ser transferido. e eu preferiria ssh / sftp em vez de ftp.
Eu configurei a configuração para esperar que scripts façam exatamente isso. Se você está no Windows para o cliente, então você precisará instalar o cygwin com a expectativa. No linux, você só precisa ter certeza de que o intérprete esperado está instalado. Aqui está um exemplo de script que usei para transferir arquivos de uma caixa do windows para um servidor linux usando o scp. Ele captura a senha e usa-a para chamar scp várias vezes para arquivos individuais. Você poderia usar sftp e wildcards para enviar vários arquivos, ou até mesmo ftp, mas eu não gosto de ftp. O FTP envia senhas sem erros.
#!/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