Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Мониторить/отслеживать обновление содержимого на FTP

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

q111111

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.

Всего записей: 1657 | Зарегистр. 05-03-2008 | Отправлено: 12:49 17-06-2010 | Исправлено: q111111, 12:33 21-06-2013
grumm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для начала каким FTP (родным или нет) пользуешься ?
 
И какой сервер установлен - случаем не R2 ?

Всего записей: 809 | Зарегистр. 06-05-2006 | Отправлено: 15:28 17-06-2010 | Исправлено: grumm, 15:29 17-06-2010
q111111

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.

Всего записей: 1657 | Зарегистр. 05-03-2008 | Отправлено: 17:10 17-06-2010 | Исправлено: q111111, 11:03 21-06-2013
grumm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хм ...Значит необходимо искать программку которая будет отслеживать изменения в данном каталоге, навскидку не скажу ...поискать - думаю найдешь ...
 
hxxp://www.nirmaltv.com/2009/03/11/monitor-changes-to-any-directory/ru/
например

Всего записей: 809 | Зарегистр. 06-05-2006 | Отправлено: 17:15 17-06-2010 | Исправлено: grumm, 17:20 17-06-2010
q111111

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.

Всего записей: 1657 | Зарегистр. 05-03-2008 | Отправлено: 17:28 17-06-2010 | Исправлено: q111111, 11:03 21-06-2013
venil



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно накидать скриптик, который будет забегать туда раз в полчаса и просматривать каталог файлов на наличие обовлений.

Всего записей: 49 | Зарегистр. 26-03-2008 | Отправлено: 17:36 17-06-2010
grumm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
q111111
 
на astalaviste искал ????

Всего записей: 809 | Зарегистр. 06-05-2006 | Отправлено: 17:39 17-06-2010
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Появилось ли решение на данный момент?
Интересует пользовательская программа (или bat), которая просканирует файлы, выявит новые и переименованные и их рекурсивно скачает. Ну или хотя бы сообщит на мыло (может есть такой онлайн-сервис).
Дело в том, что я не храню зеркало ftp сервака, синхронизация не катит. Но нужно узнавать обо всём, что туда заливается. И скачивать это.

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 16:25 16-08-2016 | Исправлено: chatt, 16:35 16-08-2016
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt  бесплатная утилита wget  
 
http://gnuwin32.sourceforge.net/packages/wget.htm   for windows      
 
http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip
     
http://www.gnu.org/software/wget/          for linux
 
wget -N -nr -o wget_log ftp://192.168.2.202/*.*
 
пихаешь строку в батник, а батник  пихаешь в планировщик заданий, не забывай указывать полный путь к exe и рабочий каталог в планировщике.
 
P.S.
 обратная утилита для залива   wput
http://wput.sourceforge.net/
 
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11737 | Зарегистр. 10-12-2003 | Отправлено: 07:19 17-08-2016 | Исправлено: ipmanyak, 07:25 17-08-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эта команда просто выведет в txt список всех файлов?
 
Я так понимаю, нужно три шага
1) получить список
2) полученный новый список сравнить со старым
3) рекурсивно скачать разницу между списками
 
К сожалению, писать батники не умею.

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 15:30 17-08-2016
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt  Я тебе уже всё написал.  
wget с параметром  -N   скачает новые и измененные файлы. Файлы в локальной папке. Первый раз само собой всё скачает, если локальная папка была пустая. Никаких списков ему не надо, сам разберется. Скачай тулзу и проверь сам , если не веришь. В батнике тебе нужно  всего 2 строки:
cd путь\куда класть файлы
путь\wget -N -nr -o wget_log ftp://192.168.2.202/*.*
 
если будешь класть туда же где лежит и запускаешь сам wget, тогда вообще 1 строка.
wget -N -nr -o wget_log ftp://192.168.2.202/*.*
 
ftp и путь к папкам на ftp ( если требуется) подставь свои


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11737 | Зарегистр. 10-12-2003 | Отправлено: 07:25 18-08-2016 | Исправлено: ipmanyak, 07:34 18-08-2016
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt
Может, тебе больше BestSync подойдет?
Она для любителей графического интерфейса.

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 12:01 18-08-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может, но мне не синхронизация нужна, на серваке уйма файлов, сотни гиг.
поэтому не зеркло мне нужно.
А только лишь обновления
 
справится ли с этим программа?
или просить помочь с батником?

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 13:53 18-08-2016
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt По какому критерию собираетесь узнавать про новые и переименованные файлы без синхронизации?  


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11737 | Зарегистр. 10-12-2003 | Отправлено: 14:36 18-08-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по полному имени файла.
вывести литинг всех файлов, имеющихся сейчас на сервере.
а потом, когда нужно проверить обновления, вывести новый листинг, вывести разницу между ними и рекурсивно скачать файлы, соответствующие несовпашим строкам.

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 14:40 18-08-2016
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt
Цитата:
поэтому не зеркло мне нужно. А только лишь обновления  
То есть, если я правильно понял,
ты хочешь закачать с сервера файлы, которые новее, скажем, 01.01.2016,
а затем обновлять те, которые новее закачанных?
Тогда тебе нужно действительно что-то типа скрипта.
Качаешь полный листинг сервера, парсишь его,
выбираешь файлы новее этой даты, проверяешь наличие у себя файла
и дату его создания, если нету или более старый, качаешь.
Собственно, сбацать что-то такое на Перле или Питоне не сложно.
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 14:43 18-08-2016
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chatt При наличия подкаталогов и работе с текстовым листингом  задача не простая для программирования, не говоря уже о батниках. Несовпавшие строки - не проканает. Строка с новым файлом может оказаться в середине списка, потому надо брать каждую строку списка и искать ее в другом, причем не строку списка, а имя файла с его путями-подкаталогами, жопа еще та !   ftp твой или чужой?  Обычно на FTP для заливки юзают конкретную папку , типа \pub\upload
из нее перекладывают в другие, которые READ ONLY, а папку upload очищают. В таком режиме работы  - проще все делать.


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11737 | Зарегистр. 10-12-2003 | Отправлено: 14:52 18-08-2016 | Исправлено: ipmanyak, 14:56 18-08-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 ftp твой или чужой?  Обычно на FTP для заливки юзают конкретную папку

