Freigabe von der Kommandozeile in die smb.conf schreiben
Freigabe von der Kommandozeile in die smb.conf schreiben
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
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
Code: Alles auswählen
cat << EOF >> /etc/samba/smb.conf
[Daten]
writeable = yes
read list = drabo
path = /daten
EOF
fi
Zuletzt geändert von drabo am 22.03.2005 15:24:50, insgesamt 1-mal geändert.
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
im einfachsten Fall (ohne sed)
Code: Alles auswählen
grep -v "DEINELOESCHZEILE" smb.conf > smb.conf.temp
cp smb.conf.temp smb.conf
Danke für den Tipp
der befehl löscht meine gesamte Datei
wie könnte ich den gesamten Block
löschen
Code: Alles auswählen
grep -v "[Daten2]" test.conf > test.conf.temp
cp test.conf.temp test.conf
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
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
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
sollte die Ausgabe schonmal besser aussehen..
das Blockweise löschen ist nicht ganz so trivial
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
das Blockweise löschen ist nicht ganz so trivial
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
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
}
'
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
freigabe_loeschen.sh
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
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
./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
- Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
:-p
grrr...
du muss das so schreiben (auszug)
grrr...
du muss das so schreiben (auszug)
Code: Alles auswählen
gefunden == 1 && /^\[.*/{
gefunden=0
}
/^\['$1'\].*/ {
gefunden=1
}