Forked-daapd und rsync?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Forked-daapd und rsync?

Beitrag von pcace » 28.08.2011 01:15:58

Hi,

ich habe bei mir forked-daapd auf dem Server laufen.

Forked-daapd schaut auf /media/medien/Musik und sucht dort nach mp3s.

Diese Mp3s werden nun per rsync von meinem Apfel auf den server übertragen:

{{{#!code bash
rsync -rvz --exclude=.* --include=*.mp3 --include=*.m4a --perms --chmod=ugo=rwX --stats -h --progress --delete /Volumes/Media/Musik/ 192.168.10.100:/media/medien/Musik/Bibliothek
}}}

Das ganze funktioniert auch wunderbar! LEIDER habe ich nun ein Problem mit dem ich nicht so ganz fertig werde: Solange rsync kopiert, hat forked-daapd kein recht auf den jeweiligen Ordner zuzugreifen (was ja möglicherwesie auch nicht ganz blöd ist!?)
Das Resultat ist, dass sich forked-daapd merkt, dass es den jeweiligen Ordner nicht lesen kann, und damit werden die beinhalteten Titel nicht gescannt - auch im nachhinein nicht....

Das ganze sieht im Log etwa so aus:

{{{#!code bash
[2011-08-27 23:19:01] scan: Could not open directory /media/medien/Musik/Bibliothek/2raumwohnung: Keine Berechtigung
[2011-08-27 23:19:01] scan: Could not open directory /media/medien/Musik/Bibliothek/3 Besoffskis: Keine Berechtigung
[2011-08-27 23:19:01] scan: Could not open directory /media/medien/Musik/Bibliothek/3 Channels: Keine Berechtigung
[2011-08-27 23:19:01] scan: Could not open directory /media/medien/Musik/Bibliothek/3: Keine Berechtigung

}}}

forked-daapd läuft unter dem benutzer daapd. Wenn ich im init.d script den User auf root ändere, kann ich in den gerade kopierten Ordnern lesen.

Nun meine drei Fragen:

1. Wenn das ganze als root funktioniert, kann ich dem User daapd auch rechte geben, zu lesen, wenn rsync gerade auf den Ordner zugreift?

2. Ich weis dass man dienste wenn möglich nicht als Root laufen lässt (warum auch immer). Was spräche aber dagegen forked-daapd einfach als root laufen zu lassen?

3. Gibt es eine möglichkeit eine Art temporären Ordner zu nutzen? - Damit ich mir das alles sparen kann?

Ich hoffe auf schnelle Antworten ;)


Liebe Grüße,

Pfannkuchen

DeletedUserReAsG

Re: Forked-daapd und rsync?

Beitrag von DeletedUserReAsG » 28.08.2011 09:37:23

Ich kann nicht wirklich helfen, aber allgemein:
2. Ich weis dass man dienste wenn möglich nicht als Root laufen lässt (warum auch immer). Was spräche aber dagegen forked-daapd einfach als root laufen zu lassen?
Ein Programmfehler, oder eine böse Absicht, oder auch beides zusammen (einen Fehler, denn jemand in böser Absicht ausnutzen will – präparierte Dateien einlesen lassen o.ä.) hat es viel leichter, das System zu stören, zerstören oder auch nur zu kompromittieren, wenn das entsprechende Programm alle Rechte hat.

Da ich das Programm nicht kenne, und eh etwas naiv bin, würde ich einfach sicherstellen, dass das Prog nicht erst versucht, parallel zu rsync auf das Verzeichnis zuzugreifen. Das verändert sich ja sowieso noch, solange rsync läuft.

cu,
niemand

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Forked-daapd und rsync?

Beitrag von rendegast » 28.08.2011 14:52:56

Das Resultat ist, dass sich forked-daapd merkt, dass es den jeweiligen Ordner nicht lesen kann, und damit werden die beinhalteten Titel nicht gescannt - auch im nachhinein nicht....
Soll das bedeuten, der dämon notiert es in seiner Datenbank?

Oder ist es auf den laufenden Prozeß bezogen?
Dann könnte dem 'rsync' ein Neuladen/Neustart angeschlossen werden:
/etc/init.d/forked-daapd force-reload
oder halt ein Stop vor dem rsync, was wohl sauberer wäre.

Vielleicht reicht auch ein Anhalten

Code: Alles auswählen

kill -STOP -p $(pidof forked-daapd)
--- rsync ---
kill -CONT -p $(pidof forked-daapd)
Aber da weiß mensch nie so richtig, welche Auswirkungen das haben kann.


Vielleicht kann auch 'rsync' modifiziert werden, um die Zugriffzeit auf die jeweiligen Verzeichnisse klein zu halten.
Ich denke da an '--temp-dir=DIR', '--partial-dir=DIR' und '--delay-updates'.

Du hattest eigentlich doch eine Änderung eingearbeitet?
Ich rufe nun rsync in einem Script so auf:
rsync -trvu ...
(Die Zeiten der Geräte sollten dabei synchron sein.)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten