Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / скрипт на bash для работы с ftp / 8 сообщений из 8, страница 1 из 1
24.10.2008, 05:22:13
    #35613494
untitled
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
всем привет
подскажите, а как можно с помощью скрипта реализовать такой функционал:
1) подконнектиться к фтп, скачать из определенной папки все файлы, а затем файлы на фтп удалить
2) подконнектиться к фтп, посмотреть на те файлы которые там есть и если они новее тех, что у меня, то скачать их.

заранее спасибо :)
...
Рейтинг: 0 / 0
24.10.2008, 09:00:10
    #35613609
Мишган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
untitled,

Это вам батенька с такими вопросами на фреелансер.ру
...
Рейтинг: 0 / 0
24.10.2008, 09:28:39
    #35613656
wentoir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
Можно, используйте wget
...
Рейтинг: 0 / 0
24.10.2008, 09:59:35
    #35613717
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
untitledвсем привет
подскажите, а как можно с помощью скрипта реализовать такой функционал:
1) подконнектиться к фтп, скачать из определенной папки все файлы, а затем файлы на фтп удалить
2) подконнектиться к фтп, посмотреть на те файлы которые там есть и если они новее тех, что у меня, то скачать их.

заранее спасибо :)

$man ftp
$man netrc


$echo "open host" > script.ftp
$echot "binary" >>script.ftp
$echo "cd directory" >> script.ftp
$echo "ls" >> script.ftp
$echo "mget *" >> script.ftp
$echo "delete *" >> script.ftp
$bye >> script.ftp

$ftp -i < script.ftp >ftp.log 2>&1
...
Рейтинг: 0 / 0
24.10.2008, 10:33:49
    #35613805
SSukholet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
On Fri, 24 Oct 2008 10:22:13 +0800, untitled <nospam@sql.ru>; wrote:

> Автор: untitled
> всем привет
> подскажите, а как можно с помощью скрипта реализовать такой функционал:
> 1) подконнектиться к фтп, скачать из определенной папки все файлы, а
> затем файлы на фтп удалить
> 2) подконнектиться к фтп, посмотреть на те файлы которые там есть и если
> они новее тех, что у меня, то скачать их.
>
> заранее спасибо :)
был ещё mirror.pl http://www.etsimo.uniovi.es/mirror/

впрочем, он сейчас он есть и в пакетах


--
Остаюсь искренне Ваш,
Станислав Сухолёт
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.10.2008, 20:17:22
    #35615533
untitled
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
всем спасибо за ответы, если кому интересно, то в итоге у меня получилось вот что:
1. подконнектиться к фтп, скачать из определенной папки все файлы, а затем файлы на фтп удалить

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
#!/usr/local/bin/bash

HOST='192.168.1.2'
USER='xxx'
PASS='xxx'
PATH='/dirfrom'
FILES='\*.txt'

HOMEDIR='/dirto';

###############################################################################

RESULT='';

executeftp(){
    echo "open" $HOST > script.ftp
    echo "user" $USER $PASS >> script.ftp
    echo "cd" $PATH >> script.ftp
    echo $ 1  >> script.ftp
    echo "bye" >> script.ftp

    RESULT=`/usr/bin/ftp -in < script.ftp && /bin/rm script.ftp`;
}

cd $HOMEDIR
executeftp "nlist "$FILES
F=$RESULT
for i in $F
do
    /usr/local/bin/wget -N ftp://$USER:$PASS@$HOST/$PATH/$i
    executeftp 'delete '$i
done

2. подконнектиться к фтп, посмотреть на те файлы которые там есть и если они новее тех, что у меня, то скачать их.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#!/usr/local/bin/bash

HOST='192.168.100.100'
USER='xxx'
PASS='xxx'
PATH='/dirfrom'

FILES='\*.txt'
HOMEDIR='/dirto'

###############################################################################

cd $HOMEDIR

echo "open" $HOST > script.ftp
echo "user" $USER $PASS >> script.ftp
echo "cd" $PATH >> script.ftp
echo "nlist $FILES" >> script.ftp
echo "bye" >> script.ftp

for i in `/usr/bin/ftp -in < script.ftp && /bin/rm script.ftp`
do
    /usr/local/bin/wget -N ftp://$USER:$PASS@$HOST/$PATH/$i
done

onstat-
Код: plaintext
1.
2.
$echo  "mget  *" >> script.ftp
$echo  "delete *" >> script.ftp


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

ЗЫ это можно сказать мой первый код на баше, может кто подскажет, а как-нибудь в данном случае можно обойтись без промежуточного хранения данных в файле script.ftp? Другими словами, если записать команды в какую-то переменную, то как затем ее можно подставить в такую конструкцию:
Код: plaintext
RESULT=`/usr/bin/ftp -in < script.ftp`
...
Рейтинг: 0 / 0
24.10.2008, 20:40:21
    #35615549
Ося
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
expect намного более корректный тул для таких задач
...
Рейтинг: 0 / 0
25.10.2008, 15:34:52
    #35615958
pavlenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрипт на bash для работы с ftp
Для примера часть bash скрипта как залить один файл. Думаю из него понятно как зделать все необходимое.

FILE=`your_file`
HOST='ftp.server'
USER='login'
PASSWD='pass'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
passive
put $FILE
quit
END_SCRIPT

Антон
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / скрипт на bash для работы с ftp / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]