HEX
Server: nginx/1.26.1
System: Linux iZrj9cbdvwu1cot8sjlyzlZ 5.10.134-15.al8.x86_64 #1 SMP Thu Jul 20 00:44:04 CST 2023 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/sbin/khotfix-view
#!/bin/bash
run=0
all=0
kpatch=0
alihotfix=0
kernel="`uname -r`";
hotfix_prefix="/var/khotfix/${kernel}";

function usage(){
	echo "Usage:";
	echo "khotfix-view [--run|-r]"
	echo "khotfix-view --kpatch"
	echo "khotfix-view --alihotfix"
	echo "khotfix-view [--all|-a]"
	echo "khotfix-view --run --[all/kpatch/alihotfix]"
	echo "khotfix-view --id={khotfix_id}"
	echo ""
	echo "Options:"
	echo "  --id"
	echo ""
}

function parse_args(){
	ARGS=`getopt -l id:,run,all,alihotfix,kpatch,help -o rah -- "$@" 2>/dev/null` || { usage; exit 1; }
	eval set -- "${ARGS}"
	while [ -n "$1" ]
	do
		case "$1" in
		-r|--run)
			run=1
			;;
		--id)
			khotfix_id="$2"
			if [ -z "${khotfix_id}" ]; then
				usage;
				exit 1;
			fi
			shift
			;;
		-a|--all)
			all=1	
			;;
		--alihotfix)
			alihotfix=1
			;;
		--kpatch)
			kpatch=1
			;;
		-h|--help)
			usage
			exit 1;
			;;
		--)
			shift
			break
			;;
		esac
		shift
	done

	if [ ${kpatch} -eq 1 -a ${alihotfix} -eq 1 ]; then
		usage;
		exit 1;
	fi
	
	if [ ${all} -eq 0 -a ${kpatch} -eq 0 -a ${alihotfix} -eq 0 ]; then
		all=1;
	fi
}

parse_args "$@";

if [ ${khotfix_id} ]; then
	path="${hotfix_prefix}/${khotfix_id}"
	if [ -e "${path}/kpatch-${khotfix_id}.ko" ]; then
		echo -e "[kpatch]:\c";
	elif [ -e "${path}/khotfix-${khotfix_id}.ko" ]; then
		echo -e "[alihotfix]:\c";
	fi

	if [ -e "${path}/description" ]; then
		echo -e " $(cat ${path}/description)";
	else
		echo "";
	fi

	if [ -e "${path}/patch" ]; then
		echo "";
		echo "$(cat ${path}/patch)";
	fi

	exit 0;
fi

if [ ! -e "${hotfix_prefix}" ]; then
	exit 0;
fi


for id in `ls "${hotfix_prefix}"`; do
	path="${hotfix_prefix}/${id}";
	if [ ${run} -eq 1 ]; then
		lsmod | grep "${id}">/dev/null || continue;
	fi

	if [ ${all} -eq 1 ]; then 
		echo -e "${id}\c";
		if [ -e "${path}/kpatch-${id}.ko" ]; then
			echo -e " [kpatch]   :\c";
		elif [ -e "${path}/khotfix-${id}.ko" ]; then
			echo -e " [alihotfix]:\c";
		fi

		if [ -e "${path}/description" ]; then
			echo -e " $(cat ${path}/description)";
		else
			echo "";
		fi

	elif [ ${kpatch} -eq 1 ]; then
		if [ -e "${path}/kpatch-${id}.ko" ]; then
			echo -e "${id}\c";
			echo -e " [kpatch]:\c";
			if [ -e "${path}/description" ]; then
				echo -e " $(cat ${path}/description)";
			else
				echo "";
			fi
		fi
	elif [ ${alihotfix} -eq 1 ]; then
		if [ -e "${path}/khotfix-${id}.ko" ]; then
			echo -e "${id}\c";
			echo -e " [alihotfix]:\c";
			if [ -e "${path}/description" ]; then
				echo -e " $(cat ${path}/description)";
			else
				echo "";
			fi
		fi
	fi
done