Freigabe von der Kommandozeile in die smb.conf schreiben

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Freigabe von der Kommandozeile in die smb.conf schreiben

Beitrag von drabo » 22.03.2005 14:39:11

Hallo Leute

Ich möchte per Kommandozeilen Befehl eine Freigabe in der smb.conf erstellen und wieder löschen können.

Bsp.

schreibe [Daten]
writeable = yes
read list = drabo
path = /daten

in smb.conf

:-)

geht das ??

Kann ich diesen eintrag auch einfach löschen

Bsp.

lösche Freigabe [Daten]



Danke für Tipps und Anleitungen

mfg

Dragan

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 15:04:47

Code: Alles auswählen

cat << EOF >> /etc/samba/smb.conf
[Daten]
writeable = yes
read list = drabo
path = /daten

EOF
fi
so könnte es aussehen wenn ich etwas reinschreibe aber wie lösche ich jetzt genau diesen Eintrag in der smb.conf ??? Vielleicht mi sed ??? weiss gerade jemand wie
Zuletzt geändert von drabo am 22.03.2005 15:24:50, insgesamt 1-mal geändert.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.03.2005 15:20:36

im einfachsten Fall (ohne sed)

Code: Alles auswählen

grep -v "DEINELOESCHZEILE" smb.conf > smb.conf.temp
cp smb.conf.temp smb.conf
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 15:51:17

Danke für den Tipp

Code: Alles auswählen

grep -v "[Daten2]" test.conf > test.conf.temp
cp test.conf.temp test.conf
der befehl löscht meine gesamte Datei

wie könnte ich den gesamten Block

Code: Alles auswählen

[Daten2]
writeable = yes
read list = drabo
path = /daten
<-------> bis hier hin
[Daten3]   
writeable = yes
read list = drabo
path = /daten
löschen

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.03.2005 16:00:04

oh sorry.. liegt daran, dass du "[ ]" die eckigen klammern in deinem String hast und daher einen regulären Ausdruck machst, der besagt, das du alle Zeilen löschen willst ind der mindestens einer der folgenden Buchstaben drin ist
D
a
t
e
n

und auch wo eine "2" drin steht

mit

Code: Alles auswählen

grep -v "\[Daten2\]" test.conf > test.conf.temp
sollte die Ausgabe schonmal besser aussehen..

das Blockweise löschen ist nicht ganz so trivial
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 16:05:51

sieht gut aus :-)

jetzt muss ich noch was machen das er die darauffolgenden Zeilen bis wieder ein "[" kommt löscht.

jemand ne Ahnung wie

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.03.2005 16:21:51

ja.. aber keine Lust :-(... hmm..

Code: Alles auswählen

cat smb.conf |  nawk ' 
BEGIN{
         gefunden=0
}
gefunden == 1 && /^\[.*/{
          gefunden=0
}
/^\[Daten2\].*/ {
          gefunden=1
}
gefunden == 0 {
          print
}
'
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 16:43:12

Code: Alles auswählen

cat test.conf |  nawk '
BEGIN{
         gefunden=0
}
gefunden == 1 && /^\[.*/{
          gefunden=0
}
/^\[Daten2\].*/ {
          gefunden=1
}
gefunden == 0 {
          print
}
' > test.conf.tmp
cp test.conf.tmp test.conf

Cool, bist ne geile SAU :-)

danke schön

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 17:02:32

freigabe_loeschen.sh

Code: Alles auswählen

#!/bin/bash
cat test.conf |  nawk '
BEGIN{
         gefunden=0
}
gefunden == 1 && /^\[.*/{
          gefunden=0
}
/^\[$1\].*/ {
          gefunden=1
}
gefunden == 0 {
          print
}
' > test.conf.tmp
cp test.conf.tmp test.conf
Ich versuche jetzt folgendes:

./freigabe_loeschen.sh Daten2

Er müsste jetzt den Parameter Daten2 in die Variable $1 speichern aber irgendwie klappts nicht und da dachte ich .......du wirst es wissen :-):-):-)

Danke für nen Tipp :-)

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.03.2005 17:09:09

:-p
grrr...

du muss das so schreiben (auszug)

Code: Alles auswählen

gefunden == 1 && /^\[.*/{
          gefunden=0
}
/^\['$1'\].*/ {
          gefunden=1
} 
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 22.03.2005 17:12:54

Danke Danke Danke
so lerne ich Programmieren :-)

Sorry für die NOOB Frage

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 22.03.2005 19:03:55

ich glaub so noopig ist das gar nicht.. kann es nicht ganz einschätzen, denke aber das es schon recht tief geht einen Block weg zu löschen.. aber schön das ich helfen konnte
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
drabo
Beiträge: 50
Registriert: 03.01.2005 19:36:28
Wohnort: Schweiz
Kontaktdaten:

Beitrag von drabo » 29.03.2005 16:02:51

Ich wollte dich auf keinen Fall degradieren, du darfst mich nicht falsch verstehen. Ich bin dankbar für deine Hilfe.

Antworten