Здравствуйте.Я программист, но с программированием под Линукс столкнулся впервые. Поэтому, нуждаюсь в подсказке.
Задача состоит в том, чтобы автоматически, без вмешательства человека сделать следующее:
- соединиться с FTP-сервером, введя логин и пароль
- рекурсивно просмотреть список всех доступных файлов
- выбрать новые файлы, которые появились со времени последнего соединения
- скачать выбранные файлы, поместив их в определенную директорию
- удалить из этой директории старые файлы, скачанные ранее, чем 2 дня назадТакую программу для Windows я написал за день без посторонней помощи. Но тут нужно для Линукса - даже не знаю с чего начать, писать ли на C++ или на командном языке? Если на C++, то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft Visual Studio. Если на командном языке, то с основными командами я ознакомился, но как организовать работу с FTP? Каждый раз при запуске командного файла он спрашивает логин и пароль для входа на сервер у пользователя.
>[оверквотинг удален]
>назад
>
>Такую программу для Windows я написал за день без посторонней помощи. Но
>тут нужно для Линукса - даже не знаю с чего начать,
>писать ли на C++ или на командном языке? Если на C++,
>то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
>Visual Studio. Если на командном языке, то с основными командами я
>ознакомился, но как организовать работу с FTP? Каждый раз при запуске
>командного файла он спрашивает логин и пароль для входа на сервер
>у пользователя.expect , empty
>Здравствуйте.
>
>Я программист, но с программированием под Линукс столкнулся впервые. Поэтому, нуждаюсь в
>подсказке.
>
>Задача состоит в том, чтобы автоматически, без вмешательства человека сделать следующее:
>- соединиться с FTP-сервером, введя логин и парольman ftp
>- рекурсивно просмотреть список всех доступных файлов
>- выбрать новые файлы, которые появились со времени последнего соединения
>- скачать выбранные файлы, поместив их в определенную директорию
>- удалить из этой директории старые файлы, скачанные ранее, чем 2 дня
>назадс этим прекрасно справится перл - можно за час упарвится
>Такую программу для Windows я написал за день без посторонней помощи. Номаладец, ты пишешь без посторонней помощи )))
>тут нужно для Линукса - даже не знаю с чего начать,
>писать ли на C++ или на командном языке? Если на C++,
>то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
>Visual Studio. Если на командном языке, то с основными командами я
>ознакомился, но как организовать работу с FTP? Каждый раз при запуске
>командного файла он спрашивает логин и пароль для входа на сервер
>у пользователя.perl + Net::FTP - как два пальца об асфальт
Как и всё остальное, эту задачу можно решить множеством способов. Обычно, подходящее решение выбитается исходя из здравого смысла и собственных возможностей, а также из некоторых дополнительных требований, например, в каком окружении будет работать программа, нужно ли в будущем его поддерживать, кому поддерживать, является ли данное решение частью более крупного проекта и т.д. и т.п. Вы просите подсказать, как лучше решить задачу, не упомянув всего вышеперечисленного. Поэтому и советы тут будут скорее всего вразнобой - кто чем лучше владеет, то и будут советовать. Каков вопрос, таков и ответ - бессистемный.Касательно имеющихся возможностей: про perl вам уже сказали, для решения на C/C++ можно использовать библиотеку libcurl (если совсем нечем заняться, можно даже написать исходники, которые будут собираться и под GNU/Linux, и под M$ Windows), при использовании shell + ftp можно использовать файл .netrc, параметры командной строки и т.д., в общем, читайте man по вашему ftp-клиенту.
P.S. Как по мне, так эта задача для скрипта на bash (и вообще, дольше обсуждать эту ерёндовую задачу, чем решить её), но выбирать и реализовывать всё-равно придётся вам.
> shell + ftpпроблема с интерактивностью ...
>Такую программу для Windows я написал за день без посторонней помощи. Но
>тут нужно для Линукса - даже не знаю с чего начать,Начать с идеологии - не изобретай велосипед, возьми готовый.
1. Не нужно использовать FTP - это очень опасный протокол. Есть SSH
2. Не нужно писать свою программу для синхронизации каталогов. Есть rsyncТаким образом твоя задача решается двумя строками на shell:
rsync -aH remotesite:remotedir localdir
find localdir -mtime +2 -print0 | xargs -0 rm
>[оверквотинг удален]
> - удалить из этой директории старые файлы, скачанные ранее, чем 2 дня
> назад
> Такую программу для Windows я написал за день без посторонней помощи. Но
> тут нужно для Линукса - даже не знаю с чего начать,
> писать ли на C++ или на командном языке? Если на C++,
> то какие линуксовские библиотеки использовать? Ведь есть же отличие от Microsoft
> Visual Studio. Если на командном языке, то с основными командами я
> ознакомился, но как организовать работу с FTP? Каждый раз при запуске
> командного файла он спрашивает логин и пароль для входа на сервер
> у пользователя.Можете поделится своей программой под винду?