UNIX, sh, ftp: перенос файлов с ftp пачкой
lftp + команда mirror, например.
shell на lftp пишет что команда неизвестна.
Это нестандартная прога? Прав для установки сторонних утилит у меня нет.
Это нестандартная прога? Прав для установки сторонних утилит у меня нет.
Устанавливай локально 
wget-ом не пробовал?

wget-ом не пробовал?
> Устанавливай локально
Не все так просто - что то поставить мне полюбому не дадут - надо обойтись тем что есть. У мя даже доступ к тому компу тока удаленный по ssh.
Кто такой wget? Пишет, что неизвестная команда.
P.S. UNIX совсем не знаю, живьем не видел. Учу sh находу (только то, что требуется для задачи).
Не все так просто - что то поставить мне полюбому не дадут - надо обойтись тем что есть. У мя даже доступ к тому компу тока удаленный по ssh.
Кто такой wget? Пишет, что неизвестная команда.
P.S. UNIX совсем не знаю, живьем не видел. Учу sh находу (только то, что требуется для задачи).
У мя даже доступ к тому компу тока удаленный по ssh
гы гы
если у тебя есть ssh доступ - значит у тебя есть любой доступ

> У мя даже доступ к тому компу тока удаленный по ssh.
man scp
---
"Аллах не ведёт людей неверных."
man scp
---
"Аллах не ведёт людей неверных."
А это еще нахрена?
а это чтобы с ftp не парица
Учи-учи, контра плохого не посоветует 

Вот это и настораживает 
Че та пошаmanил и не понял, а как в той тулзе задать пароль на коннект?

Че та пошаmanил и не понял, а как в той тулзе задать пароль на коннект?
Ключик залить, вестимо. Если, конечно, разрешено на стороне сервера.
Не разрешено - сервер не мой.
Блин.
Сколько файлов?
Какой объём?
За один раз (одно соединение) сможешь всё передать?
---
"Аллах не ведёт людей неверных."
Сколько файлов?
Какой объём?
За один раз (одно соединение) сможешь всё передать?
---
"Аллах не ведёт людей неверных."
Файлов без понятия сколько будет - в районе 100 наверно. Объем - ну метров 100. Соедиение вроде по локалке, никто ничего обрубать не будет, т.е. за одно соедиение все стянуть получится.
cpio -0oH ustar < list | ssh there 'cd path && tar xf -'
Список файлов готовится примерно так:
find /path/to/files -depth -print0 > list
В самом простом случае,
tar cf - | ssh there 'tar xf -'
Если что-то произойдёт не так, тебе скажут.
---
"Аллах не ведёт людей неверных."
user вижу, there вижу, password не вижу.
P.S. login/password на unix комп не совпадает с login/password на ftp.
Вообще мне кажется я немного запутал всех упоминанием ssh. Ситуация следующая:
у меня Win-машина, которая имеет доступ по ssh к unix-машине. Там я пишу скрипт, который будет выполняться на unix-машине. Этот скрипт должен сливать данные с ftp (это сторонняя машина, похоже в локалке с неизвестным ОС).
P.S. login/password на unix комп не совпадает с login/password на ftp.
Вообще мне кажется я немного запутал всех упоминанием ssh. Ситуация следующая:
у меня Win-машина, которая имеет доступ по ssh к unix-машине. Там я пишу скрипт, который будет выполняться на unix-машине. Этот скрипт должен сливать данные с ftp (это сторонняя машина, похоже в локалке с неизвестным ОС).
> Ситуация следующая:
С этого надо было начинать.
> Там я пишу скрипт, который будет выполняться на unix-машине.
uname -mrs
> Этот скрипт должен сливать данные с ftp
which wget
which ncftp
which lftp
which какие-ещё бывают-приличные-ftp
ident `which ftp`
what `which ftp`
ftp --version
which curl
---
"Аллах не ведёт людей неверных."
С этого надо было начинать.
> Там я пишу скрипт, который будет выполняться на unix-машине.
uname -mrs
> Этот скрипт должен сливать данные с ftp
which wget
which ncftp
which lftp
which какие-ещё бывают-приличные-ftp
ident `which ftp`
what `which ftp`
ftp --version
which curl
---
"Аллах не ведёт людей неверных."
Не разрешено - сервер не мой.c чего ты взял что не разрешено? с тем что сервер не твой это никак не связано
UNIX то же не особо мой (у мя доступ к девелоперскому, а на продуктив меня никто не пустит со своими прогами). Вообщем я никто и зовут меня никак 
Вообщем я так понял, что стандартными средсвами придется реализовывать

Вообщем я так понял, что стандартными средсвами придется реализовывать

Общая идея:
cd $DIR_TMP
ftp ftp:// host/$DIR_FTP/* #Делает за тебя cd и get; см. man
A=`ls | awk '{print "mdelete "$0"\n"}'`
echo -e "cd $DIR_FTP\n $A\nbye" | ftp host
Пароли хранить в ~/.netrc
cd $DIR_TMP
ftp ftp:// host/$DIR_FTP/* #Делает за тебя cd и get; см. man
A=`ls | awk '{print "mdelete "$0"\n"}'`
echo -e "cd $DIR_FTP\n $A\nbye" | ftp host
Пароли хранить в ~/.netrc
Либо поюзать какой-нибудь модуль perl'а (типа Net:
:File и вообще cpan.org )
:File и вообще cpan.org )>>>Но что то мне кажется это не совсем надежно, в том смысле, что если mget что то не перенесет, то эти файлы будут безнадежно утеряны.
А нельзя банально проверять на равенство результат/источник и если равно удалять? Или на тот сервер вообще только на аплоад открыт?
А нельзя банально проверять на равенство результат/источник и если равно удалять? Или на тот сервер вообще только на аплоад открыт?
Хм, стоит посмотреть (я про первый пост)
2
Банально - слишком большой код у меня получается, поскольку в текущий момент времени активен либо поток с ftp либо с sh командами. Конечно наверняка можно исхитриться (см. пост выше) и сделать все попроще. Просто я до этого с UNIX не работал и коротко накатать у меня не получается.
2
Банально - слишком большой код у меня получается, поскольку в текущий момент времени активен либо поток с ftp либо с sh командами. Конечно наверняка можно исхитриться (см. пост выше) и сделать все попроще. Просто я до этого с UNIX не работал и коротко накатать у меня не получается.
Может надо просто поставить rsync?
Не пугай человека, у него венда. 

> коротко накатать у меня не получается.
Это ещё не известно. Ты так и не сказал, что у тебя за уникс,
и что умеет твой ftp-клиент. Может быть, не всё так печально.
---
"Аллах не ведёт людей неверных."
Это ещё не известно. Ты так и не сказал, что у тебя за уникс,
и что умеет твой ftp-клиент. Может быть, не всё так печально.
---
"Аллах не ведёт людей неверных."
Оставить комментарий
0000
Надо организовать remove, т. е. перенести файлы с ftp на unix-сервер. Сейчас делаю такНо что то мне кажется это не совсем надежно, в том смысле, что если mget что то не перенесет, то эти файлы будут безнадежно утеряны.
Вопрос - как сделать понадежнее?
Есть еще вариант - выполнить ls на ftp, распарсить .lst фаил, сформировать на его основе ftp-скрипт (содержащий для каждого файла набор команд get, "if exists", delete) и выполнить скрипт на ftp - но что то это много кода, кажется можно проще.