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 :  /proc/29149/cwd/etc.defaults/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/29149/cwd/etc.defaults/rc.check_data_volume_mounted
#!/bin/sh
# Copyright (c) 2000-2015 Synology Inc. All rights reserved.
#
. /etc.defaults/rc.subr
# After umount and syno_poweroff_task end,
# check which process does not release device(volume, lv, md)

skip="^/usr/|^/proc/|^/run/|^/var/run/|^/tmp/|anon_inode:|socket:|pipe:|^/dev/|^/sys/|^/etc/|^/etc.defaults/|^/sbin/|^/bin/|/SYSV|^/lib/|^/lib64/|^/var/log/|^/var/lib/|^/var/cache/|^/$"
LVM_CHECK_DONE=/tmp/.syno.lvm
SZF_DEVICE_BUSY_ERR2="/tmp/.check_data_volume_mounted_err"
SZF_DEVICE_BUSY_LIST2="/var/log/DeviceBusyList2"
SZF_CMD_BUST_LIST="/tmp/.syno.cmdline"
SZF_CMD_BUST_LIST_TMP="${SZF_CMD_BUST_LIST}.tmp"

rm -f $SZF_DEVICE_BUSY_ERR2
ls -l /proc/*/fd 2>/dev/null | awk '{print $11}' | grep "^/" | grep -v -E "$skip" > /tmp/.syno.fd
if [ "$?" = "0" ]; then
	/usr/bin/logger -p err -s "fd check error:"
	/usr/bin/logger -p err -s < /tmp/.syno.fd
	touch $SZF_DEVICE_BUSY_ERR2
fi


rm -f $SZF_CMD_BUST_LIST_TMP
/bin/ps -x -o cmd > $SZF_CMD_BUST_LIST_TMP

grep -a "^/" $SZF_CMD_BUST_LIST_TMP | grep -a -v -E "$skip"  > $SZF_CMD_BUST_LIST
if [ "$?" = "0" ]; then
	/usr/bin/logger -p err -s "cmdline check error:"
	/usr/bin/logger -p err -s < $SZF_CMD_BUST_LIST
	touch $SZF_DEVICE_BUSY_ERR2
fi

cat /proc/*/maps 2>/dev/null | awk '{print $6}' | grep "^/" | grep -v -E "$skip" > /tmp/.syno.maps
if [ "$?" = "0" ]; then
	/usr/bin/logger -p err -s "maps check error:"
	/usr/bin/logger -p err -s < /tmp/.syno.maps
	touch $SZF_DEVICE_BUSY_ERR2
fi

rm $LVM_CHECK_DONE
{
	if [ "yes" = "$(synogetkeyvalue /etc.defaults/synoinfo.conf virtual_dsm)" ]; then
		touch $LVM_CHECK_DONE
		exit
	fi

	if [ "yes" = "$(synogetkeyvalue /etc.defaults/synoinfo.conf c2_dsm)" ]; then
		touch $LVM_CHECK_DONE
		exit
	fi

	[ -x /sbin/lvs ] && /sbin/lvs | grep ao > /tmp/.syno.lvs
	if [ "$?" = "0" ]; then
		/usr/bin/logger -p err -s "lvs check error:"
		/usr/bin/logger -p err -s < /tmp/.syno.lvs
		touch $SZF_DEVICE_BUSY_ERR2
	fi

	for md in /dev/md*; do
		if [ "/dev/md0" = "$md" ] || [  "/dev/md1" = "$md" ]; then
			continue
		fi
		/sbin/pvs | grep -q "$md"
		if [ "$?" = "1" ]; then
			/sbin/mdadm --detail "$md" >/dev/null 2>&1
			if [ "$?" = "0" ]; then
				/sbin/mkfs.ext4 -n "$md" >/dev/null 2>&1
				if [ "$?" != "0" ]; then
					/usr/bin/logger -p err -s "$md is busy"
					touch $SZF_DEVICE_BUSY_ERR2
				fi
			fi
		fi
	done

	touch $LVM_CHECK_DONE
}&

count=120 #total wait 120*0.5
while [ $count -gt 0 ]; do
	if [ -e $LVM_CHECK_DONE ]; then
		break
	fi
	sleep 0.5
	count=$((count-1))
done

if [ $count -eq 0 ]; then
	/usr/bin/logger -p err -s "Failed to check LVM"
fi

if [ -f "$SZF_DEVICE_BUSY_ERR2" ]; then
	/bin/rm -f $SZF_DEVICE_BUSY_LIST2
	/bin/date >> $SZF_DEVICE_BUSY_LIST2
	/bin/ps axjfw >> $SZF_DEVICE_BUSY_LIST2
	dump_D_process_call_stack >> $SZF_DEVICE_BUSY_LIST2
	/bin/echo -e "\nsystemctl list-jobs:" >> $SZF_DEVICE_BUSY_LIST2
	/bin/systemctl list-jobs >> $SZF_DEVICE_BUSY_LIST2
	/usr/bin/logger -p err "Check device busy2: error, refer: ${SZF_DEVICE_BUSY_LIST2}"
fi

exit 0

Youez - 2016 - github.com/yon3zu
LinuXploit