@ -29,7 +29,7 @@
# /var/packages/StorageManager/target/ui/storage_panel.js
scriptver = "v3.6.113 "
scriptver = "v3.6.114 "
script = Synology_HDD_db
repo = "007revad/Synology_HDD_db"
scriptname = syno_hdd_db
@ -257,6 +257,11 @@ if [[ $dsm -gt "6" ]]; then
version = " _v $dsm "
fi
# Get DSM major and minor version
major = $( /usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION majorversion)
minor = $( /usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION minorversion)
dsmversion = " $major $minor "
# Get Synology model
model = $( cat /proc/sys/kernel/syno_hw_version)
modelname = " $model "
@ -301,7 +306,25 @@ fi
# Get StorageManager version
storagemgrver = $( /usr/syno/bin/synopkg version StorageManager)
# Show StorageManager version
if [ [ $storagemgrver ] ] ; then echo -e " StorageManager $storagemgrver \n " ; fi
if [ [ $storagemgrver ] ] ; then echo -e " StorageManager $storagemgrver " ; fi
# Get SynoOnlinePack version
if [ [ $dsmversion -gt "72" ] ] ; then
# Is DSM 7.3 or later
if [ [ -f /var/packages/SynoOnlinePack_v3/INFO ] ] ; then
SOPinfo = "/var/packages/SynoOnlinePack_v3/INFO"
v2 = "_v3"
elif [ [ -f /var/packages/SynoOnlinePack_v2/INFO ] ] ; then
SOPinfo = "/var/packages/SynoOnlinePack_v2/INFO"
v2 = "_v2"
else
SOPinfo = "/var/packages/SynoOnlinePack/INFO"
fi
SOPpkgver = " $( /usr/syno/bin/synogetkeyvalue $SOPinfo version) "
echo -e " SynoOnlinePack $v2 version $SOPpkgver \n "
else
echo ""
fi
# Show host drive db version
if [ [ -f " /var/lib/disk-compatibility/ ${ model } _host_v7.version " ] ] ; then
@ -410,7 +433,9 @@ get_script_vol() {
get_script_vol # sets $vol_name to /dev/whatever
if grep -qE " ^ ${ vol_name #/dev/ } .+ nvme " /proc/mdstat
then
ding
echo -e " \n ${ Yellow } WARNING ${ Off } Don't store this script on an NVMe volume! "
exit 3
fi
@ -502,6 +527,15 @@ if ! printf "%s\n%s\n" "$tag" "$scriptver" |
syslog_set warn " $script failed to copy $tag to script location "
fi
# Copy new script companion sh file to script location
if ! cp -p " /tmp/ $script - $shorttag /syno_hdd_shutdown.sh " " ${ scriptpath } /syno_hdd_shutdown.sh " ;
then
copyerr = 1
echo -e " ${ Error } ERROR ${ Off } Failed to copy " \
" $script - $shorttag sh file(s) to:\n $scriptpath /syno_hdd_shutdown.sh "
syslog_set warn " $script failed to copy syno_hdd_shutdown.sh to script location "
fi
# Copy new syno_hdd_vendor_ids.txt file
vidstxt = "syno_hdd_vendor_ids.txt"
if [ [ $scriptpath = ~ /volume* ] ] ; then
@ -2278,60 +2312,109 @@ if ls /dev | grep -q "nv[cm]"; then
fi
# Edit synoinfo.conf to prevent drive db updates
dtu = drive_db_test_url
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo ${ dtu } ) "
disabled = ""
if [ [ $nodbupdate = = "yes" ] ] ; then
if [ [ ! $url ] ] ; then
# Add drive_db_test_url="127.0.0.1"
#echo 'drive_db_test_url="127.0.0.1"' >> "$synoinfo"
/usr/syno/bin/synosetkeyvalue " $synoinfo " " $dtu " "127.0.0.1"
# Junior boot
#[ -d /tmpRoot ] && /tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf "$dtu" "127.0.0.1"
if [ -f /tmpRoot/usr/syno/bin/synosetkeyvalue ] && [ -f /tmpRoot/etc.defaults/synoinfo.conf ] ; then
/tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf " $dtu " "127.0.0.1"
fi
disabled = "yes"
elif [ [ $url != "127.0.0.1" ] ] ; then
# Edit drive_db_test_url=
/usr/syno/bin/synosetkeyvalue " $synoinfo " " $dtu " "127.0.0.1"
# Junior boot
#[ -d /tmpRoot ] && /tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf "$dtu" "127.0.0.1"
if [ -f /tmpRoot/usr/syno/bin/synosetkeyvalue ] && [ -f /tmpRoot/etc.defaults/synoinfo.conf ] ; then
/tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf " $dtu " "127.0.0.1"
# Prevent drive db updates
if [ [ $dsmversion -lt "73" ] ] ; then
# Edit synoinfo.conf to prevent drive db updates
dtu = drive_db_test_url
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo ${ dtu } ) "
disabled = ""
if [ [ $nodbupdate = = "yes" ] ] ; then
if [ [ ! $url ] ] ; then
# Add drive_db_test_url="127.0.0.1"
#echo 'drive_db_test_url="127.0.0.1"' >> "$synoinfo"
/usr/syno/bin/synosetkeyvalue " $synoinfo " " $dtu " "127.0.0.1"
# Junior boot
#[ -d /tmpRoot ] && /tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf "$dtu" "127.0.0.1"
if [ -f /tmpRoot/usr/syno/bin/synosetkeyvalue ] && [ -f /tmpRoot/etc.defaults/synoinfo.conf ] ; then
/tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf " $dtu " "127.0.0.1"
fi
disabled = "yes"
elif [ [ $url != "127.0.0.1" ] ] ; then
# Edit drive_db_test_url=
/usr/syno/bin/synosetkeyvalue " $synoinfo " " $dtu " "127.0.0.1"
# Junior boot
#[ -d /tmpRoot ] && /tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf "$dtu" "127.0.0.1"
if [ -f /tmpRoot/usr/syno/bin/synosetkeyvalue ] && [ -f /tmpRoot/etc.defaults/synoinfo.conf ] ; then
/tmpRoot/usr/syno/bin/synosetkeyvalue /tmpRoot/etc.defaults/synoinfo.conf " $dtu " "127.0.0.1"
fi
disabled = "yes"
fi
disabled = "yes"
fi
# Check if we disabled drive db auto updates
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo drive_db_test_url) "
if [ [ $disabled = = "yes" ] ] ; then
if [ [ $url = = "127.0.0.1" ] ] ; then
echo -e "\nDisabled drive db auto updates."
# Check if we disabled drive db auto updates
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo drive_db_test_url) "
if [ [ $disabled = = "yes" ] ] ; then
if [ [ $url = = "127.0.0.1" ] ] ; then
echo -e "\nDisabled drive db auto updates."
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to disable drive db auto updates! "
fi
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to disable drive db auto updates! "
echo -e "\nDrive db auto updates already disabled. "
fi
else
echo -e "\nDrive db auto updates already disabled."
# Re-enable drive db updates
#if [[ $url == "127.0.0.1" ]]; then
if [ [ $url ] ] ; then
# Delete "drive_db_test_url=127.0.0.1" line (inc. line break)
sed -i "/drive_db_test_url=*/d" " $synoinfo "
sed -i "/drive_db_test_url=*/d" /etc/synoinfo.conf
# Check if we re-enabled drive db auto updates
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo drive_db_test_url) "
if [ [ $url != "127.0.0.1" ] ] ; then
echo -e "\nRe-enabled drive db auto updates."
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to enable drive db auto updates! "
fi
else
echo -e "\nDrive db auto updates already enabled."
fi
fi
else
# Re-enable drive db updates
#if [[ $url == "127.0.0.1" ]]; then
if [ [ $url ] ] ; then
# Delete "drive_db_test_url=127.0.0.1" line (inc. line break)
sed -i "/drive_db_test_url=*/d" " $synoinfo "
sed -i "/drive_db_test_url=*/d" /etc/synoinfo.conf
# Is DSM 7.3 or later
if [ [ -f /var/packages/SynoOnlinePack_v3/INFO ] ] ; then
SOPinfo = "/var/packages/SynoOnlinePack_v3/INFO"
elif [ [ -f /var/packages/SynoOnlinePack_v2/INFO ] ] ; then
SOPinfo = "/var/packages/SynoOnlinePack_v2/INFO"
else
SOPinfo = "/var/packages/SynoOnlinePack/INFO"
fi
SOPpkgver = " $( /usr/syno/bin/synogetkeyvalue $SOPinfo version) "
# Check if we re-enabled drive db auto updates
url = " $( /usr/syno/bin/synogetkeyvalue $synoinfo drive_db_test_url) "
if [ [ $url != "127.0.0.1" ] ] ; then
echo -e "\nRe-enabled drive db auto updates."
if [ [ $nodbupdate = = "yes" ] ] ; then
if [ [ ${ SOPpkgver : 0 : 4 } != "9999" ] ] ; then
# Prepend version with 9999
/usr/syno/bin/synosetkeyvalue " $SOPinfo " version " 9999 $SOPpkgver "
disabled = "yes"
fi
# Check if we disabled drive db auto updates
SOPpkgver2 = " $( /usr/syno/bin/synogetkeyvalue $SOPinfo version) "
if [ [ $disabled = = "yes" ] ] ; then
if [ [ $SOPpkgver2 -gt " $SOPpkgver " ] ] ; then
echo -e "\nDisabled drive db auto updates."
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to disable drive db auto updates! "
fi
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to enable drive db auto updates! "
echo -e "\nDrive db auto updates already disabled. "
fi
else
echo -e "\nDrive db auto updates already enabled."
# Re-enable drive db updates
if [ [ ${ SOPpkgver : 0 : 4 } = = "9999" ] ] ; then
# Remove 9999 from version
/usr/syno/bin/synosetkeyvalue " $SOPinfo " version " ${ SOPpkgver : 4 } "
# Check if we re-enabled drive db auto updates
SOPpkgver2 = " $( /usr/syno/bin/synogetkeyvalue $SOPinfo version) "
if [ [ ${ SOPpkgver2 : 0 : 4 } != "9999" ] ] ; then
echo -e "\nRe-enabled drive db auto updates."
else
echo -e " \n ${ Error } ERROR ${ Off } Failed to enable drive db auto updates! "
fi
else
echo -e "\nDrive db auto updates already enabled."
fi
fi
fi