#!/bin/bash #定义颜色变量 RED='\E[1;31m' # 红 GREEN='\E[1;32m' # 绿 YELOW='\E[1;33m' # 黄 BLUE='\E[1;34m' # 蓝 PINK='\E[1;35m' # 粉红 SHANGREEN='\E[32;5m' #绿色闪烁警示 SHANBLUE='\E[34;5m' #蓝闪烁警示 RES='\E[0m' # 清除颜色 # 设置一个 trap 在脚本结束时删除文件 trap "rm -f $SCRIPT_NAME" EXIT has_root() { if [[ $EUID -ne 0 ]]; then echo "权限需要提升:该安装程序必须由root执行" 1>&2 exit 1 fi } has_root # 倒计时函数 countdown() { echo "完成..." echo "脚本执行完毕,返回主菜单倒计时" for i in {3..1}; do echo "$i s..." sleep 1 done } # 安装 TMS download_tms() { echo "下载 TMS 安装包并解压..." cd /home/smart ziptest=`zip -T install8.5-1022 | grep OK` if [ -n "$ziptest" ]; then echo "安装包已存在,且完整" rm -rf /home/smart/install8.5 else echo "安装包不存在或不完整,重新下载" rm -rf /home/smart/install8.5* wget -Nq --show-progress https://bbt-static-a.oss-cn-beijing.aliyuncs.com/smart/environment/install8.5-1022.zip fi echo -e "${GREEN}解压TMS安装包${RES}" unzip -o install8.5-1022 if [ $? -ne 0 ]; then echo -e "${RED}解压失败,请重新运行脚本${RES}" exit 1 fi echo -e "${GREEN}完成${RES}" # 具体命令 } install_mysql() { echo "安装 MySQL..." download_tms cd /home/smart/install8.5/ #数据库安装 groupadd -r -g 306 mysql useradd -r -g 306 -u 306 -d /data/mysql -s /sbin/nologin mysql mkdir -p /data/mysql chown mysql:mysql /data/mysql tar xf /home/smart/install8.5/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ sleep 5 ln -sv /usr/local/mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql chown -R root:root /usr/local/mysql/ cp -b -f /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cp -b -f /home/smart/install8.5/my.cnf /etc/my.cnf #创建数据库文件 sudo kill -9 $(ps -ef | grep mysql | awk '{print $2}') sleep 5 cd /usr/local/mysql/ sleep 2 ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql #准备服务脚本,并启动服务 # sleep 5 # cp -b -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #启动服务 systemctl daemon-reload systemctl restart mysqld #让服务实现开机自动启动 systemctl enable mysqld #将其他相关程序加入到PATH变量中 echo 'PATH=/usr/local/mysql/bin:$PATH'>> /etc/profile.d/mysql.sh #source生效 sh /etc/profile.d/mysql.sh sleep 3 source ~/.bashrc sleep 10 sh /home/smart/install8.5/mysql.sh sleep 5 mysqladmin -uroot password PythA90ra5 #导入空的数据库 cat /home/smart/install8.5/tms_db_s3.sql |mysql -u root -pPythA90ra5 countdown } install_tomcat() { echo "安装 apache-tomcat..." download_tms cd /home/smart/install8.5/ #安装apache-tomcat mkdir /home/smart/.tms3 cp -r /home/smart/install8.5/apache-tomcat-7.0.63 /home/smart/.tms3/ chmod -R 777 /home/smart/.tms3/apache-tomcat-7.0.63 cp -r /home/smart/install8.5/starter /home/smart/.tms3/ rpm -ivh /home/smart/install8.5/ntfs-3g-libs-2022.10.3-1.el8.x86_64.rpm rpm -ivh /home/smart/install8.5/ntfs-3g-2022.10.3-1.el8.x86_64.rpm cp -b -f /home/smart/install8.5/smarttms /bin/smarttms chmod 755 /bin/smarttms # echo "setsid /home/smart/.tms3/apache-tomcat-7.0.63/bin/startup.sh">>/etc/rc.local #启动服务 systemctl daemon-reload systemctl restart smarttms #让服务实现开机自动启动 systemctl enable smarttms countdown } # 卸载删除 MySQL uninstall_mysql() { echo "卸载删除 MySQL..." service mysqld stop pkill -9 mysql* rm -rf /data/mysql rm -rf /usr/local/mysql* rm -rf /etc/my.cnf countdown } # 卸载删除 TMS uninstall_tms() { echo "卸载删除 TMS..." smarttms stop pkill -9 java rm -rf /home/smart/.tms3 rm -rf /home/smart/Desktop/restart.desktop rm -rf /home/smart/Desktop/TMS软件重新启动.desktop # rm -rf /home/smart/Desktop/片库 # rm -rf /home/smart/Desktop/密钥 systemctl daemon-reload countdown } install_tms() { while true; do echo "选择 TMS 安装选项:" echo "1. 下载 TMS 安装包并解压" echo "2. 安装 mysql" echo "3. 安装 tomcat" echo "99. 返回主菜单" read -p "请输入选项 (1-3): " tms_choice case $tms_choice in 1) download_tms ;; 2) install_mysql ;; 3) install_tomcat ;; 99) return ;; *) echo "无效的选项。" ;; esac done } # 修复 TMS 自带 DCP repair_tms_dcp() { echo "修复 TMS 自带 DCP..." echo "未修复" # cd /home/smart # if [ -a /bin/dcpomatic2_create_original ];then # echo "已修复" # else # wget -Nq --show-progress http://yuyujing.cn/data/sh/tms_dcpConversion_rep.zip # unzip -o tms_dcpConversion_rep.zip # cd tms_dcpConversion_rep/ # sh tms_dcpConversion_rep.sh # fi # cd /home/smart # rm -rf tms_dcpConversion_rep* countdown } # 完整导入所有 Firefox 配置 import_all_firefox9() { echo "完整导入所有配置..." cd /home/smart firefoxBakzip="firefox.default-release-centos9.zip" firefoxBak="firefox.default-release" echo -e "${GREEN}firefox默认及优化配置导入${RES}" | tee -a /home/smart/.tmsInstallLogs.log wget -Nq --show-progress http://yuyujing.cn/data/sh/${firefoxBakzip} | tee -a /home/smart/.tmsInstallLogs.log unzip -o ${firefoxBakzip} >> /home/smart/.tmsInstallLogs.log 2>&1 su smart -c 'firefox & disown' >> /home/smart/.tmsInstallLogs.log 2>&1 echo "检查firefox配置目录-等待90s生成firefox配置" for i in {90..1}; do firefoxname=`find /home/smart/.mozilla/firefox/ -name "*.default-default" 2> /home/smart/.tmsInstallLogs.log` if [ -n "$firefoxname" ];then if pgrep -x "firefox" > /dev/null; then # echo "Firefox is running. Killing the process..." # 杀死所有 Firefox 进程 pkill -x "firefox" # echo "Firefox process terminated." fi zip -r /home/smart/firefoxSettingsBackup.default-release.zip "$firefoxname" >> /home/smart/.tmsInstallLogs.log 2>&1 cd ${firefoxBak}/ /bin/cp -rf ./* "$firefoxname" chown -R smart:smart "$firefoxname" sleep 5 su smart -c 'firefox & disown' >> /home/smart/.tmsInstallLogs.log 2>&1 echo "完成" break fi sleep 1 if [ $i -eq 1 ];then echo "firefox配置目录不存在..." break fi echo -n '.' done cd /home/smart rm -rf ${firefoxBak}* } # 导入 prefs.js import_prefs_js9() { echo "导入 prefs.js..." cd /home/smart firefoxBakzip="firefox.default-release-centos9.zip" firefoxBak="firefox.default-release" echo -e "${GREEN}firefox默认及优化配置导入${RES}" | tee -a /home/smart/.tmsInstallLogs.log wget -Nq --show-progress http://yuyujing.cn/data/sh/${firefoxBakzip} | tee -a /home/smart/.tmsInstallLogs.log unzip -o ${firefoxBakzip} >> /home/smart/.tmsInstallLogs.log 2>&1 su smart -c 'firefox & disown' >> /home/smart/.tmsInstallLogs.log 2>&1 echo "检查firefox配置目录-等待90s生成firefox配置" for i in {90..1}; do firefoxname=`find /home/smart/.mozilla/firefox/ -name "*.default-default" 2> /home/smart/.tmsInstallLogs.log` if [ -n "$firefoxname" ];then if pgrep -x "firefox" > /dev/null; then # echo "Firefox is running. Killing the process..." # 杀死所有 Firefox 进程 pkill -x "firefox" # echo "Firefox process terminated." fi zip -r /home/smart/firefoxSettingsBackup.default-release.zip "$firefoxname" >> /home/smart/.tmsInstallLogs.log 2>&1 cd ${firefoxBak}/ /bin/cp -rf ./prefs.js "$firefoxname" chown -R smart:smart "$firefoxname" sleep 5 su smart -c 'firefox & disown' >> /home/smart/.tmsInstallLogs.log 2>&1 echo "完成" break fi sleep 1 if [ $i -eq 1 ];then echo "firefox配置目录不存在..." break fi echo -n '.' done cd /home/smart rm -rf ${firefoxBak}* } # Firefox 优化配置导入 firefox_import9() { while true; do echo "选择 Firefox 优化配置导入:" echo "1. 完整导入所有(书签,配置等)" echo "2. 导入 prefs.js(首选项)" echo "3. 返回主菜单" read -p "请输入选项 (1-3): " firefox_choice case $firefox_choice in 1) import_all_firefox9 countdown ;; 2) import_prefs_js9 countdown ;; 3) return ;; *) echo "无效的选项。" ;; esac done } # TMS 数据恢复 tms_data_recovery() { echo "TMS 数据恢复..." cd /home/smart wget -N http://yuyujing.cn/data/sh/tmsRCData.sh && sh tmsRCData.sh countdown } # 数据库快捷操作 database_shortcuts() { echo "数据库快捷操作..." cd /home/smart wget -N http://yuyujing.cn/data/sh/tms_tools.sh && sh tms_tools.sh countdown } # 安装 pure-ftp install_pure_ftp() { echo "安装 pure-ftp..." cd /home/smart wget -N yuyujing.cn/data/sh/pureftp/pureftp-install.sh && sh pureftp-install.sh countdown } # CentOS8-Wine 安装 centos8_wine_install() { echo "CentOS8-Wine 安装..." cd /home/smart # wget -Nq --show-progress http://yuyujing.cn/data/sh/wine-cenos8-offline.zip # unzip -o wine-cenos8-offline.zip # #sh install-wine-i686-centos8-rep.sh # echo "自行运行安装脚本 install-wine-i686-centos8-rep.sh" # cd /home/smart # wget -Nq --show-progress http://yuyujing.cn/data/soft/DCC/DCCs2.exe # /bin/cp -f DCCs2.exe /home/smart/桌面 # chown -R smart:smart /home/smart/桌面/DCCs2.exe # 具体命令 wget -N yuyujing.cn/data/sh/wine-wow64.sh && sh wine-wow64.sh countdown } # 清理系统空间 clean_system_space() { echo "清理系统空间..." cd /home/smart wget -Nq http://yuyujing.cn/data/sh/clear/clear.sh && sh clear.sh rm -rf /home/smart/clear.sh countdown } # 交换分区占用程序查询 swap_usage_query() { echo "交换分区占用程序查询..." cd /home/smart wget -Nq http://yuyujing.cn/data/sh/swaplist.sh && sh swaplist.sh # 具体命令 countdown } # 网络聚合快速引导 fast_create_bond0() { echo "网络聚合快速引导(不要聚合外网接口)..." cd /home/smart wget -N yuyujing.cn/data/sh/centos8-bond0-fastcreate.sh && sh centos8-bond0-fastcreate.sh # 具体命令 countdown } # 打开vnc远程桌面 centos8_vnc() { echo "打开vnc远程桌面..." countdown } # 凤凰佳影 http://IP:29957/TService.asmx find_url_fhxj() { echo "搜索凤凰佳影 http://IP:29957/TService.asmx..." wget -N yuyujing.cn/data/sh/url_scan_bbttms.sh && sh url_scan_bbttms.sh -p 29957 -u /TService.asmx countdown } # 辰星 http://172.17.17.2:10468/cms-mvs/services/mvsService/GetSchedulesForTMS?pCinemaCode=32036811&pPlanDate=2019-05-06 find_url_cx() { echo "搜索辰星 ..." wget -N yuyujing.cn/data/sh/url_scan_bbttms.sh && sh url_scan_bbttms.sh -p 10468 -u /cms-mvs/services/mvsService countdown } # 搜索局域网服务 find_url() { while true; do echo "url:" echo "1. 搜索凤凰佳影" echo "2. 搜索辰星" echo "3. 返回主菜单" read -p "请输入选项 (1-3): " url_choice case $url_choice in 1) find_url_fhxj ;; 2) find_url_cx ;; 3) return ;; *) echo "无效的选项。" ;; esac done } # 总菜单 ----------------------------------------------------------------------------- clear # 定义菜单 show_menu() { echo "请选择操作:" echo "1. 安装 TMS" echo "2. 卸载删除 MySQL" echo "3. 卸载删除 TMS" echo "4. 修复 TMS 自带 DCP" echo "5. Firefox 优化配置导入" echo "6. 数据库快捷操作" echo "7. pure-ftp 安装" echo "8. 清理系统空间" echo "9. 交换分区占用程序查询" echo "11. 网络聚合快速引导" echo "12. 打开VNC远程桌面" echo "13. 搜索局域网售票系统主机地址(凤凰嘉影,辰星)" echo "99. 退出" } # 主程序逻辑 while true; do show_menu read -p "请输入选项 (1-99): " choice case $choice in 1) install_tms ;; 2) uninstall_mysql ;; 3) uninstall_tms ;; 4) repair_tms_dcp ;; 5) firefox_import9 ;; 6) database_shortcuts ;; 7) install_pure_ftp ;; 8) clean_system_space ;; 9) swap_usage_query ;; 10) tms_data_recovery ;; 11) fast_create_bond0 ;; 12) centos8_vnc ;; 13) find_url ;; 99) echo "退出程序。" exit 0 ;; *) echo "无效的选项,请重新选择。" ;; esac done