Generator configu Samby - pobieranie kolejnych linii z innego pliku

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 190
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Generator configu Samby - pobieranie kolejnych linii z innego pliku

Post autor: mes mariusz » 01 mar 2017, 07:54

Witam.

Chciałbym sobie napisać bashowy skrypt - generator configu Samby, który będzie pobierał dane z oddzielnych plików i generował wynikowy smb.conf

Prośba o podpowiedź, jakich narzędzi mogę użyć, by pobierać kolejne linie (adresy IP) z pliku maszyny_user1.txt o zawartości:

Kod: Zaznacz cały

192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
i na podstawie tego utworzyć (w ramach ćwiczenia na razie tyle) plik smb.conf o zawartości:

Kod: Zaznacz cały

hosts allow = 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,192.168.1.6
Coby nie zamęczać - manuale doczytam, prośba tylko o wskazanie narzędzi.
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 190
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Re: Generator configu Samby - pobieranie kolejnych linii z innego pliku

Post autor: mes mariusz » 01 mar 2017, 18:08

Napisałem już sobie działający generator, ale pojawiła się potrzeba dodania do jednego zasobu adresy IP kilku różnych userów. W związku z powyższym zmodyfikowałem skrypt do postaci:

Kod: Zaznacz cały

#!/bin/bash

function dodaj_adresy
{
lista_serwerow=($(<Komputery-$user.txt))
sep=','
bar=$(printf "${sep}%s" "${lista_serwerow[@]}")
bar=${bar:${#sep}}
echo "$bar" >> ./smb.conf
}

echo -e "# Data generacji konfiguracji: `date +%Y.%m.%d-%T` \n\r" > ./smb.conf

# cat ./samba_content_general.txt >> ./smb.conf

echo "[Data-Mariusz]
comment = /mnt/Users/Users/Mariusz
guest ok = yes
path = /mnt/Users/Users/Mariusz
read only = no
create mask = 0777
directory mask = 0777
browseable = no" >> ./smb.conf

echo " host allow: " >> ./smb.conf
user=Mariusz
dodaj_adresy
user=user2
dodaj_adresy
Niestety nie wiem, jak dodać coś na koniec ostatniej linii istniejącego pliku, ponieważ ">>" dodaje nową linię za ostatnią, a to generuje taki problem:

Kod: Zaznacz cały

 host allow:
192.168.1.2,192.168.1.3,192.168.1.4
192.168.1.5,192.168.1.6,192.168.1.7
A ja potrzebowałbym dostać wynik taki:

Kod: Zaznacz cały

 host allow: 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,192.168.1.6,192.168.1.7 
Awatar użytkownika
enedil
Terminator
Terminator
Posty: 1304
Rejestracja: 08 wrz 2012, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Generator configu Samby - pobieranie kolejnych linii z innego pliku

Post autor: enedil » 02 mar 2017, 16:49

Może jakiś drobny Pythonik?

Kod: Zaznacz cały

python -c "open('./smb.conf', 'a').write(',$BAR')"
Dobrze jest, psiakrew, a kto powie, że nie, to go w mordę!

~moderatorzy
mes mariusz
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 190
Rejestracja: 11 mar 2009, 16:49
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Re: Generator configu Samby - pobieranie kolejnych linii z innego pliku

Post autor: mes mariusz » 02 mar 2017, 17:50

Już znalazłem rozwiązanie :-). Banalne i działające :-)
http://www.elektroda.pl/rtvforum/viewto ... 8#16315798
ODPOWIEDZ

Wróć do „Programowanie”