403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /volume1/@appstore/SynologyDrive/sharesync/scripts/DSCCVolChange.sh
#!/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

Youez - 2016 - github.com/yon3zu
LinuXploit