Strona 1 z 1

[bash] skrypcik do synchronizacji

: 11 lut 2011, 16:47
autor: soulreaver1
Witam.

Napisałem sobie prościutki skrypcik do synchronizacji plików mp3 komputera z telefonem.

Kod: Zaznacz cały

#!/bin/bash
rsync -vr --progress --stats --ignore-existing /home/work/mp3 /media/Storage/mp3
umount /media/3061-0800
umount /media/Storage
echo ""
echo "*** Zakończono synchronizację, można odłączyć urządzenie ***"
Dodatkowo chciałbym aby skrypt nie dopuszczał możliwości dublowania plików w /media/Storage/mp3 ,bez względu na to w jakim folderze się on znajduje. tzn.

plik znajduje się w /media/Storage/mp3/folder1/plik1.mp3 , to plik /media/Storage/mp3/folder2/plik1.mp3 nie powinien zostać zapisany na pamięci telefonu (powinien zostać zignorowany). Nie mam pomysłu na to... Czytałem man rsync-a i wydał mi się mało szczegółowy, nic nie znalazłem.

Odp: [bash] skrypcik do synchronizacji

: 11 lut 2011, 18:54
autor: LukAs
Nie chce mi się za Ciebie myśleć, ale użycie np. polecenia find i zrobienie z tego instrukcji sterującej powinno wystarczyć

Kod: Zaznacz cały

Pseudo kod
find zmienna
nie znalazłem podobnego pliku
kopiuje
end
A ja zrobiłbym to tak, że tworzyłbym sobie listę skopiowanych plików. Potem tą listę można łatwo wykorzystać.

Odp: [bash] skrypcik do synchronizacji

: 11 lut 2011, 22:24
autor: borzole
* pierwsza faza to wyszukanie plików o tej samej wielkości
* druga faza to porównanie sum kontrolnych plików wyłapanych w pierwszej fazie
* porównanie jest dwustopniowe, bo porównanie rozmiarów to 90% pewności, a porównywanie sum jest czasochłonne.

* Jest już do tego program fslint i jest nie tylko graficzny, składa się z szeregu drobnych konsolowych narzędzi, więcej: man fslint

Odp: [bash] skrypcik do synchronizacji

: 12 lut 2011, 09:16
autor: LukAs
* pierwsza faza to wyszukanie plików o tej samej wielkości
@borzole, myślę, że dobrze byłoby jeszcze wykorzystać polecenie file z grep do przefiltrowania plików. Wiadomo, że nazwy utworów mogą się nieznacznie różnić, mogą mieć różną jakość, różny format, mogą to być remiksy, koncertowe nagrania itd. Da się też wyciągnąć z pliku długość ścieżki (length).

Kod: Zaznacz cały

lukas@Biuro:/media/mp3$ file -b * | grep Audio
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 160 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1,  48 kbps, 44.1 kHz, JntStereo

lukas@Biuro:/media/mp3$ file -b * | grep Audio | grep 192
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
Uwagi:
Polecenie file dostarcza dokładne informacje o plikach, a z opcją -b ukrywa nazwy plików.