From a8530f4a10964aae1e7faf52ff5ff58d68b689e9 Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 16:08:02 -0700 Subject: [PATCH 1/7] Update iscsi_fix.sh to add multi-volume support --- iscsi_fix.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/iscsi_fix.sh b/iscsi_fix.sh index 5094b00..ba56831 100644 --- a/iscsi_fix.sh +++ b/iscsi_fix.sh @@ -1,6 +1,17 @@ #!/bin/bash +# iscsi share fix +# use this script to rebuild default configs for shares if the ._share becomes +# broken for whatever reason. ( -volume="data" -for i in `find /$volume -maxdepth 2 -type d -name ".iscsi" | sed "s/\/.iscsi//g;s/\/$volume\///g;"`; do mkdir -p /$volume/._share/${i} cd /$volume/._share/${i}; echo "comment " > iscsi.conf; echo "0 0 0 * 0 0 0" > snapshot.conf;done +x=$(rn_nml -g volumes | grep "resource-id" | sed 's/^.*id="//;s/".*//;') +for volume in "$x" +do + for i in `find /"$volume" -maxdepth 2 -type d -name ".iscsi" | sed "s/\/.iscsi//g;s/\/$volume\///g;"` + do + mkdir -p /"$volume"/._share/${i} cd /"$volume"/._share/${i} + echo "comment " > iscsi.conf + echo "0 0 0 * 0 0 0" > snapshot.conf + done +done ) \ No newline at end of file From fdc08739f154f07dc6e6eaaa1e4bec2c49c95f31 Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 16:43:34 -0700 Subject: [PATCH 2/7] Update for 6.8 --- iscsi_fix.sh | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/iscsi_fix.sh b/iscsi_fix.sh index ba56831..219237b 100644 --- a/iscsi_fix.sh +++ b/iscsi_fix.sh @@ -2,16 +2,45 @@ # iscsi share fix # use this script to rebuild default configs for shares if the ._share becomes # broken for whatever reason. - -( +echo "Activating iSCSI share rebuilder" +echo "Querying readynasd for list of volumes..." x=$(rn_nml -g volumes | grep "resource-id" | sed 's/^.*id="//;s/".*//;') -for volume in "$x" +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" -maxdepth 2 -type d -name ".iscsi" | sed "s/\/.iscsi//g;s/\/$volume\///g;"` do - mkdir -p /"$volume"/._share/${i} cd /"$volume"/._share/${i} - echo "comment " > iscsi.conf - echo "0 0 0 * 0 0 0" > snapshot.conf + path="/$volume/._share/${i}" + echo "Found /$volume/${i}... recreating configs...". + mkdir -p $path + cat > $path/iscsi.conf << EOF +comment +alert_threshold 80 +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/snapshot.conf << EOF +0 0 0 * 0 0 0 +EOF + echo " Done with /$volume/${i}." done + echo " Done with /$volume" done -) \ No newline at end of file + From f7a8e52123b455e6eddb8faeec22f45d0316af4b Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 16:50:24 -0700 Subject: [PATCH 3/7] Add additional checks --- iscsi_fix.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/iscsi_fix.sh b/iscsi_fix.sh index 219237b..a01d6e1 100644 --- a/iscsi_fix.sh +++ b/iscsi_fix.sh @@ -12,6 +12,7 @@ do echo -n "Investigating volume /$volume..." for i in `find /"$volume" -maxdepth 2 -type d -name ".iscsi" | sed "s/\/.iscsi//g;s/\/$volume\///g;"` do + found=1 path="/$volume/._share/${i}" echo "Found /$volume/${i}... recreating configs...". mkdir -p $path @@ -43,4 +44,8 @@ EOF done echo " Done with /$volume" done - +if [[ $found ]] +then + echo "Restarting readynasd to finish changes..." + systemctl restart readynasd +fi From af715bf3a127e5db535b5eb89aff8bd4563ef340 Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 16:55:34 -0700 Subject: [PATCH 4/7] Update share_fix.sh layout --- share_fix.sh | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/share_fix.sh b/share_fix.sh index fd5ca3d..f5c7ca9 100644 --- a/share_fix.sh +++ b/share_fix.sh @@ -1,21 +1,39 @@ #!/bin/bash -( -volume="data" -#volume=$(rn_nml -g volumes | grep resource-id | awk '{print $2}' | sed 's/resource-id="//;s/"$//') +# share fix +# use this script to rebuild default configs for shares if the ._share becomes +# broken for whatever reason. -for i in `find /$volume/ -mindepth 2 -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 mkdir -p /$volume/._share/${i}; cd /$volume/._share/${i}; echo "share" > datasettype.conf; echo "0,25000" > recycle.conf; echo "#dashboard:available=0 \"/$volume/$i\" 127.0.0.1(ro,insecure,insecure_locks,root_squash,anongid=99,anonuid=99,no_subtree_check,sync)" > nfs.conf; echo "" > snapdir.conf; echo "0 0 0 * * * 0" > snapshot.conf; cat > afp.conf << EOF +echo "Activating Share rebuilder" + +volume="data" +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 + for i in `find /$volume/ -mindepth 2 -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 + mkdir -p /$volume/._share/${i} + cd /$volume/._share/${i} + echo "share" > datasettype.conf + echo "0,25000" > recycle.conf + echo "#dashboard:available=0 \"/$volume/$i\" 127.0.0.1(ro,insecure,insecure_locks,root_squash,anongid=99,anonuid=99,no_subtree_check,sync)" > nfs.conf + echo "" > snapdir.conf + echo "0 0 0 * * * 0" > snapshot.conf + cat > afp.conf << EOF [$i] available = 1 path = /$volume/$i invalid users = "guest","nobody","@guest","@nogroup" admin group = admin EOF -cat > fs.conf << EOF + cat > fs.conf << EOF compression = 0 bitrotprotection = 0 refquota = 0 EOF -cat > ftp.conf << EOF + cat > ftp.conf << EOF available 0 default_access writeable mask @@ -28,7 +46,7 @@ user_ro group_ro host_ro EOF -cat > samba.conf << EOF + cat > samba.conf << EOF [$i] path = /$volume/$i comment = "$i folder" @@ -40,6 +58,6 @@ cat > samba.conf << EOF writeable = 1 follow symlinks = 1 EOF -chown root.root datasettype.conf recycle.conf snapdir.conf snapshot.conf; chown admin.admin afp.conf fs.conf ftp.conf nfs.conf samba.conf -done -) \ No newline at end of file + chown root.root datasettype.conf recycle.conf snapdir.conf snapshot.conf; chown admin.admin afp.conf fs.conf ftp.conf nfs.conf samba.conf + done +done \ No newline at end of file From a8d460733d8731acdfcd64805d2546074732c48a Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 17:05:36 -0700 Subject: [PATCH 5/7] Update share_fix.sh for OS 6.8 --- share_fix.sh | 55 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/share_fix.sh b/share_fix.sh index f5c7ca9..203febf 100644 --- a/share_fix.sh +++ b/share_fix.sh @@ -4,29 +4,46 @@ # broken for whatever reason. echo "Activating Share rebuilder" - -volume="data" 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 2 -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 - mkdir -p /$volume/._share/${i} - cd /$volume/._share/${i} + found=1 + path="/$volume/._share/${i}" + echo "Found /$volume/${i}... recreating configs...". + mkdir -p "$path" echo "share" > datasettype.conf - echo "0,25000" > recycle.conf - echo "#dashboard:available=0 \"/$volume/$i\" 127.0.0.1(ro,insecure,insecure_locks,root_squash,anongid=99,anonuid=99,no_subtree_check,sync)" > nfs.conf + echo "0,0" > 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)" > nfs.conf echo "" > snapdir.conf echo "0 0 0 * * * 0" > snapshot.conf cat > afp.conf << EOF [$i] available = 1 path = /$volume/$i - invalid users = "guest","nobody","@guest","@nogroup" 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 > fs.conf << EOF compression = 0 @@ -35,7 +52,7 @@ refquota = 0 EOF cat > ftp.conf << EOF available 0 -default_access writeable +default_access disabled mask fmask dmask @@ -50,14 +67,22 @@ EOF [$i] path = /$volume/$i comment = "$i folder" - force create mode = 0666 - create mask = 0666 - force directory mode = 1777 - directory mask = 1777 - admin users = "+admin","Administrator" + spotlight = 0 + guest ok = 1 + admin users = +admin writeable = 1 follow symlinks = 1 EOF - chown root.root datasettype.conf recycle.conf snapdir.conf snapshot.conf; chown admin.admin afp.conf fs.conf ftp.conf nfs.conf samba.conf + echo -n "Fixing permissions on files..." + 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 -done \ No newline at end of file + echo " Done with /$volume" +done +if [[ $found ]] +then + echo "Restarting readynasd to finish changes..." + systemctl restart readynasd +fi \ No newline at end of file From 53f08be2b155b59e382d863023c89bb1aec527e2 Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 17:22:32 -0700 Subject: [PATCH 6/7] Share fixes --- share_fix.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/share_fix.sh b/share_fix.sh index 203febf..78c2a27 100644 --- a/share_fix.sh +++ b/share_fix.sh @@ -11,7 +11,7 @@ echo "$number volume(s) found." for volume in $x do echo -n "Investigating volume /$volume..." - for i in `find /$volume/ -mindepth 2 -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` + 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}" @@ -45,12 +45,12 @@ EOF ........................ ........................ EOF - cat > fs.conf << EOF + cat > $path/fs.conf << EOF compression = 0 bitrotprotection = 0 refquota = 0 EOF - cat > ftp.conf << EOF + cat > $path/ftp.conf << EOF available 0 default_access disabled mask @@ -63,7 +63,7 @@ user_ro group_ro host_ro EOF - cat > samba.conf << EOF + cat > $path/samba.conf << EOF [$i] path = /$volume/$i comment = "$i folder" @@ -74,6 +74,7 @@ EOF 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!" @@ -85,4 +86,4 @@ if [[ $found ]] then echo "Restarting readynasd to finish changes..." systemctl restart readynasd -fi \ No newline at end of file +fi From 9dddb7d93844cd2c4ed939aaa3afc6e92112c049 Mon Sep 17 00:00:00 2001 From: Cody Cook Date: Tue, 22 Aug 2017 17:26:47 -0700 Subject: [PATCH 7/7] Share fixes --- share_fix.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/share_fix.sh b/share_fix.sh index 78c2a27..ecc159d 100644 --- a/share_fix.sh +++ b/share_fix.sh @@ -17,12 +17,12 @@ do path="/$volume/._share/${i}" echo "Found /$volume/${i}... recreating configs...". mkdir -p "$path" - echo "share" > datasettype.conf - echo "0,0" > 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)" > nfs.conf - echo "" > snapdir.conf - echo "0 0 0 * * * 0" > snapshot.conf - cat > afp.conf << EOF + 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