#!/bin/bash # share fix # use this script to rebuild default configs for shares if the ._share becomes # broken for whatever reason. echo "Activating Share rebuilder" echo "Querying readynasd for list of volumes..." x=$(rn_nml -g volumes | grep "resource-id" | sed 's/^.*id="//;s/".*//;') number=$(echo "$x" | wc -w) echo "$number volume(s) found." for volume in $x do echo -n "Investigating volume /$volume..." for i in $(find /"$volume"/ -mindepth 1 -maxdepth 2 -type d | egrep -v "\/$volume\/home|\/$volume\/.apps|\/$volume\/.vault|\/$volume\/.purge|\/$volume\/._share|\/$volume\/.timemachine|\/$volume\/.TemporaryItems|.iscsi" | sed "s/\/$volume\///g;s/\/.*//g" | sort | uniq) do found=1 path="/$volume/._share/${i}" echo "Found /$volume/${i}... recreating configs...". mkdir -p "$path" echo "share" > "$path"/datasettype.conf echo "0,0" > "$path"/recycle.conf echo "#dashboard:available=0 \"/$volume/$i\" 127.0.0.1(ro,insecure,insecure_locks,no_subtree_check,crossmnt,anongid=99,anonuid=99,root_squash,async)" > "$path"/nfs.conf echo "" > "$path"/snapdir.conf echo "0 0 0 * * * 0" > "$path"/snapshot.conf cat > "$path"/afp.conf << EOF [$i] available = 1 path = /$volume/$i admin group = admin EOF cat > "$path"/custom_snapshot_management.conf << EOF enabled = no retention_rule = lifetime lifetime = 2592000 number = 30 nonempty_snapshots = yes prev_versions = no EOF cat > "$path"/custom_snapshot_schedule.conf << EOF ........................ ........................ ........................ ........................ ........................ ........................ ........................ EOF cat > "$path"/fs.conf << EOF compression = 0 bitrotprotection = 0 refquota = 0 EOF cat > "$path"/ftp.conf << EOF available 0 default_access disabled mask fmask dmask user_rw group_rw host_rw user_ro group_ro host_ro EOF cat > "$path"/samba.conf << EOF [$i] path = /$volume/$i comment = "$i folder" spotlight = 0 guest ok = 1 admin users = +admin writeable = 1 follow symlinks = 1 EOF echo -n "Fixing permissions on files..." cd "$path" chown root.root datasettype.conf recycle.conf snapdir.conf snapshot.conf chown admin.admin afp.conf fs.conf ftp.conf nfs.conf samba.conf custom_snapshot_management.conf custom_snapshot_schedule.conf echo " done!" echo " Done with /$volume/${i}." done echo " Done with /$volume" done if [[ $found ]] then echo "Restarting readynasd to finish changes..." systemctl restart readynasd fi