The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Автоматическое скачивание файлов. Нужна помощь."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от username email(ok) on 05-Мрт-10, 12:06 
Здравствуйте.

Я программист, но с программированием под Линукс столкнулся впервые. Поэтому, нуждаюсь в подсказке.

Задача состоит в том, чтобы автоматически, без вмешательства человека сделать следующее:
- соединиться с FTP-сервером, введя логин и пароль
- рекурсивно просмотреть список всех доступных файлов
- выбрать новые файлы, которые появились со времени последнего соединения
- скачать выбранные файлы, поместив их в определенную директорию
- удалить из этой директории старые файлы, скачанные ранее, чем 2 дня назад

Такую программу для Windows я написал за день без посторонней помощи. Но тут нужно для Линукса - даже не знаю с чего начать, писать ли на C++ или на командном языке? Если на C++, то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft Visual Studio. Если на командном языке, то с основными командами я ознакомился, но как организовать работу с FTP? Каждый раз при запуске командного файла он спрашивает логин и пароль для входа на сервер у пользователя.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от pavel_simple (ok) on 05-Мрт-10, 12:10 
>[оверквотинг удален]
>назад
>
>Такую программу для Windows я написал за день без посторонней помощи. Но
>тут нужно для Линукса - даже не знаю с чего начать,
>писать ли на C++ или на командном языке? Если на C++,
>то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
>Visual Studio. Если на командном языке, то с основными командами я
>ознакомился, но как организовать работу с FTP? Каждый раз при запуске
>командного файла он спрашивает логин и пароль для входа на сервер
>у пользователя.

expect , empty

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от Pahanivo email(ok) on 05-Мрт-10, 12:14 
>Здравствуйте.
>
>Я программист, но с программированием под Линукс столкнулся впервые. Поэтому, нуждаюсь в
>подсказке.
>
>Задача состоит в том, чтобы автоматически, без вмешательства человека сделать следующее:
>- соединиться с FTP-сервером, введя логин и пароль

man ftp
>- рекурсивно просмотреть список всех доступных файлов
>- выбрать новые файлы, которые появились со времени последнего соединения
>- скачать выбранные файлы, поместив их в определенную директорию
>- удалить из этой директории старые файлы, скачанные ранее, чем 2 дня
>назад

с этим прекрасно справится перл - можно за час упарвится
>Такую программу для Windows я написал за день без посторонней помощи. Но

маладец, ты пишешь без посторонней помощи )))
>тут нужно для Линукса - даже не знаю с чего начать,
>писать ли на C++ или на командном языке? Если на C++,
>то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
>Visual Studio. Если на командном языке, то с основными командами я
>ознакомился, но как организовать работу с FTP? Каждый раз при запуске
>командного файла он спрашивает логин и пароль для входа на сервер
>у пользователя.

perl + Net::FTP - как два пальца об асфальт


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от jd (??) on 05-Мрт-10, 13:28 
Как и всё остальное, эту задачу можно решить множеством способов. Обычно, подходящее решение выбитается исходя из здравого смысла и собственных возможностей, а также из некоторых дополнительных требований, например, в каком окружении будет работать программа, нужно ли в будущем его поддерживать, кому поддерживать, является ли данное решение частью более крупного проекта и т.д. и т.п. Вы просите подсказать, как лучше решить задачу, не упомянув всего вышеперечисленного. Поэтому и советы тут будут скорее всего вразнобой - кто чем лучше владеет, то и будут советовать. Каков вопрос, таков и ответ - бессистемный.

Касательно имеющихся возможностей: про perl вам уже сказали, для решения на C/C++ можно использовать библиотеку libcurl (если совсем нечем заняться, можно даже написать исходники, которые будут собираться и под GNU/Linux, и под M$ Windows), при использовании shell + ftp можно использовать файл .netrc, параметры командной строки и т.д., в общем, читайте man по вашему ftp-клиенту.

P.S. Как по мне, так эта задача для скрипта на bash (и вообще, дольше обсуждать эту ерёндовую задачу, чем решить её), но выбирать и реализовывать всё-равно придётся вам.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от Pahanivo email(ok) on 05-Мрт-10, 13:42 
> shell + ftp

проблема с интерактивностью ...


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Автоматическое скачивание файлов. Нужна помощь."  +1 +/
Сообщение от ACCA (ok) on 05-Мрт-10, 20:53 
>Такую программу для Windows я написал за день без посторонней помощи. Но
>тут нужно для Линукса - даже не знаю с чего начать,

Начать с идеологии - не изобретай велосипед, возьми готовый.

1. Не нужно использовать FTP - это очень опасный протокол. Есть SSH
2. Не нужно писать свою программу для синхронизации каталогов. Есть rsync

Таким образом твоя задача решается двумя строками на shell:

rsync -aH remotesite:remotedir localdir
find localdir -mtime +2 -print0 | xargs -0 rm

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Автоматическое скачивание файлов. Нужна помощь."  +/
Сообщение от Михаил (??) on 22-Апр-13, 10:36 
>[оверквотинг удален]
> - удалить из этой директории старые файлы, скачанные ранее, чем 2 дня
> назад
> Такую программу для Windows я написал за день без посторонней помощи. Но
> тут нужно для Линукса - даже не знаю с чего начать,
> писать ли на C++ или на командном языке? Если на C++,
> то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
> Visual Studio. Если на командном языке, то с основными командами я
> ознакомился, но как организовать работу с FTP? Каждый раз при запуске
> командного файла он спрашивает логин и пароль для входа на сервер
> у пользователя.

Можете поделится своей программой под винду?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру