HEX
Server: Apache
System: Linux server3230.server-vps.com 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: lzgqnjwu (1002)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //usr/local/brainycp/scripts/migrate_script.sh
#!/bin/bash

TMPFILE="/root/script_migrate_flag"
STAGE_FILE="/root/script_migrate_stage"


# Чтение стадии из файла, если он существует
if [ -f "$STAGE_FILE" ]; then
    STAGE=$(cat "$STAGE_FILE")
else
    STAGE=0
fi

case $STAGE in
    0)
		echo -e "\033[1;32mStep1.\033[0m"
		GLOBALS_FILE="/etc/brainy/globals.php"
		CURRENT_VERSION=$(grep "\$GLOBALS\['CORE_VERSION'\]" "$GLOBALS_FILE" | cut -d'"' -f2)
		TARGET_VERSION="1.0966"

		if [ "$(printf '%s\n' "$TARGET_VERSION" "$CURRENT_VERSION" | sort -V | head -n1)" != "$TARGET_VERSION" ]; then
			echo -e "\033[1;31mThe panel version is less than $TARGET_VERSION, update the panel to the latest version.\033[0m"
			exit 1
		fi
		
		sed -i 's/mirrorlist.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo		
		sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo		
		sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo		
		sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo		
		curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo	
		yum clean all			
		yum upgrade -y		
		yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm		
		yum install -y leapp-upgrade leapp-data-almalinux		
		leapp preupgrade			
		yum reinstall -y kernel kernel-devel kernel-headers		
		sed -i 's/^SELINUX=disabled/SELINUX=permissive/' /etc/selinux/config	
		
		echo -e 'Step1. Please \033[1;31mreboot\033[0m server'
		echo -e 'After rebooting, run the command "\033[1;33mbash migrate_script.sh\033[0m"'
		echo '1' > $STAGE_FILE
	;;
	1)
		echo -e "\033[1;32mStep2.\033[0m"
		leapp preupgrade		
		rmmod pata_acpi
		rmmod floppy	
		leapp answer --section remove_pam_pkcs11_module_check.confirm=True
		#echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config	
				
		#leapp upgrade		

		yum remove -y openssl11-libs
		yum remove -y sysvinit-tools
		yum remove -y httpd24-filesystem
		yum remove -y httpd24-tools
		rpm -e --nodeps python-six
		yum install -y python-six --disablerepo="*" --enablerepo="base"
		leapp preupgrade
		leapp upgrade
		echo -e 'Step2. Please \033[1;31mreboot\033[0m server'
		echo 'and View vnc upgrade server'
		echo -e 'After rebooting, run the command "\033[1;33mbash migrate_script.sh\033[0m"'
		echo '2' > $STAGE_FILE
	;;
	2)
		echo -e "\033[1;32mStep3.\033[0m"
		curl -o /etc/yum.repos.d/elevate-ng.repo https://repo.almalinux.org/elevate/testing/elevate-ng-el$(rpm -E %rhel).repo
		sed -i 's/^exclude=/#exclude=/g' /etc/dnf/dnf.conf
		sed -i 's/^exclude=/#exclude=/g' /etc/yum.conf
		yum clean all
		sed -i 's/^SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config
		rm -rf /etc/yum.repos.d/kernel_v3.repo
		rm -rf /etc/yum.repos.d/ELevate.repo
		rm -rf /etc/yum.repos.d/brainy.repo
		yum clean all
		yum remove -y python2-leapp python3-leapp leapp
		yum remove -y leapp-data-almalinux
		yum remove -y leapp-upgrade
		yum install -y leapp-upgrade leapp-data-almalinux
		#reboot
		pip2 install --upgrade six

		curl https://repo.almalinux.org/elevate/testing/elevate-testing.repo -o /etc/yum.repos.d/elevate-testing.repo
		rpm --import https://repo.almalinux.org/elevate/RPM-GPG-KEY-ELevate
		#yum install -y leapp-upgrade leapp-data-almalinux

		#yum install leapp leapp-repository python3-dnf
		#yum install python-setuptools python-requests python-six
		yum install -y firewalld
		sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
		rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0
		
		USERNAME="user_update_brainycp"
		ROOT_HASH=$(grep '^root:' /etc/shadow | cut -d: -f2)
		useradd -m -s /bin/bash $USERNAME
		usermod -p "$ROOT_HASH" $USERNAME
		usermod -aG wheel $USERNAME
	
		 if id -nG "$USERNAME" | grep -qw "wheel"; then
			sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config
			systemctl restart sshd
			leapp preupgrade
			leapp upgrade	
		 else
			echo "Error adding user $USERNAME to sudo group."
			
			echo 'Execute commands'
			echo 'adduser user_update_brainycp'
			echo 'passwd user_update_brainycp'
			echo 'usermod -aG wheel user_update_brainycp'
			echo "sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config"
			echo "systemctl restart sshd"
			echo ''
			echo 'Log in as the created user and execute the commands:'
			echo 'leapp preupgrade'
			echo 'leapp upgrade'
			echo ''
			echo -e 'Step3. Please \033[1;31mreboot\033[0m server'
			echo 'and View vnc upgrade server'
			echo -e 'After rebooting the server, \033[1;33mlog in as user user_update_brainycp root password\033[0m, and run the command "\033[1;33mbash migrate_script.sh\033[0m"'
			
			exit 1
			
		 fi
		
		 
		#echo 'Execute commands'
		#echo 'adduser adminuser'
		#echo 'passwd adminuser'
		#echo 'usermod -aG wheel adminuser'
		#echo "sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config"
		#echo "systemctl restart sshd"
		
		#echo ''
		#echo 'Log in as the created user and execute the commands:'
		#echo 'leapp preupgrade'
		#echo 'leapp upgrade'
		echo ''
		echo -e 'Step3. Please \033[1;31mreboot\033[0m server'
		echo 'and View vnc upgrade server'
		echo -e 'After rebooting the server, \033[1;33mlog in as user user_update_brainycp root password\033[0m, and run the command sudo -i and cd /root "\033[1;33mbash migrate_script.sh\033[0m"'	
	
		# adduser adminuser
		# passwd adminuser
		# usermod -aG wheel adminuser
		#sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config
		#systemctl restart sshd
		#Заходим из под созданного пользователя и через sudo -i даем привелегии рут
		#leapp preupgrade
		#если нет критических ошибок запускаем команду ниже
		#leapp upgrade
		echo '3' > $STAGE_FILE
	;;
	3)
		echo -e "\033[1;32mStep4.\033[0m"
		sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
		systemctl restart sshd
		rm -rf /etc/yum.repos.d/elevate*
		rm -rf /etc/yum.repos.d/CentOS*
		sed -i '/\[appstream\]/c\[AppStream\]' /etc/yum.repos.d/almalinux-appstream.repo &>/dev/null
		sed -i '/\[appStream\]/c\[AppStream\]' /etc/yum.repos.d/almalinux-appstream.repo &>/dev/null
		sed -i '/\[baseos\]/c\[BaseOS\]' /etc/yum.repos.d/almalinux-baseos.repo &>/dev/null
		sed -i '/\[baseOS\]/c\[BaseOS\]' /etc/yum.repos.d/almalinux-baseos.repo &>/dev/null
		yum remove -y repo-brainy-v3
		rpm -Uv --replacepkgs http://core.brainycp.com/repo/alma-brainy-repo-v3-9.0-2.el9.noarch.rpm
		rpm -Uv --install http://brainyrepo1.brainycp.com/centos/repo/repo-brainy-v3a-9.0-2.el9.noarch.rpm
		echo '' > /etc/yum/pluginconf.d/versionlock.list
		yum clean all

		yum -y update openssl
		yum remove -y compat-openssl11
		yum install -y compat-openssl11 --disablerepo="*" --enablerepo="myrepo-centos"
		yum update -y crypto-policies
		yum remove -y nss_db
		yum update -y glibc
		yum remove -y libtirpc-devel
		yum install -y libtirpc
		yum update -y
		yum remove -y firewalld-* 
		yum remove -y libpng15
		yum -y install jailkit
		
		yum -y remove brainy-php5*
		yum -y install brainy-php5*
		systemctl restart brainyphp-fpm
		systemctl enable brainyphp-fpm			
		systemctl restart brainyphp-fpm
		systemctl enable brainyphp-fpm
		yum -y remove brainy-nginx
		yum -y install brainy-nginx
		systemctl restart nginxb
		systemctl enable nginxb
		sed -i 's/centos7/centos9/' /etc/brainy/globals.php
		yum remove -y httpd-core
		
		yum -y remove msodbcsql17 openh264-libs x264-libs openjpeg-libs libwebp4  libImageMagick-compact chkrootkit kvazaar-libs
		yum -y install msodbcsql17 x264-libs ImageMagick libwebp
		yum -y remove hugepages
		yum -y install hugepages
		yum -y remove nvidia-driver-cuda-libs	
		yum -y remove repo-kernel
		yum -y module disable nginx php mariadb	

		version_mysql=$(cat /etc/brainy/mysql | grep -E 'mysql.*' |grep -oP '(?<=\").*?(?=\")')
		if [ ! -f "/etc/my.cnf" ]; then
			cp /etc/brainy/packet_manager/mysql/my.cnf /etc/my.cnf
		fi
		echo $version_mysql
		case $version_mysql in
			"MySql8.0")
               yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mysql80-server mysql80 mysql80-libs exim-mysql80 dovecot-mysql80

			;;			
			"MySql5.5")
               yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql55 mysql55-server exim-mysql55 dovecot-mysql55

			;;			
			"MySql5.6")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql56-server exim-mysql56 dovecot-mysql56

			;;			
			"MySql5.7")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mysql57-server mysql57-libs mysql57 exim-mysql57 dovecot-mysql57

			;;
			
			"MariaDB10.11")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.11-server mariadb10.11-client mariadb10.11-server-utils mariadb10.11-common mariadb10.11-libs mariadb10.11
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.11 dovecot-mysql10.11			
			;;	
			
			"MariaDB10.1")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10-server mariadb10-common mariadb10-libs mariadb10
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10 dovecot-mysql10

			;;				
			"MariaDB10.2")
				yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.2-server mariadb10.2-server-utils mariadb10.2-common mariadb10.2-libs mariadb10.2
				yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.2 dovecot-mysql10.2				
			;;			
			"MariaDB10.3")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.3-server mariadb10.3-server-utils mariadb10.3-common mariadb10.3-libs mariadb10.3
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.3 dovecot-mysql10.3

			;;			
			"MariaDB10.4")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.4-server mariadb10.4-server-utils mariadb10.4-common mariadb10.4-libs mariadb10.4
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.4 dovecot-mysql10.4
 
			;;		
			"MariaDB10.5")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.5-server mariadb10.5-client mariadb10.5-server-utils mariadb10.5-common mariadb10.5-libs mariadb10.5
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.5 dovecot-mysql10.5

			;;			
			"MariaDB10.6")
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install mariadb10.6-server mariadb10.6-client mariadb10.6-server-utils mariadb10.6-common mariadb10.6-libs mariadb10.6
                yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb  -y install exim-mysql10.6 dovecot-mysql10.6
			
			;;		
		
	
		esac
		rm -f /etc/systemd/system/mysql.service
		rm -f /etc/systemd/system/mysqld.service
		systemctl restart mysqld
		systemctl disable mysqld
		systemctl enable mysqld		
		/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p=exim	 2>>/root/err_update.log 1>>/root/out_update.log
		for dir in "/etc/brainy/packet_manager"/*/; do
			# Вывод относительного пути текущей директории
			relative_dir=$(basename "$dir")
			
			# Если директория mysql, пропускаем её
			if [ "$relative_dir" == "mysql" ] || [ "$relative_dir" == "sshd" ] || [ "$relative_dir" == "webserver" ]; then
				continue
			fi
			
			if grep -q "$relative_dir=1" "/etc/brainy/conf/packet_manager2/main"; then
				if grep -q "$relative_dir""_version=" "/etc/brainy/conf/packet_manager2/main"; then
					#echo "$relative_dir""_version="
					packet_version=$(grep -E "${relative_dir}_version=\".*\"" "/etc/brainy/conf/packet_manager2/main" | grep -oP '(?<=\=").*?(?=\")')
					#packet_version=$(cat /etc/brainy/conf/packet_manager2/main | grep -E '"$relative_dir""_version=".*' |grep -oP '(?<=\").*?(?=\")')
					#packet_version=$(cat /etc/brainy/conf/packet_manager2/main | grep -E ''$relative_dir"_version=".*' |grep -oP '(?<=\").*?(?=\")')
					#echo $packet_version
					echo "/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir" -v="$packet_version""
					/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir" -v="$packet_version"  2>>/root/err_update.log 1>>/root/out_update.log

				else
					echo "/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir""
					/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir"  2>>/root/err_update.log 1>>/root/out_update.log			
				fi

			fi
			
		done
		
		open_phps=$(grep '^open_phps=' "/etc/brainy/conf/server_control/main" | cut -d'=' -f2 | tr -d '"|()[]{}\n\r')
		srv_confname=$(grep '^srv_confname=' "/etc/brainy/conf/server_control/main" | cut -d'=' -f2 | tr -d '"|()[]{}\n\r')
		open_phps=$(echo "$open_phps" | tr -d '\n')
		srv_confname=$(echo "$srv_confname" | tr -d '\n')
		echo "/usr/local/brainycp/src/compiled/php5/bin/php -q /usr/local/brainycp/ssh/webserver.php -a=install -s="$srv_confname" -p="$open_phps""
		/usr/local/brainycp/src/compiled/php5/bin/php -q /usr/local/brainycp/ssh/webserver.php -a=install -s="$srv_confname" -p="$open_phps" 2>>/root/err_update.log 1>>/root/out_update.log


		echo ''
		echo -e "\033[1;32mStep4. Finish Migrate centos7 -> almalinux9.\033[0m"
		echo -e "\033[1;32mRebuild the hostaccount jail.\033[0m"
	
		#echo 'Step4. Please reboot server'
		echo '4' > $STAGE_FILE
		
	;;
	4)
		echo "step5."
		
		#/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/webserver.php -a=install -s=apache2.4 -p=php56w,php71w
		#/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/webserver.php -a=install -s=apache2.4+nginx -p=php56w,php71w,php80w



	;;
	5)

	;;

esac