smbclient åäö

Avdelningen för programmering, nätverk samt alternativa OS.
Post Reply
User avatar
toz
Posts: 80
Joined: 2002-03-16 11:34:46
Contact:

smbclient åäö

Post by toz »

Tjaba.

Håller på att bygga ihop ett litet script som skall göra livet lite enklare för mig.

Jag vill helt enkelt köra
"smbclient -L <HOST>"
för att lista vilka share som finns på en viss dator.
sedan tänkte jag skicka outputen via pipe till "grep" och filtrera bort diverse $ share och skrivare med mera,
Sen, vid det här laget har grep skakat fram ett antal namn på olika share som finns, så skall jag kontrollera om sharet är mountat om inte så vill jag göra det.

Sammanfattning jag vill mounta allt som finns på en host, monteringspunkterna om de inte redan finns, skapas av scriptet under en katalog som heter smbmount i min hemkatalog.

Men jag får problem redan med smbclient eftersom den inte visar åäö korrekt. Enklast är kanske att döpa om den utdelade mappen på värddatorn men det borde ju gå att lösa.

Har provat att lägga till dessa tre rader i smb.conf client

code page = 850
character set = iso8859-1
valid chars = 0345:0305 0366:0326 0344:0304

men kör jag testparm på detta så ignoreras dessa rader.

Slutligen finns det något annat bra sätt att browsa runt och mounta kataloger utan att behöva ange lösenord, jag vill nämligen kunna göra allt detta med en musklickning i soffan.
User avatar
toz
Posts: 80
Joined: 2002-03-16 11:34:46
Contact:

Delvis löst

Post by toz »

Provade att lista share från en annan linuxburk och det gick bättre, förmodligen lite nyare ver på samba paketet.
Hur som helst nu visas åäö korrekt, och jag har första delen av scriptet färdigt.
Har sparat det som en kommandofil med namnet listshare.
Sä här ser den ut:

#!/bin/bash
/usr/bin/smbclient -g -A ~/.smbauth -L $1 | grep Disk

Kommer förmodligen att lägga till en rad som först pingar $1 och om svar erhålls så körs smbclient.

kör jag kommandot så får jag denna output:

Disk|E$|Standardresurs
Disk|ä_2|
Disk|ö_3|
Disk|D$|Standardresurs
Disk|print$|Skrivardrivrutiner
Disk|tmp|
Disk|SCRIPTFCT|SCRIPTFCT
Disk|F$|Standardresurs
Disk|ADMIN$|Fjärr-admin
Disk|C$|Standardresurs
Disk|å_1|

Nu skall jag alltså köra grep eller något annat lämpligt kommando på detta resultat och plocka ut texten som står mellan "Disk|" och "|" samt att jag inte vill ha med alla share som innehåller ett $ tecken.

Någon som är kung på reguljära uttryck som kan hjälpa mig på traven ?
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

om du pipe:ar outputen genom cut -f2 -d"|" så borde den ge dig sakerna efter första pipe-tecknet, men inget efter andra.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

IcePic wrote:om du pipe:ar outputen genom cut -f2 -d"|" så borde den ge dig sakerna efter första pipe-tecknet, men inget efter andra.
Hela lösningen.

Code: Select all

/usr/bin/smbclient -g -A ~/.smbauth -L $1 | grep Disk | cut -f2 -d"|" | grep -v "$"
Kanske en \ före $, du får prova hos dig.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
toz
Posts: 80
Joined: 2002-03-16 11:34:46
Contact:

Post by toz »

Japp det funkade bra, tackar så mycket. jag gav dock inte upp efter att jag skrev inlägget så jag löste det på ett klumpigare sätt med ett par vändor genom sed och grep, inte så snyggt men det funkade, men jag kommer förmodligen att ändra till detta, har lagt till en extra grep som filtrerar bort alla share med dollartecken i namnet.

/usr/bin/smbclient -g -A ~/.smbauth -L 10.0.0.2 | grep Disk | grep -v '\$' | cut -f2 -d"|"

Boven i dramat när det gäller smbclient var att jag hade en parameter i smb.conf under [global]
dos charset = ISO8859-1
kommenterade bort den och då funkade smbclient som den skulle, dvs. den visar åäö korrekt.

En ny följdfråga på det här lilla scriptet, finns det någon flagga som talar om när en katalog är monterad, eller ej, behöver göra en koll innan jag mountar så att katalogen inte redan är monterad.

if [ -d ] kan ju användas för att kolla om en katalog finns, men jag anar att det kanske finns någor annat som kan tala om ifall den är monterad eller inte.
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

mount | grep katalognamn
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
toz
Posts: 80
Joined: 2002-03-16 11:34:46
Contact:

Post by toz »

ja det är ju klart, att jag inte tänkte på det.
Post Reply