Browse Source

Update syno_hdd_db.sh

- Added support for M.2 drives on a PCI card, M2Dxx and E10G18-T1 etc.
- Improved flags/options checking and added usage help.
- Can now download the latest script version for you (if you have user home service enabled in DSM).
- Now adds 'support_m2_pool="yes"' line for models that don't have support_m2_pool in synoinfo.conf to (hopefully) prevent losing your SSH created M2 volume when running this script on models that DSM 7.2 Beta does not list as supported for creating M2 volumes.
- Changed Synology model detection to be more reliable (for models that came in different variations).
- Changed checking drive_db_test_url setting to be more durable.
develop
007revad 3 years ago
committed by GitHub
parent
commit
b08c66be3b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 482
      syno_hdd_db.sh

482
syno_hdd_db.sh

@ -23,16 +23,31 @@
#--------------------------------------------------------------------------------------------------
# TODO
# Bypass M.2 volume lock for unsupported M.2 drives.
#
# Detect if expansion unit(s) connected and get model(s) and edit expansion unit db files.
# Or add support for specifying user's expansion unit model(s) as arguments.
# Or maybe use the shotgun approach and update all expansion unit db files.
#
# Add support for M.2 SATA and NVMe drives on a M2D17 PCI card.
#
# Maybe also edit the other disk compatibility DB in synoboot, used during boot time.
# Maybe also edit the other disk compatibility db in synoboot, used during boot time.
# It's also parsed and checked and probably in some cases it could be more critical to patch that one instead.
# DONE
# Added support for M.2 drives on a PCI card, M2Dxx and E10G18-T1 etc.
#
# Improved flags/options checking and added usage help.
#
# Can now download the latest script version for you (if you have user home service enabled in DSM).
#
# Now adds 'support_m2_pool="yes"' line for models that don't have support_m2_pool in synoinfo.conf
#
# Changed Synology model detection to be more reliable (for models that came in different variations).
#
# Changed checking drive_db_test_url setting to be more durable.
#
#
# Added check that M.2 volume support is enabled (on supported models).
#
# Added support for M.2 SATA drives.
#
# Can now skip processing M.2 drives by running script with the -m2 flag.
@ -61,52 +76,88 @@
# Optionally disable "support_disk_compatibility".
scriptver="1.1.11"
# Check latest release with GitHub API
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" |
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
scriptver="v1.1.15"
script=Synology_HDD_db
repo="007revad/Synology_HDD_db"
tag=$(get_latest_release "007revad/Synology_HDD_db")
if ! printf "%s\n%s\n" "$tag" "$scriptver" |
sort --check --version-sort &> /dev/null ; then
echo "There is a newer version of this script available."
echo -e "Current version: ${scriptver}\nLatest version: ${tag:1}"
echo "https://github.com/007revad/Synology_HDD_db/releases/latest"
echo ""
sleep 10
fi
# Shell Colors
#Black='\e[0;30m'
Red='\e[0;31m'
#Green='\e[0;32m'
Yellow='\e[0;33m'
#Blue='\e[0;34m'
#Purple='\e[0;35m'
Cyan='\e[0;36m'
#White='\e[0;37m'
Error='\e[41m'
Off='\e[0m'
usage(){
echo -e "\nUsage: $(basename $0) [options]\n"
echo "Options:"
echo " -s, --showedits Show the edits made to host db file(s)"
echo " -n, --noupdate Prevent DSM updating the compatible drive databases"
echo " -m, --m2 Don't process M.2 drives"
echo " -f, --force Force DSM to not check drive compatibility"
echo " -r, --ram Disable memory compatibility checking"
echo -e " -h, --help Show this help message\n"
exit
}
# Check for flags with getopts
OPTERR=0
while getopts "sfnm" option; do
# Need to ensure any other long flags do not contain s, n, or f
if [[ ! ${#option} -gt "1" ]]; then
case ${option,,,} in
s)
# Check for flags with getopt
options="$(getopt -o abcdefghijklmnopqrstuvwxyz0123456789 -a \
-l showedits,noupdate,m2,force,ram,help -- "$@")"
if [[ $? -eq "0" ]]; then
eval set -- "$options"
while true; do
case "${1,,}" in
-s|--showedits) # Show edits done to host db file
showedits=yes
;;
n)
nodbupdate=yes # For future use
-n|--nodbupdate) # Disable disk compatibility db updates
nodbupdate=yes
;;
-m|--m2) # Don't add M.2 drives to db files
m2=no
;;
-f|--force) # Disable "support_disk_compatibility"
force=yes
;;
m)
m2=no # Don't add M.2 drives to db files
-r|--ram) # Include memory compatibility
ram=yes
;;
f)
force=yes # Disable "support_disk_compatibility"
-h|--help) # Show usage options
usage
;;
*)
--)
shift
break
;;
*) # Show usage options
echo "Invalid option '$1'"
usage "$1"
;;
esac
fi
shift
done
fi
# Check script is running as root
if [[ $( whoami ) != "root" ]]; then
echo -e "${Error}ERROR${Off} This script must be run as root or sudo!"
exit 1
fi
# Get DSM major version
dsm=$(get_key_value /etc.defaults/VERSION majorversion)
if [[ $dsm -gt "6" ]]; then
version="_v$dsm"
fi
# Get Synology model
model=$(cat /proc/sys/kernel/syno_hw_version)
model=${model,,} # convert to lower case
@ -115,74 +166,133 @@ if [[ $model =~ '-j'$ ]]; then
model=${model%??} # remove last two chars
fi
# Get DSM major version
dsm=$(get_key_value /etc.defaults/VERSION majorversion)
if [[ $dsm -gt "6" ]]; then
version="_v$dsm"
#------------------------------------------------------------------------------
# Check latest release with GitHub API
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" |
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
tag=$(get_latest_release "007revad/Synology_HDD_db")
shorttag="${tag:1}"
if [[ $HOME =~ /var/services/* ]]; then
shorthome=${HOME:14}
else
shorthome="$HOME"
fi
# Check script is running as root
if [[ $( whoami ) != "root" ]]; then
echo -e "\e[41mERROR\e[0m This script must be run as root or sudo!"
exit 1
if ! printf "%s\n%s\n" "$tag" "$scriptver" |
sort --check --version-sort &> /dev/null ; then
echo -e "${Cyan}There is a newer version of this script available.${Off}"
echo -e "Current version: ${scriptver}\nLatest version: $tag"
if [[ ! -d $HOME ]]; then
# Can't download to home
echo "https://github.com/$repo/releases/latest"
sleep 10
elif [[ -f $HOME/$script-$shorttag.tar.gz ]]; then
# Latest version tar.gz in home but they're using older version
echo "https://github.com/$repo/releases/latest"
sleep 10
else
echo -e "${Cyan}Do you want to download $tag now?${Off} {y/n]"
read -r -t 30 reply
if [[ ${reply,,} == "y" ]]; then
if ! curl -LJO "https://github.com/$repo/archive/refs/tags/$tag.tar.gz"; then
echo -e "${Error}ERROR ${Off} Failed to download $script-$shorttag.tar.gz!"
else
if [[ -f $HOME/$script-$shorttag.tar.gz ]]; then
if ! tar -xf "$HOME/$script-$shorttag.tar.gz"; then
echo -e "${Error}ERROR ${Off} Failed to extract $script-$shorttag.tar.gz!"
else
if ! rm "$HOME/$script-$shorttag.tar.gz"; then
echo -e "${Error}ERROR ${Off} Failed to delete downloaded $script-$shorttag.tar.gz!"
else
echo -e "\n$tag and changes.txt are in ${Cyan}$shorthome/$script-$shorttag${Off}"
echo -e "${Cyan}Do you want to stop this script so you can run the new one?${Off} {y/n]"
read -r -t 30 reply
if [[ ${reply,,} == "y" ]]; then exit; fi
fi
fi
else
echo -e "${Error}ERROR ${Off} $shorthome/$script-$shorttag.tar.gz not found!"
#ls $HOME/ | grep "$script" # debug
fi
fi
fi
fi
fi
#------------------------------------------------------------------------------
# Get list of installed SATA, SAS and M.2 NVMe/SATA drives
#for d in $(ls /sys/block); do
for d in /sys/block/*; do
# if [ ! -e /dev/"$d" ]; then
# echo "Found /dev/$d" # debug
# continue;
# fi
#echo $d # debug
case "$(basename -- "${d}")" in
sd*|hd*)
if [[ $d =~ [hs]d[a-z]$ ]]; then
hdmodel=$(cat "$d/device/model")
getdriveinfo() {
# Get drive model and firmware version
hdmodel=$(cat "$1/device/model")
hdmodel=$(printf "%s" "$hdmodel" | xargs) # trim leading and trailing white space
#echo "Model: '$hdmodel'" # debug
fwrev=$(cat "$d/device/rev")
fwrev=$(cat "$1/device/rev")
fwrev=$(printf "%s" "$fwrev" | xargs) # trim leading and trailing white space
#echo "Firmware: '$fwrev'" # debug
if [[ $hdmodel ]] && [[ $fwrev ]]; then
hdlist+=("${hdmodel},${fwrev}")
fi
}
getm2info() {
nvmemodel=$(cat "$1/device/model")
nvmemodel=$(printf "%s" "$nvmemodel" | xargs) # trim leading and trailing white space
if [[ $2 == "nvme" ]]; then
nvmefw=$(cat "$1/device/firmware_rev")
elif [[ $2 == "nvc" ]]; then
nvmefw=$(cat "$1/device/rev")
fi
;;
sata*|sas*)
if [[ $d =~ (sas|sata)[0-9][0-9]?[0-9]?$ ]]; then
hdmodel=$(cat "$d/device/model")
hdmodel=$(printf "%s" "$hdmodel" | xargs) # trim leading and trailing white space
#echo "Model: '$hdmodel'" # debug
nvmefw=$(printf "%s" "$nvmefw" | xargs) # trim leading and trailing white space
fwrev=$(cat "$d/device/rev")
fwrev=$(printf "%s" "$fwrev" | xargs) # trim leading and trailing white space
#echo "Firmware: '$fwrev'" # debug
if [[ $nvmemodel ]] && [[ $nvmefw ]]; then
nvmelist+=("${nvmemodel},${nvmefw}")
fi
}
if [[ $hdmodel ]] && [[ $fwrev ]]; then
hdlist+=("${hdmodel},${fwrev}")
getcardmodel() {
# Get M.2 card model
cardmodel=$(synodisk --m2-card-model-get "$1")
if [[ $cardmodel =~ M2D[0-9][0-9] ]]; then
# M2 adaptor card
m2carddblist+=("${model}_${cardmodel,,}${version}.db") # M.2 card's db file
m2cardlist+=("$cardmodel") # M.2 card
elif [[ $cardmodel =~ E[0-9][0-9]+M.+ ]]; then
# Ethernet + M2 adaptor card
m2carddblist+=("${model}_${cardmodel,,}${version}.db") # M.2 card's db file
m2cardlist+=("$cardmodel") # M.2 card
fi
}
for d in /sys/block/*; do
case "$(basename -- "${d}")" in
sd*|hd*)
if [[ $d =~ [hs]d[a-z][a-z]?$ ]]; then
# Get drive model and firmware version
getdriveinfo "$d"
fi
;;
sata*|sas*)
if [[ $d =~ (sas|sata)[0-9][0-9]?[0-9]?$ ]]; then
# Get drive model and firmware version
getdriveinfo "$d"
fi
;;
nvme*)
if [[ $d =~ nvme[0-9][0-9]?n[0-9][0-9]?$ ]]; then
if [[ $m2 != "no" ]]; then
nvmemodel=$(cat "$d/device/model")
nvmemodel=$(printf "%s" "$nvmemodel" | xargs) # trim leading and trailing white space
#echo "NVMe Model: '$nvmemodel'" # debug
nvmefw=$(cat "$d/device/firmware_rev")
nvmefw=$(printf "%s" "$nvmefw" | xargs) # trim leading and trailing white space
#echo "NVMe Firmware: '$nvmefw'" # debug
if [[ $nvmemodel ]] && [[ $nvmefw ]]; then
nvmelist+=("${nvmemodel},${nvmefw}")
fi
getm2info "$d" "nvme"
# Get M.2 card model if in M.2 card
getcardmodel "/dev/$d"
fi
fi
;;
@ -190,18 +300,9 @@ for d in /sys/block/*; do
#if [[ $d =~ nvc[0-9][0-9]?p[0-9][0-9]?$ ]]; then
if [[ $d =~ nvc[0-9][0-9]?$ ]]; then
if [[ $m2 != "no" ]]; then
nvmemodel=$(cat "$d/device/model")
nvmemodel=$(printf "%s" "$nvmemodel" | xargs) # trim leading and trailing white space
#echo "M.2 SATA Model: '$nvmemodel'" # debug
#nvmefw=$(cat "$d/device/firmware_rev")
nvmefw=$(cat "$d/device/rev")
nvmefw=$(printf "%s" "$nvmefw" | xargs) # trim leading and trailing white space
#echo "M.2 SATA Firmware: '$nvmefw'" # debug
if [[ $nvmemodel ]] && [[ $nvmefw ]]; then
nvmelist+=("${nvmemodel},${nvmefw}")
fi
getm2info "$d" "nvc"
# Get M.2 card model if in M.2 card
getcardmodel "/dev/$d"
fi
fi
;;
@ -209,16 +310,25 @@ for d in /sys/block/*; do
done
# Sort hdlist array into new hdds array to remove duplicates
if [[ ${#hdlist[@]} -gt "0" ]]; then
sortarray(){
# Sort $1 array into new $2 array to remove duplicates
local -n inarray=$1
outarray=()
if [[ ${#inarray[@]} -gt "0" ]]; then
while IFS= read -r -d '' x; do
hdds+=("$x")
done < <(printf "%s\0" "${hdlist[@]}" | sort -uz)
outarray+=("$x")
done < <(printf "%s\0" "${inarray[@]}" | sort -uz)
fi
}
# Sort hdlist array into new hdds array to remove duplicates
sortarray "hdlist"
hdds=${outarray[*]}
# Check hdds array isn't empty
if [[ ${#hdds[@]} -eq "0" ]]; then
echo -e "\e[41mERROR\e[0m No drives found!" && exit 2
echo -e "${Error}ERROR${Off} No drives found!" && exit 2
else
echo "HDD/SSD models found: ${#hdds[@]}"
num="0"
@ -231,11 +341,8 @@ fi
# Sort nvmelist array into new nvmes array to remove duplicates
if [[ ${#nvmelist[@]} -gt "0" ]]; then
while IFS= read -r -d '' x; do
nvmes+=("$x")
done < <(printf "%s\0" "${nvmelist[@]}" | sort -uz)
fi
sortarray "nvmelist"
nvmes=${outarray[*]}
# Check nvmes array isn't empty
if [[ ${#nvmes[@]} -eq "0" ]]; then
@ -253,14 +360,40 @@ else
fi
# M.2 card db files
# Sort m2carddblist array into new m2carddbs array to remove duplicates
sortarray "m2carddblist"
m2carddbs=${outarray[*]}
# M.2 cards
# Sort m2cardlist array into new m2cards array to remove duplicates
sortarray "m2cardlist"
m2cards=${outarray[*]}
# Check m2cards array isn't empty
if [[ ${#m2cards[@]} -gt "0" ]]; then
echo "M.2 card models found: ${#m2cards[@]}"
num="0"
while [[ $num -lt "${#m2cards[@]}" ]]; do
echo "${m2cards[num]}"
num=$((num +1))
done
echo
fi
#------------------------------------------------------------------------------
# Check database and add our drives if needed
# Check databases and add our drives if needed
db1="/var/lib/disk-compatibility/${model}_host${version}.db"
db2="/var/lib/disk-compatibility/${model}_host${version}.db.new"
dbpath="/var/lib/disk-compatibility/"
if [[ ! -f "$db1" ]]; then echo -e "\e[41mERROR\e[0m $db1 not found!" && exit 3; fi
#if [[ ! -f "$db2" ]]; then echo -e "\e[41mERROR\e[0m $db2 not found!" && exit 4; fi
synoinfo="/etc.defaults/synoinfo.conf"
if [[ ! -f "$db1" ]]; then echo -e "${Error}ERROR 3${Off} $db1 not found!" && exit 3; fi
#if [[ ! -f "$db2" ]]; then echo -e "${Error}ERROR 4${Off} $db2 not found!" && exit 4; fi
# new installs don't have a .db.new file
@ -272,30 +405,36 @@ elif grep -F '{"success":1,"list":[' "$db1" >/dev/null; then
# DSM 6 drive db files start with {"success":1,"list":[
dbtype=6
else
echo -e "\e[41mERROR\e[0m Unknown database type $(basename -- "${db1}")!"
echo -e "${Error}ERROR${Off} Unknown database type $(basename -- "${db1}")!"
exit 7
fi
#echo "dbtype: $dbtype" # debug
backupdb() {
# Backup database file if needed
if [[ ! -f "$db1.bak" ]]; then
if cp "$db1" "$db1.bak"; then
echo -e "Backed up database to $(basename -- "${db1}").bak\n"
if [[ ! -f "$1.bak" ]]; then
if cp "$1" "$1.bak"; then
echo -e "\nBacked up $(basename -- "${1}") database.\n"
else
echo -e "\e[41mERROR\e[0m Failed to backup $(basename -- "${db1}")!"
exit 5
echo -e "${Error}ERROR 5${Off} Failed to backup $(basename -- "${1}")!"
return 1
fi
fi
}
# Shell Colors
Yellow='\e[0;33m'
Cyan='\e[0;36m'
Red='\e[0;31m'
Off=$'\e[0m'
# Backup host database file if needed
backupdb "$db1" || exit 5
# Backup synoinfo.conf if needed
backupdb "$synoinfo" || exit 9
function updatedb() {
#------------------------------------------------------------------------------
# Edit db files
updatedb() {
hdmodel=$(printf "%s" "$1" | cut -d"," -f 1)
fwrev=$(printf "%s" "$1" | cut -d"," -f 2)
@ -320,13 +459,16 @@ function updatedb() {
#if sed -i "s/}}}/}},\"$hdmodel\":{$fwstrng$default/" "$2"; then # Don't need to add firmware version?
if sed -i "s/}}}/}},\"$hdmodel\":{$default/" "$2"; then
echo -e "Added ${Yellow}$hdmodel${Off} to ${Cyan}$(basename -- "$2")${Off}"
# Count drives added to host db files
if [[ $2 == "$db1" ]]; then
db1Edits=$((db1Edits +1))
elif [[ $2 == "$db2" ]]; then
db2Edits=$((db2Edits +1))
fi
else
echo -e "\n\e[41mERROR\e[0m Failed to update v7 $(basename -- "$2")${Off}"
echo -e "\n${Error}ERROR 6${Off} Failed to update v7 $(basename -- "$2")${Off}"
exit 6
fi
else
@ -346,13 +488,16 @@ function updatedb() {
# {"success":1,"list":[{"model":"WD60EFRX-68MYMN1","firmware":"82.00A82","rec_intvl":[1]},
if sed -ir "s/$startstring/$startstring$string/" "$2"; then
echo -e "Added ${Yellow}$hdmodel${Off} to ${Cyan}$(basename -- "$2")${Off}"
# Count drives added to host db files
if [[ $2 == "$db1" ]]; then
db1Edits=$((db1Edits +1))
elif [[ $2 == "$db2" ]]; then
db2Edits=$((db2Edits +1))
fi
else
echo -e "\n\e[41mERROR\e[0m Failed to update $(basename -- "$2")${Off}"
echo -e "\n${Error}ERROR 8${Off} Failed to update $(basename -- "$2")${Off}"
exit 8
fi
fi
@ -376,18 +521,36 @@ while [[ $num -lt "${#nvmes[@]}" ]]; do
if [[ -f "$db2" ]]; then
updatedb "${nvmes[$num]}" "$db2"
fi
#------------------------------------------------
# M.2 adaptor cards
num2="0"
while [[ $num2 -lt "${#m2carddbs[@]}" ]]; do
if [[ -f "${dbpath}${m2carddbs[$num2]}" ]];then
backupdb "${dbpath}${m2carddbs[$num2]}" &&\
updatedb "${nvmes[$num]}" "${dbpath}${m2carddbs[$num2]}"
else
echo -e "${Error}ERROR 10${Off} ${m2carddbs[$num2]} not found!"
fi
num2=$((num2 +1))
done
#------------------------------------------------
num=$((num +1))
done
#------------------------------------------------------------------------------
# Edit /etc.defaults/synoinfo.conf
# Optionally disable "support_disk_compatibility"
sdc=support_disk_compatibility
setting="$(get_key_value /etc.defaults/synoinfo.conf $sdc)"
setting="$(get_key_value $synoinfo $sdc)"
if [[ $force == "yes" ]]; then
if [[ $setting == "yes" ]]; then
# Disable support_disk_compatibility
sed -i "s/${sdc}=\"yes\"/${sdc}=\"no\"/" "/etc.defaults/synoinfo.conf"
setting="$(get_key_value /etc.defaults/synoinfo.conf $sdc)"
sed -i "s/${sdc}=\"yes\"/${sdc}=\"no\"/" "$synoinfo"
setting="$(get_key_value "$synoinfo" $sdc)"
if [[ $setting == "no" ]]; then
echo -e "\nDisabled support disk compatibility."
fi
@ -395,8 +558,8 @@ if [[ $force == "yes" ]]; then
else
if [[ $setting == "no" ]]; then
# Enable support_disk_compatibility
sed -i "s/${sdc}=\"no\"/${sdc}=\"yes\"/" "/etc.defaults/synoinfo.conf"
setting="$(get_key_value /etc.defaults/synoinfo.conf $sdc)"
sed -i "s/${sdc}=\"no\"/${sdc}=\"yes\"/" "$synoinfo"
setting="$(get_key_value "$synoinfo" $sdc)"
if [[ $setting == "yes" ]]; then
echo -e "\nRe-enabled support disk compatibility."
fi
@ -404,43 +567,78 @@ else
fi
# Edit synoinfo.conf to prevent DB updates
#if [[ $nodbupdate == "yes" ]]; then # For future use
file=/etc.defaults/synoinfo.conf
if [[ -f $file ]]; then
# Backup synoinfo.conf if needed
if [[ ! -f "$file.bak" ]]; then
if cp "$file" "$file.bak"; then
echo "Backed up synoinfo.conf to $(basename -- "${file}").bak"
# Check m2 volume support enabled
smp=support_m2_pool
setting="$(get_key_value $synoinfo ${smp})"
enabled=""
if [[ ! $setting ]]; then
# Add support_m2_pool"yes"
echo 'support_m2_pool="yes"' >> "$synoinfo"
enabled="yes"
elif [[ $setting == "no" ]]; then
# Change support_m2_pool"no" to "yes"
sed -i "s/${smp}=\"no\"/${smp}=\"yes\"/" "$synoinfo"
enabled="yes"
elif [[ $setting == "yes" ]]; then
echo -e "\nM.2 volume support already enabled."
fi
# Check if we enabled m2 volume support
setting="$(get_key_value $synoinfo ${smp})"
if [[ $enabled == "yes" ]]; then
if [[ $setting == "yes" ]]; then
echo -e "\nEnabled M.2 volume support."
else
echo -e "\e[41mERROR\e[0m Failed to backup $(basename -- "${file}")!"
exit 6
echo -e "${Error}ERROR${Off} Failed to enable m2 volume support!"
fi
fi
url=$(get_key_value "$file" drive_db_test_url) # returns a linefeed if key doesn't exist
# Edit synoinfo.conf to prevent drive db updates
dtu=drive_db_test_url
url="$(get_key_value $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" >> "$file"
# Add drive_db_test_url="127.0.0.1"
echo 'drive_db_test_url="127.0.0.1"' >> "$synoinfo"
disabled="yes"
elif [[ $url != "127.0.0.1" ]]; then
# Edit drive_db_test_url=
sed -i "s/drive_db_test_url=$url/drive_db_test_url=127.0.0.1/" "$file"
sed -i "s/drive_db_test_url=.*/drive_db_test_url=\"127.0.0.1\"/" "$synoinfo" >/dev/null
disabled="yes"
fi
url=$(get_key_value "$file" drive_db_test_url)
# Check if we disabled drive db auto updates
url="$(get_key_value $synoinfo drive_db_test_url)"
if [[ $disabled == "yes" ]]; then
if [[ $url == "127.0.0.1" ]]; then
echo "Disabled drive db auto updates."
echo -e "\nDisabled drive db auto updates."
else
echo -e "\e[41mERROR\e[0m Failed to disable drive db auto updates!"
echo -e "${Error}ERROR${Off} Failed to disable drive db auto updates!"
fi
fi
else
# Re-enable drive db updates
if [[ $url == "127.0.0.1" ]]; then
# Edit drive_db_test_url=
sed -z "s/drive_db_test_url=\"127\.0\.0\.1\"\n//" "$synoinfo" >/dev/null
#sed -i "s/drive_db_test_url=\"127\.0\.0\.1\"//" "$synoinfo" # works but leaves line feed
# Check if we re-enabled drive db auto updates
url="$(get_key_value $synoinfo drive_db_test_url)"
if [[ $url != "127.0.0.1" ]]; then
echo -e "\nRe-enabled drive db auto updates."
fi
else
echo -e "\nDrive db auto updates already enabled."
fi
fi
#fi
#------------------------------------------------------------------------------
# Finished
# Show the changes
if [[ ${showedits,,} == "yes" ]]; then
if [[ $dbtype -gt "6" ]];then

Loading…
Cancel
Save