В том-то и дело, что чужой. Файлы могут появиться где угодно.

Цитата:
Несовпавшие строки - не проканает. Строка с новым файлом может оказаться в середине списка, потому надо брать каждую строку списка и искать ее в другом, причем не строку списка, а имя файла с его путями-подкаталогами

Почему искать не строку из списка? В строке полный путь файла. Позволю себе не согласиться.
Если, например, прописать сортировку строк по алфавиту, то проблем со сравнением двух листингов с выявлением не совпавших строк не будет.
Скажем, ExamDiff это легко сделает, да и любой другой инструмент, задача, на мой взгляд, тривиальная
 

Цитата:
ты хочешь закачать с сервера файлы, которые новее, скажем, 01.01.2016,
а затем обновлять те, которые новее закачанных?  

Совершенно верно. Только не 01.01.2016, а дата получения первого листинга (когда будет готов батник, сейчас пока проверяю ручками)
Т.е. даты сравнивать не нужно, только сравнить строки нового и старого листингов (предварительно отсортировав строки в них в алфавитном порядке)

Цитата:
Собственно, сбацать что-то такое на Перле или Питоне не сложно.  

Был бы очень рад помощи, т.к. я не программист. А вещь наверняка будет востребованная.

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 15:11 19-08-2016 | Исправлено: chatt, 15:14 19-08-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть скрипты для ubuntu, основанные на curlftpfs

Помогите сделать похожее под Windows в виде экзешника или батника
Есть ли аналоги curlftpfs?

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 13:36 02-09-2016 | Исправлено: chatt, 16:47 07-09-2016
chatt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот код под убунту. Сделайте, пожалуйста похожий батник под винду.

Код:
#!/bin/bash
# $1 для ввода пути считывания, например для теста.
NAME1="actual_list.txt"
# проверка установленного пакета для монтирования ftp
cmd=$(dpkg --status "curlftpfs" 2>/dev/null | grep "ok installed")
  if [ $? == 0 ]
    then 2>/dev/null
    else echo "  Необходимый пакет curlftpfs не установлен,
 пожалуйста установите его вручную командой:  
 sudo apt-get install curlftpfs "
        exit 0
    fi
 
# проверка наличия "старого" файла и директории монтирования
if test ! -f "old_list.txt"  
 then echo -n "Похоже, это первый запуск. Пробуем скачать список файлов [Y/n] ?"
    read item
        case "$item" in
        y|Y) echo "Приступаем. При необходимости для монтирования будет создана директория mnt_ftp "
        ;;
        n|N) echo "Отказ пользователя, выход."
        exit 0
        ;;
     #"Ничего не ввели. Выполняем действие по умолчанию..."       
     *) echo "Приступаем. При необходимости для монтирования будет создана директория mnt_ftp "  
        ;;
        esac    
    NAME1="old_list.txt" # при первом запуске заполняем этот файл
fi
 
 
    # проверка директории для монтирования
    if test ! -w "mnt_ftp"
        then mkdir mnt_ftp
    #    else echo "Директория для монтирования уже существует!"
    fi
 
# соединяемся
 curlftpfs -r ftp://login:password@hostname/ mnt_ftp -o,gid=1000,uid=1000,umask=002 2>/dev/null &&
# пишем во временный файл
 find "mnt_ftp/$1"  > tmp_file &&
# отмотируем
    sleep 5s
    cmd=$(fusermount -u  mnt_ftp)
# меняем кодировку
    iconv -f cp1251 -t utf8 tmp_file > $NAME1
    rm tmp_file
echo "Список файлов можно посмотреть в файле $NAME1"
 
# если первый запуск то проверка не нужна, естественно при первом запуске "actual_list.txt" нет, не будет и проверки
if test -f "actual_list.txt"  
then DIFF=$(diff -q "old_list.txt" $NAME1)
    if [ "$DIFF" != "" ]
    then echo "Есть изменения"
    diff "old_list.txt" $NAME1 > diff_list.txt
    cat  diff_list.txt  
    echo "Эти сведения сохранены в файле diff_list.txt"
        
        echo -n "Если вы уверены что это не сбой чтения, то заменим эталонный файл [Y/n] ?"
        read item
        case "$item" in
            y|Y) echo "Файл заменен"
            ;;
            n|N) echo "Отказ пользователя, выход."
            exit 0
            ;;
         *) echo "Файл заменен "  
            ;;
        esac    
        mv actual_list.txt old_list.txt    
    
              echo -n "Хотите сейчас запустить копирование новых файлов? [Y/n] ?"
              read item
              case "$item" in
              y|Y) echo "Файл(ы) будут скопированы в каталог new_files"
              ;;
              n|N) echo "Отказ пользователя, выход."
              exit 0
              ;;
              *) echo "Файл(ы) будут скопированы в каталог new_files"  
              ;;
              esac    
              exec ./copy_file.sh    
    
    else echo "Изменений нет"
    
    fi
fi
 
echo "Удачного времени суток!"
exit 0

Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 00:09 15-09-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Мониторить/отслеживать обновление содержимого на FTP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru