handdator

Visa fullständig version : All_and_all



hannhimhe
2010-09-26, 15:28
Har du, liksom jag, tröttnat på att bläddra runt bland flera mountade enheter för att hitta den där filmen frugan vill se på?

Problemet är ju det att man inte kan mounta flera enheter till samma mountpoint. Jag tröttnade på att leta runt bland 14 olika enheter för att hitta 'den där filmen' och gjorde något åt det. Ett väldresserat korn shell är att föredra men det jag lyckades få in i AzBoxen drabbas av scopingproblem från helvetet så jag portade hela härligheten till bash. Detta medförde att mappnamn som innehåller mellanslag får hela rasket att balla ur fullständigt.


#! /bin/bash

mountpoint="/DATA/download/ALL_AND_ALL/"
dirarray[0]="/DATA/download/MOUNT_1/"
dirarray[1]="/DATA/download/MOUNT_2/"

if [[ $1 = "build" ]];then
dircount=0
cnt=0

while [ $dircount -lt ${#dirarray } ]
do
cd "${dirarray[$dircount]}"
echo "Changed dir to: ${dirarray[$dircount]}"

Dirlist=$(ls -d */)
for line in $Dirlist ; do
echo "$line"
myarray[$cnt]="$line"
export cnt=$(($cnt+1))
done

ncnt=0
while [ $ncnt -lt ${#myarray } ]
do
ln -s "${dirarray[$dircount]}${myarray[$ncnt]}" "$mountpoint"
ncnt=$(($ncnt+1))
done
dircount=$(($dircount+1))
done
else
echo "Hello"
fi

ALL_AND_ALL erbjuds AS IS, helt utan garantier och support. Detta är ett första utkast. Jag kommer säkerligen att uppdatera med tiden.

matkoh
2010-09-26, 16:36
Hmmm.

Vad är det för problem med att ex. montera delad1 /nfs/movie, delad 2 -> /nfs/filmer osv, då ligger de ju under samma huvudmapp.

hannhimhe
2010-09-26, 16:43
Jag vill ha alla filmer, som på servern ligger på fem olika diskar, i samma mapp på mediaspelaren.

matkoh
2010-09-26, 16:54
Hmmmm.

Gör det inte så med min metod ? Alla utdelningar hamnar under /nfs/.

hannhimhe
2010-09-26, 17:32
Nej.

hannhimhe
2010-10-01, 22:44
Nytt utkast (betoning på utkast). Löser även mappar vars namn innehåller mellanslag.


#! /bin/bash
clear
mountpoint="/DATA/download/ALL_AND_ALL/"
dirarray[0]="/DATA/download/MOUNT_1/"
dirarray[1]="/DATA/download/MOUNT_2/"

if [[ $1 = "build" ]];then
dircount=0
while [ $dircount -lt ${#dirarray } ]
do
cd "${dirarray[$dircount]}"
cnt=0

Dirlist=$(ls -d */)
for line in $Dirlist ; do
if [[ ${line:(-1)} != "/" ]];then
if [[ -z $templine ]];then
templine="$line"
else
templine="$templine $line"
fi
else
if [[ -n $templine ]];then
line="$templine $line"
fi
unset $templine
myarray[$cnt]="$line"
export cnt=$(($cnt+1))
fi
done

ncnt=0
while [ $ncnt -lt $cnt ]
do
ln -s "${dirarray[$dircount]}${myarray[$ncnt]}" "$mountpoint"
ncnt=$(($ncnt+1))
done
dircount=$(($dircount+1))
done
else
echo "Hello"
fi


På att-göralistan finns:
Städa kod
Tömma mountpoint på existerande länkar (ln -s)

hannhimhe
2010-10-01, 22:50
Nytt utkast (betoning på utkast). Löser även mappar vars namn innehåller mellanslag.


#! /bin/bash
clear
mountpoint="/DATA/download/ALL_AND_ALL/"
dirarray[0]="/DATA/download/MOUNT_1/"
dirarray[1]="/DATA/download/MOUNT_2/"

if [[ $1 = "build" ]];then
dircount=0
while [ $dircount -lt ${#dirarray } ]
do
cd "${dirarray[$dircount]}"
cnt=0

Dirlist=$(ls -d */)
for line in $Dirlist ; do
if [[ ${line:(-1)} != "/" ]];then
if [[ -z $templine ]];then
templine="$line"
else
templine="$templine $line"
fi
else
if [[ -n $templine ]];then
line="$templine $line"
fi
unset $templine
myarray[$cnt]="$line"
export cnt=$(($cnt+1))
fi
done

ncnt=0
while [ $ncnt -lt $cnt ]
do
ln -s "${dirarray[$dircount]}${myarray[$ncnt]}" "$mountpoint"
ncnt=$(($ncnt+1))
done
dircount=$(($dircount+1))
done
else
echo "Hello"
fi


På att-göralistan finns:
Städa kod
Tömma mountpoint på existerande länkar (ln -s)

Leatherface
2010-10-02, 20:33
Finns ju redan scripts som gör det och dessutom kategoriserar efter bokstäver, datum, genre och liknande.

hannhimhe
2010-10-02, 21:10
Finns ju redan scripts som gör det och dessutom kategoriserar efter bokstäver, datum, genre och liknande.

Oh bugger.
Jag hade inte ens en blek aning om det. Aja, det är kul tidsfördriv.

wba
2010-10-02, 22:12
Var finns det scriptet att ladda hem?

hannhimhe
2010-10-02, 22:16
CTRL+C CTRL+V
Skapa en fil med valfritt namn
chmod +x filnamn
Redigera mountpoint och dirarray
./filnamn build

wba
2010-10-02, 22:19
Jag menar det leatherface skrev om.