Есть ли бесплатный ftp-клиент с макросами

на данный момент я использую filezilla для развертывания новых версий сайта на сервер. беда в том, что есть один или два конфига, ушко и т. д. файлы, которые отличаются для живого сайта, и я должен быть осторожным, чтобы не перезаписать. Также есть большие области кода, которые никогда не меняются (например, я использую Zend framework, который всегда один и тот же).

Я хотел бы иметь возможность записывать макрос, чтобы каждый раз загружать одну и ту же кучу файлов и папок, исключая подкаталоги и файлы, которые не должны быть перезаписаны.

есть ли ftp-клиент предложить это?

10
задан wheresrhys
01.05.2023 22:02 Количество просмотров материала 2885
Распечатать страницу

2 ответа

ncftp имеет поддержку макросов. но я предпочел бы использовать реальный язык сценариев, а затем передавать только то, что должно быть передано. и я предпочел бы ssh / sftp вместо ftp.

0
отвечен akira 2023-05-03 05:50

У меня есть настройки ожидать скрипты, чтобы сделать это очень вещь. Если вы находитесь на windows для клиента, то вам нужно будет установить cygwin с ожидать. В linux вам просто нужно убедиться, что установлен интерпретатор expect. Вот пример сценария, который я использовал для передачи файлов из окна windows на сервер linux с помощью scp. Он захватывает пароль, а затем использует его для вызова 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
0
отвечен SuperJames 2023-05-03 08:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх