| Server IP : 193.86.120.172 / Your IP : 216.73.216.67 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/@appstore/SynologyDrive/sharesync/scripts/ |
Upload File : |
#!/bin/sh
PRIVATE_LOCATION="/var/packages/SynologyDrive/target/sharesync"
PKG_BIN_PATH="${PRIVATE_LOCATION}/bin"
SRV_CONTROL_BIN="${PKG_BIN_PATH}/srvctl"
CONF_LOCATION="/var/packages/SynologyDrive/etc/sharesync"
CONF_FILE_PATH="${CONF_LOCATION}/service.conf"
REPO_VOL_KEY="volume"
dscc_change_vol()
{
logger -p 3 "start to move from ${1}/@SynologyDriveShareSync to ${2}/@SynologyDriveShareSync"
local from_loc="${1}";
local to_loc="${2}";
if [ ! -d "${from_loc}/@SynologyDriveShareSync" ]; then
logger -p 3 "$from_loc/@SynologyDriveShareSync does not exist"
return;
fi
touch "/tmp/dscc_repo_mv"
#In different volumes
rm -rf "${to_loc}/@SynologyDriveShareSync" > /dev/null 2>&1
mv -f "${from_loc}/@SynologyDriveShareSync" "${to_loc}/@SynologyDriveShareSync" > /dev/null 2>&1
# handle cp fail
if [ 0 -ne $? ]; then
logger -p 3 "cp \"${from_loc}/@SynologyDriveShareSync\" \"${to_loc}/@SynologyDriveShareSync\" fail, fall back"
mv "${to_loc}/@SynologyDriveShareSync" "${to_loc}/@tmp/@SynologyDriveShareSync" > /dev/null 2>&1
rm -rf "${to_loc}/@tmp/@SynologyDriveShareSync" &
rm -rf "/tmp/dscc_repo_mv"
return 1;
fi
mv "${from_loc}/@SynologyDriveShareSync" "${from_loc}/@tmp/@SynologyDriveShareSync" > /dev/null 2>&1
rm -rf "${from_loc}/@tmp/@SynologyDriveShareSync" &
logger -p 3 "move repository from ${from_loc}/@SynologyDriveShareSync to ${to_loc}/@SynologyDriveShareSync successfully"
# change repo vol in conf file
/usr/syno/bin/synosetkeyvalue ${CONF_FILE_PATH} "${REPO_VOL_KEY}" "${to_loc}"
rm -rf "/tmp/dscc_repo_mv"
}
if [ 2 -ne $# ]; then
echo "usage [from] [to]"
return 1;
fi
(flock -n 200 || exit 1
# FIXME: stop all process
"${SRV_CONTROL_BIN}" --stop > /dev/null 2>&1;
dscc_change_vol "${1}" "${2}" ;
# FIXME: launch all process
"${SRV_CONTROL_BIN}" --start > /dev/null 2>&1
) 200> /tmp/dscc_repo_mv.flock