Nowe posty

xx Przy uploadzie przerywane są wszystkie połączenia (1)
Dzisiaj o 09:38:09
xx Apache2 i twarde https (3)
2020-05-25, 15:53:43
xx Czy istnieje emulator terminala który zapamieta komendy na jakiejś liście? (9)
2020-05-23, 17:04:57
xx RTLinux wybór dystrybucji (0)
2020-05-23, 15:42:54
xx Problem z instalacją Ubuntu na bootowalnym pendrajwie (9)
2020-05-22, 15:08:12
xx Ubuntudde 20.04 LTS nie działa Lightdm (8)
2020-05-22, 09:16:42
xx [Gra za darmo] GTA5 (1)
2020-05-20, 21:49:26
xx Marketing (1)
2020-05-13, 08:00:41
xx Polecenia Debian (1)
2020-05-10, 19:58:54
xx Uruchamianie pliku z każdego katlogu (2)
2020-05-10, 19:23:33

Autor Wątek: Generator configu Samby - pobieranie kolejnych linii z innego pliku  (Przeczytany 1686 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 22
    • Zobacz profil
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:

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:

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.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2597
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Generator configu Samby - pobieranie kolejnych linii z innego pliku
« Odpowiedź #1 dnia: 2017-03-01, 11:14:24 »
Możesz to zrobić w bash-u (read w pętli while, doklejanie IPków do zmiennej i na koniec dump zmiennej do pliku.

#!/bin/bash

LISTA=""

while read IP
do
        LISTA="${LISTA},${IP}"
done <maszyny_user1.txt

# Wycięcie pierwszego przecinka
LISTA=`echo "$LISTA" | cut -c2-`

cat >smb.conf <<EOF
hosts allow = ${LISTA}
EOF
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 22
    • Zobacz profil
Odp: Generator configu Samby - pobieranie kolejnych linii z innego pliku
« Odpowiedź #2 dnia: 2017-03-01, 18:03:47 »
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:

#!/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:

 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:

 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 

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2597
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Generator configu Samby - pobieranie kolejnych linii z innego pliku
« Odpowiedź #3 dnia: 2017-03-01, 23:05:37 »
echo -n nie dodaje \n na końcu argumentów.
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy