Автоматизируйте процесс FTP

cacls (или более актуальный icalcs):

cacls (Списки управления доступом Изменения) является утилитой командной строки для Microsoft Windows для изменения полномочий Списка управления доступом (ACL) на каталоге, его подсодержании или файлах. Список управления доступом является списком полномочий для securable объекта, таких как файл или каталог, который управляет, кто может получить доступ к нему.

сопроводительный текст http://articles.techrepublic.com.com/i/tr/cms/contentPics/r00220020626van01_02.gif

Это - настоящий спаситель на файловом сервере, когда определенный файл (файлы) и/или полномочия каталога (каталогов) должны быть изменены.

2
задан 18 August 2009 в 13:10
11 ответов

Я лично использую lftp, который очень scriptable (см. это учебное руководство).

Конечно, можно также записать адаптированному клиенту FTP, использующему perl/ruby/python/your-prefered-scripting-language.

2
ответ дан 3 December 2019 в 09:01
  • 1
    Я соглашаюсь. lftp является лучшим инструментом для использования. Даже поддержки параллельны процессам ftp и автоматизации sftp. –  fpmurphy 18 August 2009 в 17:05

С этой целью существуют пакеты Perl. Например, Сеть модулей CPAN:: Облегченный:: FTP и Сеть:: FTP.

Это позволит Вашему сценарию принимать решения на основе информации с сервера. Например, если имя файла не является постоянным (может содержать дату или номер версии), затем, сценарий может обработать каталог, перечисляющий прежде, чем решить который файл загрузить.

Я успешно использовал его для автоматизации загрузки/обновления больших молекулярных баз данных последовательности.

2
ответ дан 3 December 2019 в 09:01

Я думаю, что можно использовать wget, чтобы сделать такую вещь:

WGET свободен, таким образом, можно захватить это и проверить справочный файл

Что-то как:

wget -user=username -pass=password ftp://ftp.moose.com/download.zip

Очевидно применимый с переменными в сценарии и т.д.

Просто замеченный это для solaris, таким образом, не уверено, если это работало бы.

1
ответ дан 3 December 2019 в 09:01
  • 1
    Это могло бы быть установлено в/usr/sfw/bin, который находится, вероятно, не в Вашем пути поиска по умолчанию. Если Вы can' t находят его там, взгляд на sunfreeware.com. –  Barry Brown 18 August 2009 в 13:33

Мне нравится завихрение лучшее:

завихрение является инструментом командной строки для передачи файлов с синтаксисом URL, поддерживая FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS и ФАЙЛ. завихритесь поддерживает сертификаты SSL, HTTP POST, ПОМЕЩЕННЫЙ HTTP, загрузка FTP, HTTP основанная на форме загрузка, прокси, cookie, user+password аутентификация (Основной, Обзор, NTLM, Согласуйте, kerberos...), резюме передачи файлов, туннелирование прокси и полный автобус других полезных приемов.

Очень удобный для всех Ваших выбирающих URL потребностей.

1
ответ дан 3 December 2019 в 09:01

Солярис ftp команда может быть автоматизирована с netrc (4) файл. macdef init является ключом. образец:

кошка ~/.netrc
машина remote-host1.domain.com входит в my-ftp-account
пароль password4host1
macdef init
CD
/pub/DOWNLOAD получите readme

вход в систему по умолчанию анонимный пароль my-email@mail.domain.com

Примечания:

  1. Эти две пустых строки после init макроопределения важны,
  2. Это также автоматизирует интерактивный сеанс FTP к удаленному-host1.

Ваш сценарий может создать netrc файл, прежде чем он назовет ftp.

1
ответ дан 3 December 2019 в 09:01

Вы заставили много рекомендаций уже использовать что-то другое, чем FTP. Это справедливо, потому что сценарии FTP являются небольшим раздражением, но это не обязательно портативно, и при этом это не преподает Вам ничего нового.

Это на самом деле довольно просто к сценарию путем направления команд к ftp от STDIN. Этот вид вещи работает на многие виды инструментов.

cd /target
ftp -n host <<EOF
USER falken
PASS joshua
cd place
binary
get file
bye
EOF
echo 'hi! um... what'\''s this all about again? I am done.'

Часть входа в систему могла быть автоматизирована путем добавления информации к владельцу сценария ~/.netrc файл. На самом деле, если Вы man netrc Вы узнаете много об автоматизации ftp.

1
ответ дан 3 December 2019 в 09:01

На Солярисе можно также использовать, ожидают средство автоматизации. Конечно, необходимо установить его сначала. Для FTP можно найти, что пример в статье Wikipedia об Ожидает.

0
ответ дан 3 December 2019 в 09:01

Я записал тот однажды для наших потребностей,

#!/bin/sh

имя хоста = "АДРЕС IP"

порт = "21"

имя пользователя = "serverfault"

пароль = "serverfalut"

storage_path = "МЕСТО НАЗНАЧЕНИЯ"

current_date =" $ (дата + %Y%m%d)"

$remotefile = "УДАЛЕННЫЙ ФАЙЛ"

ftp - в $hostname$port <<EOF

заключите пользовательский $username в кавычки

заключите $password передачи в кавычки

двоичный файл

получите $remotefile$storage_path/

удалите $output_dir/output$current_date.tar.gz

выход

закрыть

EOF

выход 0

0
ответ дан 3 December 2019 в 09:01

ncftp обычно включает ncftpget и ncftpput, который подошел бы для включения в сценарии. Они могут обычно создаваться из источника, или проверки csw или sunfreeware.

0
ответ дан 3 December 2019 в 09:01

Я обычно просто использую ftp с файлом аутентификации .netrc и затем кошкой все в него. Например,

cat >> EOF | ftp
open ftpserver
mget *
bye
EOF
0
ответ дан 3 December 2019 в 09:01
0
ответ дан 3 December 2019 в 09:01

Теги

Похожие вопросы