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