Задания cron для загрузки файла через FTP - PullRequest
5 голосов
/ 26 июня 2009

Можно ли использовать CRON для загрузки файла через FTP? Если да, как я могу позвонить на FTP, чтобы запустить загрузку?

Ответы [ 5 ]

7 голосов
/ 26 июня 2009

Предполагая UNIX-подобную операционную систему, вы можете настроить задание cron, которое указывает на скрипт оболочки, как показано ниже:

#!/bin/sh
cd [source directory]
ftp -n [destination host]<<END
user [user] [password]
put [source file]
quit
END

В зависимости от настроек вашего ftp-клиента и типа исходного файла вам может потребоваться указать binary перед put.

2 голосов
/ 26 июня 2009

Вы можете использовать ncftp - у них есть удобные инструменты под названием "ncftpput"

Это проще, чем ожидать, - это всего лишь одна команда с полезным кодом возврата.

1 голос
/ 26 июня 2009

Запланировать вызов скрипта с cron.
В сценарии

Для этого

  • вам нужно будет установить аутентификацию с открытым ключом между сервером и вашим клиентом, машиной.
  • вам потребуется клиент sftp на клиентском компьютере (для всех платформ есть клиенты - PuTTY, Winscp.net, в Unix-вариантах это обычно уже установлено).
  • наконец, попробуйте PUT вручную с аутентификацией с открытым ключом и запишите команды - вы можете записать их в пакетный файл для автоматизации

Некоторые другие заметки.

  • expect является избыточным для этого требования.
  • Более того, любая схема, для которой требуется сценарий с паролем, является плохой
  • ncftp подходит для интерактивного сеанса (не такая автоматизация)
  • Я не знаю, разрешает ли wput аутентификацию с открытым ключом (вероятно, нет), и в этом случае это тоже не хорошо для такой автоматизации
1 голос
/ 26 июня 2009

Вы, вероятно, ищете программу под названием «ожидание», которая предназначена для работы с интерактивными процессами.

http://expect.nist.gov/

Если у вас есть «cron», вы, вероятно, уже и «ожидаете» в эти дни.

0 голосов
/ 26 июня 2009

Просто создайте свои задания CRON, чтобы позвонить в WGET, чтобы загрузить или загрузить файл через FTP!

...