Автор Гілка: Примітивна синхронізувалка  (Прочитано 8066 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #15 : 2009-03-03 09:55:17 »
щось я не розумію: якщо немає зв’язку між директоріями, як ви збираєтесь копіювати між ними файли?  :o

Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #16 : 2009-03-03 10:51:28 »
А як по вашому люди дізнаються про протокол обміну електронною поштою, реверс-інжинірінгом MTA? Чому для того, щоб здогадатись що ви маєте на увазі обов'язковою умовою є колупання в коді? Я запитав - що саме повинно відбуватись з даними, як ви собі все це уявляєте - фактично, просто про те, як влаштована ваша програма. Що тут не зрозуміло?

Таки man rsync. Пошук по слову exclude.
Ну виключає rsync деякі файли... велике діло  ;D

Починає радувати те, що ви на решті задали питання по суті  :)
Тільки потім не ображайтесь, що виголошуватиму цілком очевидні речі  ;)

Шелівський скрипт призначений для пошуку файлів і складання відповідного списку знайденого в файлі files.in в тому файлі містяться імена файлів та дати останньої модифікації в секундах від початку часів  ::) аналогічний файл, але створений на іншій машині називається files.out ну і files.ban -- rsync -івське --exclude-from пітонівський скрипт проводить махінації над цими файлами і видає список файлів, що є новіші, список нових файлів та викидає з цих списків файли, що містяться в списку files.ban з командою auto або arch він ще й архів створює під назвою work.tbz2 в той архів закидаються фали новіші, нові, незабанені та файл filelist.in але під назвою filelist.out (filelist.in після такої махінації зникає  ;) ). В результаті маєм маленький архівчик (ну не можна за день в текстовому редакторі чогось начудити, що займе гектар пресованого архіву), який не те що на флешку - на дискету влазе.
ls -sht /media/usb/sync/
total 1,3M
 16K 14305-h-work.tbz2          16K 14260w-work.tbz2
 16K 14305-w-work.tbz2          16K 14260w-filelist.bz2
 16K 14304-h-work.tbz2          16K 14259-h-filelist.bz2
 16K 14304-h-filelist.bz2      928K -----------
 16K 14293-w-filelist.bz2       16K 14259-w-filelist.bz2
 16K -------------------------   16K 14259-w-work.tbz
 16K 14290-h-filelist.bz2       48K 14258-work.tbz
 16K 14279-w-filelist.bz2       32K 1231966820-filelist
 32K ---------------

# як бачим: мікроби ?????-?-work.tbz2 замають не більше сектора на флешці.
# початкове число в назві файлу означає день від початку часів

щось я не розумію: якщо немає зв’язку між директоріями, як ви збираєтесь копіювати між ними файли?  :o
/me дістає з сейфу пістолет...
Та скільки вже можна товкти, що файли не копіюються, а пакуються для перенсення на флешці, дискеті чи у відрі  :-X
« Змінено: 2009-03-03 11:01:07 від serg_ik »
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній bobyk

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #17 : 2009-03-19 11:24:27 »
Ну знову до забору... Та що ви причепились зі своїм rsync ?
Мова йде про випадок, коли нема прямого зв'язку з директоріями: нема контакту через мережу, нема виносного вінта. Ну відкіля rsync знає, які саме файли оновити, коли нема зв'язку? А тут все (майже все) під це підлаштовано: збираються данні про всі файли і окремим файлом заливаються в архів синхронізації. Де в rsync файли заборонені для копіювання? Тут про це згадувалось (filelist.ban). Читайте дописи, а не товчіть воду в ступі  >:(

Протокол обміну - це докладний опис того, як саме дані з однієї машини будуть переноситись на іншу, чи переноситись будуть тільки зміни між двома копіями, критерій визначення змін, чи повинні дані стискатись, шифруватись, роль змінного носія і тд.
Ну а я можу написати що таке числове інтегрування... і знову залишиться питання: "до чого це?"
rsync може навіть md5 суму від синканих файлів порівнювати

 -c, --checksum              skip based on checksum, not mod-time & size

і ось ше

        -u, --update                skip files that are newer on the receiver
            --inplace               update destination files in-place
            --append                append data onto shorter files
нерозумію  длячого мучити питон і видумувати віласіпет (хіба для того щоб вбити час?)

rsync <options> <source> <dest>
і  <source> і <dest> можуть бути локальними - ніхто не забороняє Вам

[ip@ip ~]$ cd /tmp
[ip@ip tmp]$ touch 1
[ip@ip tmp]$ rsync 1 2
[ip@ip tmp]$ ls -la 1 2
-rw-rw-r-- 1 ip ip 0 2009-03-19 11:22 1
-rw-rw-r-- 1 ip ip 0 2009-03-19 11:22 2

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #18 : 2009-03-19 15:20:28 »
Для мудреців типу Бобика пояснюю ще раз: ппрямого зв'язку між компами нема. Якщо на пальцях: одночасно обидва компи увімкнутими дуже рідко бувають  ;D
До речі, я вже роапгрейдив примітивну "синхронізувалку", але результати своїх звершень поки не виставлятиму...
Почекаю коротенької поради, що до того, як з допомогою rsynk синхронізуватись з вимкненим компом :)
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Djalin

  • Письменник
  • *****
  • дописів: 661
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #19 : 2009-03-20 10:38:37 »
Для мудреців типу Бобика пояснюю ще раз: ппрямого зв'язку між компами нема. Якщо на пальцях: одночасно обидва компи увімкнутими дуже рідко бувають  ;D
До речі, я вже роапгрейдив примітивну "синхронізувалку", але результати своїх звершень поки не виставлятиму...
Почекаю коротенької поради, що до того, як з допомогою rsynk синхронізуватись з вимкненим компом :)
та не треба таких мудреців слухати - скримп діло хороше ( правда користуватись ним я ще невмію, але якщо до нього буде пояснення  ::)...) загалом чекаю нового...
« Змінено: 2009-03-20 10:45:16 від djalin »

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #20 : 2009-03-21 18:55:13 »
Значення команд пітонівського скрипта:
wiseversa  поміняти місцями імена вхідного і вихідного файлів (filelist.in, filelist.out) (команда дурна і не знаю навіщо її вигадав  :D)
оновити список тутешніх файлів (виконати lister.sh), auto скласти список новіших і нових файлів, заархівувати їх до файлу work.tbz2, виконати move.sh
F, fresh оновити список тутешніх файлів
newer подати список новіших файлів
new --- нових
noban  не викидати зі списку "забанені" файли
arch заархівувати вибрані файли до work.tbz2
vi відредагувати вімом список файлів (якщо хочеться щось дописати своє)

значення шелівських скриптів:
move.sh - пересуває файл work.tbz2 куди-завгодно: користувачу видніше
lister.sh - створює список файлів, з якими працює примітивна синхронізувалка. (руками змінювати лише список розширень)

Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Примітивна синхронізувалка
« Відповідей #21 : 2010-01-25 13:44:23 »
Підправив пітонівського скрипта, щоб скоріше гасав.
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.