Posiadam kilka wirtualnych systemów a także duży dysk USB na którym trzymam obrazy systemów, kopie bezpieczeństwa dokumentów itp. Ze względu na fakt iż często przeinstalowywuje moje bazowe systemy (razem z rozwojem moich pomysłów na ten włany lab) postanowiłem napisać klika skryptów, które pozwalają szybko przenosić konfigurację na nowe systemy. Jedną z usług, z których korzystam jest Samba. Ta notatka jest poświęcona właśnie jej…
Samba posiada dyrektywę include, która pozwala dołącząć pliki konfiguracyjne. Niestety jest mały problem. Nie można używać znaku globalnego * więc każdy plik należy podać z nazwy.
A wracając do mojego skryptu, wygląda on tak:
echo -n "Checking if ISO share exist "
if [ ! -f /etc/samba/smb.d/smb.iso.conf ]; then
echo " [ Failed! ] "
echo " * Creating the ISO share "
echo "#file generated by script $0 " > /etc/samba/smb.d/smb.iso.conf
echo "
[ISO]
path = /EXPORT/ISO
guest ok = yes
read only = no
browsable = yes
comment = ISO images
" >> /etc/samba/smb.d/smb.iso.conf
else
echo " [ OK ]"
fi
# checking if files from /etc/samba/smb.d are included into main /etc/samba/smb.conf
echo -n "Checking if ISO share is included in smb.conf"
CHECK=$(grep -E -v "^\s*$|^\s*#|^\s*;" /etc/samba/smb.conf | grep -E "^\s*include\s*=\s*/etc/samba/smb.d/smb.iso.conf" | wc -l)
if [ $CHECK -ne 1 ]; then
echo -e "\n\ninclude = /etc/samba/smb.d/smb.iso.conf" >> /etc/samba/smb.conf
echo " [ Failed! ]"
else
echo " [ OK ]"
fi