2

Я хочу загрузить (и в конечном итоге перезаписать) один и тот же файл index.php во многие доменные папки. Есть ли способ сделать это за один раз или ярлык?

Я использую Filezilla.

Спасибо

Редактировать:

Так как я действительно новичок в командах FTP, мне удалось найти программу ftp, которая поможет мне достичь того, чего я хотел. Это называется PyroFTP. У него был пример сценария, которому я мог следовать, и в итоге я получил что-то вроде этого и просто выполнил его:

Connect "ftp.site.com", "username", "password"

LocalChDir "D:\folder"

RemoteChDir "public_html/domainfolder1"
Put "file.txt"

RemoteChDir "../domainfolder2"
Put "file.txt"

RemoteChDir "../domainfolder3"
Put "ifile.txt"

Disconnect 

2 ответа2

2
filezilla.exe -u “c:\ftp\TestFile.txt” ftp://ftp_user:ftp_password@ftp_host_ip/folderpath -close

Filezilla может быть сценарий. Если вы используете Windows, его встроенный FTP также можно записать в сценарий.

Просто соберите скрипт, который перемещает файл на все нужные хосты и запускайте его при обновлении индексного файла.

Инструкции по написанию сценариев

Если вы хотите автоматизировать задачи с помощью программ, которые принимают аргументы командной строки, сценарии - это то, как вы это делаете.

Вам понадобится следующая информация:

  • Полный путь к файлу, который вы хотите загрузить.
  • Имя пользователя, пароль, IP-адрес сервера или имя домена, а также путь к файлам, которые необходимо обновить.

"Удаленный сайт" предназначен для настройки профиля подключения для каждого сервера в FileZilla. Вы можете вызвать профиль соединения по имени и, таким образом, избежать необходимости вводить имя пользователя, пароль, сервер и путь для каждого соединения. Глядя на документацию, я думаю, что ввод информации проще и понятнее.

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

Откройте Блокнот. Введите следующий текст, измененный для ваших конкретных настроек и потребностей. Сохраните файл как (любое имя).bat.

filezilla.exe -u "<full path to the file on your computer>" ftp://username:password@server/path -close

Добавьте столько копий этой строки, сколько вам нужно: по одной для каждого файла, который вы обновляете.

Ответ Боба показывает, как вы можете использовать циклы и исходный файл для автоматизации большей части этого процесса. Гораздо сложнее понять синтаксис циклов, но его решение делает то же самое и может быть проще в управлении, если вам нужно обновить большое количество серверов.

2

Ответ Windows

По сути, это рабочий сценарий для ответа music2myear, но не для FileZilla.

Раньше я делал это с помощью пакетного скрипта и программы под названием NcFTP - FileZilla, вероятно, не поддерживала командную строку в то время, так как я использовал ее для всего остального. Это должно быть довольно легко изменить для FileZilla, если хотите.

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO call ncftpput -u %%A -p %%B %%C %%D %1
@pause

Это будет принимать места назначения из текстового файла (ftpdetails.txt) в следующем формате:

username password ip destinationfolder ; comment
username2 password2 ip2 destinationfolder2 ; comment2

Эта измененная версия будет открывать каждый пункт назначения параллельно, но рискует затопить:

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO start ncftpput -u %%A -p %%B %%C %%D %1
@pause

Использование было просто перетащить файл, который я хотел загрузить поверх командного файла. % 1 можно заменить именем файла для загрузки, открыв его. Как это, пробелы сломали бы это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .