Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: bash подключение к ftp и чтение из txt файла  (Прочитано 5868 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Всем привет.
Подскажите пожалуйста как при помощи bash скрипта можно подключится к ftp серверу и вывести информацию из txt файла в консоль? Либо скачать его и уже потом выводить в консоль. Если можно на примере. Заранее премного благодарен.
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: bash подключение к ftp и чтение из txt файла
« Ответ #1 : 23 Августа 2014, 13:49:31 »
man lftp

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #2 : 23 Августа 2014, 13:50:12 »
Или конкретизируйтеw3m -dump ftp://mirror.yandex.ru/ubuntu-releases/robots.txt
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #3 : 23 Августа 2014, 14:19:50 »
man lftp
Только что попробовал  :D  то что нужно!
Благодарю всех за ответы. Вопрос решен.

Пользователь решил продолжить мысль 23 Августа 2014, 17:31:17:
Вынужден поднять вопрос в этом направлении.
У меня не получается указать директорию для сохранения лог файла... делаю так
#!/bin/bash
lftp логин:пароль@адрес <<_END_
cd /config/logs; get mlog.log /home/valerik/.logserver/;
exit
_END_
но он всё равно кидает лог файл в /home/valerik/ а мне нужно чтобы лог был тут /home/valerik/.logserver/
Что я делаю не так?
« Последнее редактирование: 23 Августа 2014, 17:31:17 от Валерий [РФ] »
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #4 : 26 Августа 2014, 18:12:21 »
Ну что никто не знает?
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

Оффлайн andwer07

  • Участник
  • *
  • Сообщений: 233
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #5 : 26 Августа 2014, 18:20:34 »
man lftp
Цитировать
       get [-E] [-a] [-c] [-e] [-O base] rfile [-o lfile] ...
       Retrieve  the  remote  file  rfile and store it as the local file lfile. If -o is omitted, the file is stored to local file named as base name of
       rfile. You can get multiple files by specifying multiple instances of rfile (and -o lfile). Does not expand wildcards, use mget for that.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #6 : 26 Августа 2014, 18:23:16 »
Вообще man lftp, а на вскидку добавь 2-й строчкой
Код: (bash) [Выделить]
cd /home/valerik/.logserverи последней строкой
Код: (bash) [Выделить]
cd -
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #7 : 26 Августа 2014, 18:32:40 »
#!/bin/bash
fftp ()
{
user=user
pass=pass
site=name.narod.ru
ftp -n -p "$site" << EOF
user $user $pass
`echo -e "$@"`
quit
EOF

cd /home/valerik/.logserver/
fftp "cd /config/logs\nget mlog.log"
cat mlog.log
Wars ~.o

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #8 : 26 Августа 2014, 18:43:18 »
Вообще man lftp, а на вскидку добавь 2-й строчкой
Код: (bash) [Выделить]
cd /home/valerik/.logserverи последней строкой
Код: (bash) [Выделить]
cd -

Не совсем вас понимаю..
 
В первой строке мы подключаемся
lftp логин:пароль@адрес
во второй строке мы переходим по ftp в указанный раздел и скачиваем файл + указываем путь для сохранения
cd /config/logs; get mlog.log /home/valerik/.logserver/
и если мы укажем cd вот так
cd /config/logs; get mlog.log cd /home/valerik/.logserver/
или так
cd /config/logs; get mlog.log; cd /home/valerik/.logserver
то будет ошибка
get: Ошибка доступа: 550 cd: No such file or directory                 
get: Ошибка доступа: 550 /home/valerik/.logserver/: No such file or directory

причем с доступом всё нормально.. так как правильно сделать?
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #9 : 26 Августа 2014, 18:45:19 »
victor00000,
wget --ftp-user=user --ftp-password=password -qO - ftp://адрес/config/logs/mlog.logили скачатьwget --ftp-user=user --ftp-password=password -qO /home/valerik/.logserver/mlog.log ftp://адрес/config/logs/mlog.logВалерий [РФ],
Код: (bash) [Выделить]
#!/bin/bash
cd /home/valerik/.logserver
lftp логин:пароль@адрес <<_END_
cd /config/logs; get mlog.log ;
exit
_END_
cd -

« Последнее редактирование: 26 Августа 2014, 18:54:23 от Azure »
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #10 : 26 Августа 2014, 18:51:51 »
Azure,
cat ftp://ghgjkhghgjhg
Wars ~.o

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #11 : 26 Августа 2014, 18:57:57 »
#!/bin/bash
fftp ()
{
user=user
pass=pass
site=name.narod.ru
ftp -n -p "$site" << EOF
user $user $pass
`echo -e "$@"`
quit
EOF

cd /home/valerik/.logserver/
fftp "cd /config/logs\nget mlog.log"
cat mlog.log

не, это не помогло.. помогло это =)

victor00000,
wget --ftp-user=user --ftp-password=password -qO - ftp://адрес/config/logs/mlog.logили скачатьwget --ftp-user=user --ftp-password=password -qO /home/valerik/.logserver/mlog.log ftp://адрес/config/logs/mlog.logВалерий [РФ],
Код: (bash) [Выделить]
#!/bin/bash
cd /home/valerik/.logserver
lftp логин:пароль@адрес <<_END_
cd /config/logs; get mlog.log /home/valerik/.logserver/;
exit
_END_
cd -



сделал так

Код: (bash) [Выделить]
    #!/bin/bash
    lftp логин:пароль@адрес <<_END_
    cd /config/logs; get mlog.log;
    exit
    _END_
    cd /home/valerik/.logserver

теперь всё ок.
Всем спасибо за помощь!
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #12 : 26 Августа 2014, 19:07:12 »
victor00000,
cat ftp://ghgjkhghgjhg
$>> cat ftp://mirror.yandex.ru/ubuntu-releases/robots.txt
cat: ftp://mirror.yandex.ru/ubuntu-releases/robots.txt: Нет такого файла или каталога
$>> wget -qO- ftp://mirror.yandex.ru/ubuntu-releases/robots.txt
User-Agent: *
Disallow: .pool
Disallow: /*/.pool
:D
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #13 : 26 Августа 2014, 19:12:35 »
Azure,
УМВР.
Wars ~.o

Оффлайн Валерий [РФ]

  • Автор темы
  • Участник
  • *
  • Сообщений: 139
  • Ubuntu 20.04
    • Просмотр профиля
Re: bash подключение к ftp и чтение из txt файла
« Ответ #14 : 26 Августа 2014, 19:23:07 »
Финальная версия  ;D
Код: (bash) [Выделить]
#!/bin/bash
cd /home/valerik/.logserver # заходим в папку с нашим скриптом
lftp логин:пароль@адрес <<_END_ # подключаемся к FTP
cd /config/logs; get mlog.log; # переходим в раздел и скачиваем файл
exit # выходим из FTP
_END_
Работает как часики. Вдруг кому пригодится :coolsmiley:
«Лучше быть умным и иногда тупить, чем быть тупым и всегда умничать»

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.