Synology-Forum.nl
Packages => Officiële Packages => Audio Station => Topic gestart door: Tien op 12 april 2013, 11:45:29
-
Ik heb het aardig doorgelezen: http://www.synology-forum.nl/audio-station/leestekens-in-map-music-in-een-keer-renamen-dmv-script/msg67375/#msg67375 (http://www.synology-forum.nl/audio-station/leestekens-in-map-music-in-een-keer-renamen-dmv-script/msg67375/#msg67375)
maar kom er toch niet helemaal uit.
Kan iemand mij stap-voor-stap uitleggen hoe ik op mijn /music map een script kan loslaten dat de vreemde tekens verwijdert zodat ik ze weer kan backuppen en kopiëren? Ik ben wat voorzichtig omdat het dus om de /music map gaat waarvan ik geen backup heb / kan hebben. Ik zou echt heel erg geholpen zijn met een stap-voor-stap iets.
Ik heb inmiddels sabnzbd 0.7.11 draaiend en voor de nieuwe te downloaden bestanden gaat het goed.
Bedankt.
-
Het volgende script doet dit voor je.
Bewaar het script in een folder op de NAS, bijvoorbeeld je home directory.
Noem het 'strict-ascii' bijvoorbeeld.
Dan zet je de mode naar 755:
chmod 755 ./strict-ascii
Je draait het script met als argument een folder, bijvoorbeeld:
./strict-ascii /volume1/music
of
./strict-ascii /volume1/music/Artiest/Album
of zo
Het script zal dan een overzicht geven van de folders en files die zouden moeten worden hernoemd.
Standaard doet het script niets, alleen als je de -f optie meegeeft zal het folders en files hernoemen.
Let op: je moet wel /opt/bin/bash hebben geinstalleerd via ipkg.
Ik denk ook dat je dit kan draaien als de share is gemount op je lokale pc/linux/mac, maar het hangt af van de rechten.
Ik heb het script getest, maar het hangt helemaal af van je eigen layout of het goed werkt.
Het kan ook zijn dat je het script twee of drie keer moet draaien omdat je veel foldernamen hebt met rare karakters.
Let er ook op dat de rare karakters worden weggegooid, en niet vervangen door 'iets dat erop lijkt'
#!/opt/bin/bash
if [ "$1"X = "-fX" ] ; then
CMD="mv"
echo This program will actually rename directories and/or files
echo Please re-index afterwards
shift
else
CMD="echo"
fi
if [ "$1"X = "X" ] ; then
echo $0: folder
exit
else
if [ -d "$1" ] ; then
dir=$1
else
echo $1 does not exist
exit
fi
fi
#first we need to find directories
echo starting from $dir looking for directories
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for folder in `find "$dir" -type d` ; do
folder_non_ascii=${folder//[^[:ascii:]]/}
if [ "${folder}" != "${folder_non_ascii}" ] ; then
[ -d "${folder}" ] && $CMD "${folder}" "${folder_non_ascii}"
fi
done
#then we need to find files
echo starting from $dir looking for files
for file in `find "$dir" -depth -type f` ; do
file_non_ascii=${file//[^[:ascii:]]/}
if [ "${file}" != "${file_non_ascii}" ] ; then
$CMD "${file}" "${file_non_ascii}"
fi
done
IFS=$SAVEIFS
Omdat het script bestandsnamen wijzigt, moet je database weer opnieuw gevuld worden. Dat doe je door een re-index te doen vanuit de DSM console.
-
ahum... hoe plak ik?
-
ahum... hoe plak ik?
Tsja, Unix leren denk ik.
Als je niet weet hoe je de tekst van het programma dat ik heb geschreven op je NAS krijgt, gaat het niet lukken.
Ik ga je daar niet mee helpen, want ik denk dat de kans op fouten dan veel te groot is en dat is het niet waard.
Je moet je maar inlezen in inloggen, commando's, vi en bash, denk ik.
-
Je kunt ook de Config File Editor (CFE) gebruiken. Dat is een pakket waarmee je eenvoudig configuratie bestanden en natuurlijk ook script bestanden kunt aanpassen.
-
ahum... hoe plak ik?
Tsja, Unix leren denk ik.
Als je niet weet hoe je de tekst van het programma dat ik heb geschreven op je NAS krijgt, gaat het niet lukken.
Ik ga je daar niet mee helpen, want ik denk dat de kans op fouten dan veel te groot is en dat is het niet waard.
Je moet je maar inlezen in inloggen, commando's, vi en bash, denk ik.
Ben een aardig end met Linux op de PC en ook deze bron (http://nl.wikibooks.org/wiki/Linux_voor_beginners/De_terminal (http://nl.wikibooks.org/wiki/Linux_voor_beginners/De_terminal)) heb ik doorgenomen. Weet alleen ff niet hoe ik een tekst moet plakken op de prompt maar de editor will do. Moet ergens beginnen, maar evengoed bedankt.
-
Zojuist mijn music map (700 Gieg) met het scriptje Chartranslator.py in no time gecheckt. Geweldig! <!-- s:D --> :D <!-- s:D -->
Dankzij tip van Matr1x.
Zo leren we allemaal weer van elkaar.
Voorbeeld:
Via Putty of Telnet:
/usr/local/sabnzbd/var/scripts/CharTranslator.py /volume1/music
Aanvulling: dit werkt alleen als je SABnzbd geïnstalleerd hebt via SynoCommunity.
Zo makkelijk is het, niks moeilijk gedoe met unix.
-
Voorbeeld:
Via Putty of Telnet:
/usr/local/sabnzbd/var/scripts/CharTranslator.py /volume1/music
Aanvulling: dit werkt alleen als je SABnzbd geïnstalleerd hebt via SynoCommunity.
In DSM 4.2 kun je het ook zonder putty of telnet doen, door eenmalig een taak hiervoor te plannen en uit te voeren.
-
deze heb ik nu als (admin) taak toegevoegd en gestart:
/usr/local/sabnzbd/var/scripts/CharTranslator.py /volume1/music
Hoe kan ik zien dat hij (op dit moment) 'aan het runnen' is en pakt hij alle submappen mee?
-
Draait maar een paar minuten en dan zie je het resultaat.
Neemt subdirs mee.
Tussentijdse controle bij mijn weten niet mogelijk
-
kan het zijn dat hij die ruitjes met vraagtekens erin met rust laat?
Ik heb het script gedraaid via telnet maar hij laat de ruitjes met vraagtekens erin met rust. Kan ik dat oplossen met dit script of moet ik toch naar de eerder genoemde oplossing gaan werken? In onderstaand voorbeeld staat in de betreffende map een bestand of 10 met zo'n ruitje maar daar lijkt hij niets mee te doen...
==========
./UITZOEKEN/HQ/Erik Satie - Avant derni_#232_res pens_#233_es 2009/@eaDir/cover Satie.png -> No special characters detected: Nothing to be done[/font]
./UITZOEKEN/HQ/Erik Satie - Avant derni_#232_res pens_#233_es 2009/solo -> No special characters detected: Nothing to be done[/font]
./UITZOEKEN/HQ/Erik Satie - Avant derni_#232_res pens_#233_es 2009/@eaDir -> No special characters detected: Nothing to be done[/font]
./UITZOEKEN/HQ/Erik Satie - Avant derni_#232_res pens_#233_es 2009/duos -> No special characters detected: Nothing to be done[/font]
==========
-
welke versie van de CharTranslator draait bij jou?
-
die met Sabnzbd 0.7.11 / Python 7.1.3 meekwam - hoe kan ik zien welke versie het is? Hij doet het overigens wel goed als ik diezelfde CD download, dan pakt hij hem netjes uit en verwijdert de vreemde tekens. Alleen die ruitjes van eerdere bestanden kan hij niet handelen.
-
Met de Config File Editor kun je dit nakijken in het script zelf.
Het is niet (automatisch?) zo, dat het script wordt geüpdate bij update van SAB/Python.
Als echter het converteren bij nieuwe downloads goed gaat, zou dat ook met de bestaande moeten lukken.
Probeer anders ook even of je die betreffende bestanden nu wel kunt renamen middels FileStation.
-
oké dank je.
Renamen gaat niet (de bekende map of bestand bestaat niet error).
Ik heb inmiddels gevonden dat de config file manager een programma is dat geïnstalleerd moet worden op de Synology. Dat is via een spk gelukt.
Nu kom ik er alleen niet achter waar ik moet kijken. In het pulldown staat niet zoiets als chartranslator (terwijl die er wel moet zijn want via de prompt heb ik die werkend gekregen). - zie screendump
Wat zie ik over het hoofd? Of ben ik te voorzichtig en moet ik gewoon die [/usr/local/sabnzbd/var/scripts/CharTranslator.py] als regel toevoegen in het getoonde attachment?
-
Yep
-
oké thanks: ik vrees (of niet) "But converted characters will not be good, ex: �? instead �"
Ik heb het CharTranslator.py bestand in de bijlage gedaan als tekstbestand, wil je eens kijken?
-
Inderdaad nog versie 1.3.
Via de volgende link kun je middels copy en paste versie 1.8 erin zetten. Denk eraan precies alles mee te nemen. Als je niet de optie krijgt om te saven, even een spatie erachter zetten en vervolgens weer weg halen. http://forums.sabnzbd.org/viewtopic.php?f=9&t=10595&sid=f64050ef576bce550546a5a27617d131&start=60#p79752 (http://forums.sabnzbd.org/viewtopic.php?f=9&t=10595&sid=f64050ef576bce550546a5a27617d131&start=60#p79752)
Heb je dat in ieder geval up to date. :)
Dan nog weet ik niet zeker of jouw probleem ook helemaal verholpen is. Het is bij mij al een poosje geleden dat ik dit gebruikt heb en bij mijn weten had ik deze problemen niet.
Weet je zeker dat je naar het juiste pad (van de bestanden) verwijst in de opdracht? ???
BTW: Zoals ik al eerder schreef: ik heb bij de SynoCommunity een request ingediend om dit als een aparte applicatie in DSM beschikbaar te maken en men heeft daar welwillend op gereageerd. Of en wanneer dit ook echt gebeurt weet ik niet. ???
-
Dank je, het is gelukt (vooral die spatie deed het 'm). Helaas loopt dit script op dezelfde error uit als de vorige (zie bijlage- screendump van telnetsessie): heeft dit te maken met het issue dat jij bij Synology hebt ingebracht?
-
mag ik van iemand nog de tip hoe ik op de synology ipkg /opt/bin/bash installeren moet?
Kan ik in ieder geval zeggen dat ik alles geprobeerd heb....
-
Dank je, het is gelukt (vooral die spatie deed het 'm). Helaas loopt dit script op dezelfde error uit als de vorige (zie bijlage- screendump van telnetsessie): heeft dit te maken met het issue dat jij bij Synology hebt ingebracht?
Hoe log je aan in de telnet sessie? Als root? Ik kan me niet voorstellen dat je dan nog de melding permission denied krijgt.
mag ik van iemand nog de tip hoe ik op de synology ipkg /opt/bin/bash installeren moet?
Kan ik in ieder geval zeggen dat ik alles geprobeerd heb....
Waarom wil je dat installeren. Je hebt IPKG (install package) alleen nodig als je zelf pakketten gaat installeren en updaten. En waarom wil je bash shell installeren?
-
JAAAA! Dat was het Neo.
even stap-voor-stap wat dus nu werkt:
- Op de mac kies ik voor [terminal] (op de PC deed ik CMD dus dosprompt en dan telnet)
- Dan typ ik in: telnet [ipadres-nas]
- Nas-name login: root
- Wachtwoord: admin-wachtwoord
- Dan achter de > intypen: /usr/local/sabnzbd/var/scripts/CharTranslator.py /volume1/music
Ik had dus niet [root] maar [admin] ingegeven vorige keren bij login en daar ging het fout....pfff...
De ruitjes zijn weg en ik heb heel wat geleerd!!!
Dank jullie allemaal wel! Ik ben er echt heel blij mee; vanavond hopelijk eindelijke een foutloze backup draaien.
ps: Matr1x de vraag van mij over de [ipkg /opt/bin/bash] kwam omdat in een van de eerder antwoorden een scripts stond dat ik wilde runnen maar niet werkte en ik er vanuitging dat het kwam door het ontbreken van ipkg /opt/bin/bash -> deze post was het: http://www.synology-forum.nl/audio-station/achteraf-vreemde-tekens-verwijderen/msg72353/#msg72353 (http://www.synology-forum.nl/audio-station/achteraf-vreemde-tekens-verwijderen/msg72353/#msg72353)
-
ps: Matr1x de vraag van mij over de [ipkg /opt/bin/bash] kwam omdat in een van de eerder antwoorden een scripts stond dat ik wilde runnen maar niet werkte en ik er vanuitging dat het kwam door het ontbreken van ipkg /opt/bin/bash -> deze post was het: http://www.synology-forum.nl/audio-station/achteraf-vreemde-tekens-verwijderen/msg72353/#msg72353 (http://www.synology-forum.nl/audio-station/achteraf-vreemde-tekens-verwijderen/msg72353/#msg72353)
Als je hier op doelt:
#!/opt/bin/bash
Dan is dit alleen maar een manier om aan te geven welke functie het script gebruikt. Hij voert dit commando niet uit, maar include de functie zodat code uit deze functie beschikbaar is in het script.
-
Dan is dit alleen maar een manier om aan te geven welke functie het script gebruikt. Hij voert dit commando niet uit, maar include de functie zodat code uit deze functie beschikbaar is in het script.
Dat is niet waar.
Het script dat ik schreef en beschikbaar stelde gebruikt specifiek een functie van bash om non-ascii karakters te verwijderen.
Door #!/opt/bin/bash in je eerste regel te zetten, dwing je de shell om het script via die shell uit te voeren.
Het script werkt niet met default /bin/sh of /bin/ash
Veel scripts hebben die #! directive, onder meer de php scripts waar het hier ook over gaat
#!/bin/php
#!/usr/bin/perl
etc. etc. zorgen er allemaal voor dat de shell dat programma roept om de rest van de file te executeren.
-
BTW: Zoals ik al eerder schreef: ik heb bij de SynoCommunity een request ingediend om dit als een aparte applicatie in DSM beschikbaar te maken en men heeft daar welwillend op gereageerd. Of en wanneer dit ook echt gebeurt weet ik niet. ???
Inmiddels bericht gehad van de Synocommunity dat ze dit wel een goed idee vonden maar dat ze het door tijdgebrek niet kunnen uitvoeren.
Jammer maar niet onoverkomelijk.