mirror of
https://github.com/kneutron/ansitest.git
synced 2025-01-16 04:42:55 +08:00
59 lines
1.1 KiB
Bash
59 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# for suse, may also work on rhel-derived
|
|
# Fix missing zfs shares in samba config
|
|
# 2023.Nov kneutron
|
|
|
|
conf=/etc/samba/smb.conf
|
|
cp -v $conf /etc/samba/smb.conf.bak-$(date +%Y%m%d)'@'$(date +%H%M)
|
|
|
|
template="
|
|
# boojumfix
|
|
[SHARENAME]
|
|
path = REPLACEME
|
|
writable = yes
|
|
guest ok = yes
|
|
guest only = no
|
|
create mode = 0777
|
|
directory mode = 0777
|
|
|
|
"
|
|
|
|
tmpfile=/tmp/fixsmb.tmp.txt
|
|
>$tmpfile
|
|
|
|
mods=0
|
|
for zd in $(zfs get sharesmb |awk '$3=="on" {print $1}'); do
|
|
[ "$zd" = "" ] && break;
|
|
|
|
mtpt=$(df |grep "$zd" |awk '{print $6}')
|
|
echo "$zd = $mtpt"
|
|
|
|
#set -x
|
|
# only if not already in smb.conf
|
|
if [ $(grep -c $mtpt $conf) -lt 1 ]; then
|
|
echo "$template" >$tmpfile
|
|
|
|
dasher=$(echo $zd |tr '/' '-')
|
|
|
|
sed -i 's|SHARENAME|'$dasher'|g' $tmpfile
|
|
sed -i 's|REPLACEME|'$mtpt'|' $tmpfile
|
|
cat $tmpfile >> $conf
|
|
|
|
let mods=$mods+1
|
|
fi
|
|
done
|
|
|
|
cat $conf
|
|
ls -l $conf
|
|
echo "Modified $mods shares"
|
|
|
|
if [ $mods -gt 0 ]; then
|
|
msg="$(date) - $0 - Restarting samba service"
|
|
logger $msg
|
|
echo "$msg"
|
|
systemctl restart smb
|
|
fi
|
|
|
|
zfs-show-my-shares.sh
|