add tools zip unzip nmap
This commit is contained in:
514
archiso/airootfs/home/smart/.tms3/starter/bbttms.sh
Executable file
514
archiso/airootfs/home/smart/.tms3/starter/bbttms.sh
Executable file
@@ -0,0 +1,514 @@
|
||||
#!/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
|
||||
514
archiso/airootfs/home/smart/.tms3/starter/bbttms.sh.backup.1764188623
Executable file
514
archiso/airootfs/home/smart/.tms3/starter/bbttms.sh.backup.1764188623
Executable file
@@ -0,0 +1,514 @@
|
||||
#!/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
|
||||
507
archiso/airootfs/home/smart/.tms3/starter/nm_network_manager.sh
Normal file
507
archiso/airootfs/home/smart/.tms3/starter/nm_network_manager.sh
Normal file
@@ -0,0 +1,507 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Arch Linux NetworkManager 管理脚本 - 修复版
|
||||
# 功能: 检查网络、自动修复、可靠地备份和恢复配置
|
||||
#
|
||||
|
||||
# --- 全局变量和配置 ---
|
||||
BACKUP_BASE_DIR="/var/lib/network-manager-script"
|
||||
LOG_FILE="/var/log/nm_manager.log"
|
||||
ACTIVE_CONNS_LIST="active_connections.list"
|
||||
CONNECTION_DETAILS_DIR="connection_details"
|
||||
|
||||
# --- 颜色定义 ---
|
||||
C_RESET='\033[0m'
|
||||
C_RED='\033[0;31m'
|
||||
C_GREEN='\033[0;32m'
|
||||
C_YELLOW='\033[0;33m'
|
||||
C_BLUE='\033[0;34m'
|
||||
|
||||
# --- 基础函数 ---
|
||||
log() { echo -e "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"; }
|
||||
log_success() { log "${C_GREEN}✓ $1${C_RESET}"; }
|
||||
log_error() { log "${C_RED}✗ $1${C_RESET}"; }
|
||||
log_warn() { log "${C_YELLOW}⚠ $1${C_RESET}"; }
|
||||
info() { echo -e "${C_BLUE} $1${C_RESET}"; }
|
||||
|
||||
# 检查root权限和NetworkManager服务
|
||||
pre_check() {
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
log_error "此脚本需要root权限运行。请使用: sudo \$0"
|
||||
exit 1
|
||||
fi
|
||||
if ! systemctl is-active --quiet NetworkManager; then
|
||||
log_error "NetworkManager 服务未运行。请先启动: sudo systemctl start NetworkManager"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# --- 核心功能 ---
|
||||
|
||||
# 1. 检查当前网络状态
|
||||
check_status() {
|
||||
info "--- 当前网络状态 ---"
|
||||
nmcli device status
|
||||
info "\n--- 活动连接 ---"
|
||||
nmcli connection show --active
|
||||
|
||||
log "正在检查外网连接..."
|
||||
if ping -c 2 -W 3 8.8.8.8 >/dev/null 2>&1 || ping -c 2 -W 3 1.1.1.1 >/dev/null 2>&1; then
|
||||
log_success "外网连接正常。"
|
||||
return 0
|
||||
else
|
||||
log_error "外网连接失败。"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 2. 改进的备份网络配置
|
||||
backup_config() {
|
||||
local backup_dir="$BACKUP_BASE_DIR/$(date +%F_%H-%M-%S)"
|
||||
mkdir -p "$backup_dir"
|
||||
mkdir -p "$backup_dir/$CONNECTION_DETAILS_DIR"
|
||||
|
||||
log "开始备份网络配置到: $backup_dir"
|
||||
|
||||
# 记录当前活动的连接
|
||||
nmcli -t -f NAME,TYPE,UUID,DEVICE connection show --active | grep -v ':loopback:' > "$backup_dir/$ACTIVE_CONNS_LIST"
|
||||
|
||||
# 备份所有非回环连接的详细配置
|
||||
local backup_count=0
|
||||
while IFS=: read -r conn_name conn_type conn_uuid conn_device; do
|
||||
if [ -n "$conn_name" ] && [ "$conn_type" != "loopback" ]; then
|
||||
local safe_name=$(echo "$conn_name" | tr ' /' '_-')
|
||||
local detail_file="$backup_dir/$CONNECTION_DETAILS_DIR/${safe_name}_${conn_uuid}.conf"
|
||||
|
||||
# 导出连接的完整配置
|
||||
if nmcli -f all connection show "$conn_uuid" > "$detail_file" 2>/dev/null; then
|
||||
info "已备份连接: $conn_name (UUID: $conn_uuid)"
|
||||
((backup_count++))
|
||||
|
||||
# 尝试导出为keyfile格式(如果支持)
|
||||
local keyfile="$backup_dir/$CONNECTION_DETAILS_DIR/${safe_name}_${conn_uuid}.keyfile"
|
||||
nmcli connection export "$conn_uuid" "$keyfile" 2>/dev/null || true
|
||||
else
|
||||
log_warn "备份连接 '$conn_name' 失败"
|
||||
fi
|
||||
fi
|
||||
done < <(nmcli -t -f NAME,TYPE,UUID,DEVICE connection show | grep -v ':loopback:')
|
||||
|
||||
# 备份网络设备信息
|
||||
nmcli device status > "$backup_dir/device_status.txt"
|
||||
ip addr show > "$backup_dir/ip_addresses.txt"
|
||||
ip route show > "$backup_dir/routes.txt"
|
||||
|
||||
# 尝试备份系统连接文件(如果存在)
|
||||
local system_conn_dir="/etc/NetworkManager/system-connections"
|
||||
if [ -d "$system_conn_dir" ] && [ "$(ls -A "$system_conn_dir" 2>/dev/null)" ]; then
|
||||
local sys_backup_dir="$backup_dir/system-connections"
|
||||
mkdir -p "$sys_backup_dir"
|
||||
cp -r "$system_conn_dir"/* "$sys_backup_dir/" 2>/dev/null
|
||||
info "已备份系统连接文件"
|
||||
fi
|
||||
|
||||
if [ "$backup_count" -gt 0 ]; then
|
||||
# 创建符号链接指向最新备份
|
||||
ln -sfn "$backup_dir" "$BACKUP_BASE_DIR/latest"
|
||||
log_success "备份完成!共备份 $backup_count 个连接配置。"
|
||||
|
||||
# 显示备份摘要
|
||||
info "备份摘要:"
|
||||
info "- 活动连接: $(wc -l < "$backup_dir/$ACTIVE_CONNS_LIST") 个"
|
||||
info "- 详细配置: $backup_count 个"
|
||||
info "- 备份位置: $backup_dir"
|
||||
else
|
||||
log_warn "未找到任何可备份的连接。"
|
||||
rm -rf "$backup_dir"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 3. 自动修复网络
|
||||
auto_fix() {
|
||||
log "启动网络自动修复流程..."
|
||||
if check_status; then
|
||||
log_success "网络已连接,无需修复。"
|
||||
return
|
||||
fi
|
||||
|
||||
log_warn "网络连接中断,将尝试自动修复。"
|
||||
|
||||
# 修复前先执行备份
|
||||
backup_config
|
||||
|
||||
log "正在尝试为所有物理网卡设置临时DHCP连接..."
|
||||
|
||||
# 获取所有物理网卡
|
||||
while IFS=: read -r device device_type state connection; do
|
||||
if [ "$device_type" = "ethernet" ] || [ "$device_type" = "wifi" ]; then
|
||||
if [ -n "$device" ] && [ "$device" != "lo" ]; then
|
||||
local temp_conn_name="temp-dhcp-$device"
|
||||
log "处理设备: $device (类型: $device_type, 状态: $state)"
|
||||
|
||||
# 先停用设备上的所有现有连接
|
||||
nmcli device disconnect "$device" 2>/dev/null
|
||||
|
||||
# 删除可能存在的旧临时连接
|
||||
nmcli connection delete "$temp_conn_name" 2>/dev/null
|
||||
|
||||
# 根据设备类型创建连接
|
||||
local conn_type="ethernet"
|
||||
if [ "$device_type" = "wifi" ]; then
|
||||
conn_type="wifi"
|
||||
fi
|
||||
|
||||
# 添加并激活新的临时DHCP连接
|
||||
if nmcli connection add type "$conn_type" ifname "$device" con-name "$temp_conn_name" autoconnect yes ipv4.method auto ipv6.method auto >/dev/null 2>&1; then
|
||||
info "为 $device 创建了临时DHCP连接 '$temp_conn_name'"
|
||||
# 激活连接
|
||||
if nmcli connection up "$temp_conn_name" >/dev/null 2>&1; then
|
||||
info "成功激活连接 '$temp_conn_name'"
|
||||
else
|
||||
log_warn "激活连接 '$temp_conn_name' 失败"
|
||||
fi
|
||||
else
|
||||
log_error "为 $device 创建DHCP连接失败"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done < <(nmcli -t -f DEVICE,TYPE,STATE,CONNECTION device status)
|
||||
|
||||
log "等待网络重新初始化 (10秒)..."
|
||||
sleep 10
|
||||
|
||||
log "再次检查网络状态..."
|
||||
check_status
|
||||
}
|
||||
|
||||
# 4. 智能恢复网络配置
|
||||
restore_config() {
|
||||
local backup_dir="$BACKUP_BASE_DIR/latest"
|
||||
if [ ! -d "$backup_dir" ] || [ ! -L "$backup_dir" ]; then
|
||||
log_error "找不到备份目录。请先执行备份(选项2)或修复(选项3)操作。"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local real_backup_dir=$(readlink -f "$backup_dir")
|
||||
log "将从以下备份中恢复: $real_backup_dir"
|
||||
|
||||
# 显示备份信息
|
||||
if [ -f "$real_backup_dir/$ACTIVE_CONNS_LIST" ]; then
|
||||
info "备份中的活动连接:"
|
||||
while IFS=: read -r name type uuid device; do
|
||||
info " - $name ($type) -> $device"
|
||||
done < "$real_backup_dir/$ACTIVE_CONNS_LIST"
|
||||
fi
|
||||
|
||||
# 尝试从系统连接文件恢复
|
||||
local sys_backup_dir="$real_backup_dir/system-connections"
|
||||
if [ -d "$sys_backup_dir" ] && [ "$(ls -A "$sys_backup_dir" 2>/dev/null)" ]; then
|
||||
log "发现系统连接文件备份,尝试恢复..."
|
||||
restore_from_system_files "$sys_backup_dir"
|
||||
else
|
||||
log "未找到系统连接文件,尝试从详细配置恢复..."
|
||||
restore_from_details "$real_backup_dir"
|
||||
fi
|
||||
|
||||
# 重新激活之前的连接
|
||||
log "正在重新激活之前的活动连接..."
|
||||
if [ -f "$real_backup_dir/$ACTIVE_CONNS_LIST" ]; then
|
||||
while IFS=: read -r conn_name conn_type conn_uuid conn_device; do
|
||||
if [ -n "$conn_name" ]; then
|
||||
info "尝试激活: $conn_name"
|
||||
if nmcli connection up "$conn_name" >/dev/null 2>&1; then
|
||||
info "✓ 成功激活: $conn_name"
|
||||
else
|
||||
log_warn "激活失败: $conn_name"
|
||||
fi
|
||||
fi
|
||||
done < "$real_backup_dir/$ACTIVE_CONNS_LIST"
|
||||
fi
|
||||
|
||||
log "等待网络重新连接 (8秒)..."
|
||||
sleep 8
|
||||
log_success "恢复过程完成!"
|
||||
check_status
|
||||
}
|
||||
|
||||
# 从系统文件恢复
|
||||
restore_from_system_files() {
|
||||
local sys_backup_dir="\$1"
|
||||
local system_conn_dir="/etc/NetworkManager/system-connections"
|
||||
|
||||
# 停止NetworkManager
|
||||
log "临时停止NetworkManager服务..."
|
||||
systemctl stop NetworkManager
|
||||
|
||||
# 备份当前配置
|
||||
local current_backup="/tmp/nm_current_backup_$(date +%s)"
|
||||
mkdir -p "$current_backup"
|
||||
if [ -d "$system_conn_dir" ]; then
|
||||
cp -r "$system_conn_dir"/* "$current_backup/" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 恢复配置文件
|
||||
mkdir -p "$system_conn_dir"
|
||||
cp -r "$sys_backup_dir"/* "$system_conn_dir/" 2>/dev/null
|
||||
chmod -R 600 "$system_conn_dir"/* 2>/dev/null
|
||||
|
||||
# 重启NetworkManager
|
||||
log "重新启动NetworkManager服务..."
|
||||
systemctl start NetworkManager
|
||||
sleep 5
|
||||
nmcli connection reload
|
||||
sleep 3
|
||||
|
||||
rm -rf "$current_backup"
|
||||
}
|
||||
|
||||
# 从详细配置恢复(显示信息供手动配置)
|
||||
restore_from_details() {
|
||||
local backup_dir="\$1"
|
||||
local details_dir="$backup_dir/$CONNECTION_DETAILS_DIR"
|
||||
|
||||
if [ ! -d "$details_dir" ]; then
|
||||
log_error "未找到详细配置备份"
|
||||
return 1
|
||||
fi
|
||||
|
||||
log_warn "系统连接文件备份不可用,显示配置信息供参考:"
|
||||
|
||||
for detail_file in "$details_dir"/*.conf; do
|
||||
if [ -f "$detail_file" ]; then
|
||||
local filename=$(basename "$detail_file" .conf)
|
||||
info "连接配置: $filename"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# 提取关键配置信息
|
||||
grep -E "^(connection\.|ipv4\.|ipv6\.|802-3-ethernet\.|wifi\.)" "$detail_file" | head -20
|
||||
echo "----------------------------------------"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# 5. 清理临时DHCP连接
|
||||
cleanup_temp_connections() {
|
||||
log "正在清理临时DHCP连接..."
|
||||
local cleanup_count=0
|
||||
|
||||
while IFS= read -r conn_name; do
|
||||
if [ -n "$conn_name" ]; then
|
||||
if nmcli connection delete "$conn_name" >/dev/null 2>&1; then
|
||||
info "已删除临时连接: $conn_name"
|
||||
((cleanup_count++))
|
||||
fi
|
||||
fi
|
||||
done < <(nmcli -t -f NAME connection show | grep "^temp-dhcp-")
|
||||
|
||||
if [ "$cleanup_count" -gt 0 ]; then
|
||||
log_success "清理完成,共删除 $cleanup_count 个临时连接。"
|
||||
else
|
||||
log "没有找到需要清理的临时连接。"
|
||||
fi
|
||||
}
|
||||
|
||||
# 6. 显示备份信息
|
||||
show_backup_info() {
|
||||
info "--- 备份信息 ---"
|
||||
if [ ! -d "$BACKUP_BASE_DIR" ]; then
|
||||
log_warn "备份目录不存在: $BACKUP_BASE_DIR"
|
||||
return
|
||||
fi
|
||||
|
||||
local backup_count=0
|
||||
for backup_dir in "$BACKUP_BASE_DIR"/20*; do
|
||||
if [ -d "$backup_dir" ]; then
|
||||
((backup_count++))
|
||||
local dir_name=$(basename "$backup_dir")
|
||||
local size=$(du -sh "$backup_dir" 2>/dev/null | cut -f1)
|
||||
info "备份 #$backup_count: $dir_name (大小: $size)"
|
||||
|
||||
# 显示备份内容摘要
|
||||
if [ -f "$backup_dir/$ACTIVE_CONNS_LIST" ]; then
|
||||
local conn_count=$(wc -l < "$backup_dir/$ACTIVE_CONNS_LIST")
|
||||
info " - 活动连接: $conn_count 个"
|
||||
fi
|
||||
|
||||
if [ -d "$backup_dir/$CONNECTION_DETAILS_DIR" ]; then
|
||||
local detail_count=$(ls -1 "$backup_dir/$CONNECTION_DETAILS_DIR"/*.conf 2>/dev/null | wc -l)
|
||||
info " - 详细配置: $detail_count 个"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$backup_count" -eq 0 ]; then
|
||||
log_warn "没有找到任何备份。"
|
||||
else
|
||||
info "总共找到 $backup_count 个备份。"
|
||||
|
||||
# 显示最新备份信息
|
||||
if [ -L "$BACKUP_BASE_DIR/latest" ]; then
|
||||
local latest_backup=$(readlink -f "$BACKUP_BASE_DIR/latest")
|
||||
info "最新备份: $(basename "$latest_backup")"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 7. 删除旧备份
|
||||
cleanup_old_backups() {
|
||||
local keep_days=7
|
||||
log "正在清理超过 $keep_days 天的旧备份..."
|
||||
|
||||
if [ ! -d "$BACKUP_BASE_DIR" ]; then
|
||||
log_warn "备份目录不存在,无需清理。"
|
||||
return
|
||||
fi
|
||||
|
||||
local deleted_count=0
|
||||
find "$BACKUP_BASE_DIR" -maxdepth 1 -type d -name "20*" -mtime +$keep_days | while read -r old_backup; do
|
||||
if [ -d "$old_backup" ]; then
|
||||
local backup_name=$(basename "$old_backup")
|
||||
rm -rf "$old_backup"
|
||||
info "已删除旧备份: $backup_name"
|
||||
((deleted_count++))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$deleted_count" -gt 0 ]; then
|
||||
log_success "清理完成,删除了 $deleted_count 个旧备份。"
|
||||
else
|
||||
log "没有找到需要清理的旧备份。"
|
||||
fi
|
||||
}
|
||||
|
||||
# 8. 高级网络诊断
|
||||
advanced_diagnosis() {
|
||||
info "--- 高级网络诊断 ---"
|
||||
|
||||
log "1. NetworkManager 服务状态:"
|
||||
systemctl status NetworkManager --no-pager -l
|
||||
|
||||
log "\n2. 网络设备详细信息:"
|
||||
nmcli device show
|
||||
|
||||
log "\n3. 所有连接配置:"
|
||||
nmcli connection show
|
||||
|
||||
log "\n4. 路由表:"
|
||||
ip route show table all
|
||||
|
||||
log "\n5. DNS 配置:"
|
||||
cat /etc/resolv.conf
|
||||
|
||||
log "\n6. 防火墙状态:"
|
||||
if command -v ufw >/dev/null 2>&1; then
|
||||
ufw status verbose
|
||||
elif command -v iptables >/dev/null 2>&1; then
|
||||
iptables -L -n
|
||||
else
|
||||
info "未找到防火墙工具"
|
||||
fi
|
||||
|
||||
log "\n7. 网络接口统计:"
|
||||
cat /proc/net/dev
|
||||
|
||||
log "\n8. 系统网络配置文件:"
|
||||
info "NetworkManager 主配置:"
|
||||
[ -f /etc/NetworkManager/NetworkManager.conf ] && cat /etc/NetworkManager/NetworkManager.conf
|
||||
|
||||
log "\n9. 最近的网络日志:"
|
||||
journalctl -u NetworkManager --no-pager -n 50
|
||||
}
|
||||
|
||||
# --- 主菜单和程序入口 ---
|
||||
|
||||
show_menu() {
|
||||
echo
|
||||
echo "=============================================="
|
||||
echo " Arch Linux NetworkManager 管理工具"
|
||||
echo "=============================================="
|
||||
echo "1. 检查网络状态"
|
||||
echo "2. 备份网络配置"
|
||||
echo "3. 自动修复网络"
|
||||
echo "4. 恢复网络配置"
|
||||
echo "5. 清理临时连接"
|
||||
echo "6. 显示备份信息"
|
||||
echo "7. 清理旧备份"
|
||||
echo "8. 高级网络诊断"
|
||||
echo "9. 退出"
|
||||
echo "=============================================="
|
||||
echo -n "请选择操作 (1-9): "
|
||||
}
|
||||
|
||||
main() {
|
||||
# 初始化
|
||||
pre_check
|
||||
mkdir -p "$BACKUP_BASE_DIR"
|
||||
touch "$LOG_FILE"
|
||||
|
||||
log_success "NetworkManager 管理脚本启动成功"
|
||||
|
||||
while true; do
|
||||
show_menu
|
||||
read -r choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
echo
|
||||
log "执行选项 1: 检查网络状态"
|
||||
check_status
|
||||
;;
|
||||
2)
|
||||
echo
|
||||
log "执行选项 2: 备份网络配置"
|
||||
backup_config
|
||||
;;
|
||||
3)
|
||||
echo
|
||||
log "执行选项 3: 自动修复网络"
|
||||
auto_fix
|
||||
;;
|
||||
4)
|
||||
echo
|
||||
log "执行选项 4: 恢复网络配置"
|
||||
restore_config
|
||||
;;
|
||||
5)
|
||||
echo
|
||||
log "执行选项 5: 清理临时连接"
|
||||
cleanup_temp_connections
|
||||
;;
|
||||
6)
|
||||
echo
|
||||
log "执行选项 6: 显示备份信息"
|
||||
show_backup_info
|
||||
;;
|
||||
7)
|
||||
echo
|
||||
log "执行选项 7: 清理旧备份"
|
||||
cleanup_old_backups
|
||||
;;
|
||||
8)
|
||||
echo
|
||||
log "执行选项 8: 高级网络诊断"
|
||||
advanced_diagnosis
|
||||
;;
|
||||
9)
|
||||
echo
|
||||
log_success "感谢使用 NetworkManager 管理工具!"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo
|
||||
log_error "无效选择,请输入 1-9 之间的数字。"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
echo "按 Enter 键继续..."
|
||||
read -r
|
||||
done
|
||||
}
|
||||
|
||||
# 脚本入口点
|
||||
if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
|
||||
main "$@"
|
||||
fi
|
||||
|
||||
@@ -1,15 +1,264 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# TMS工具集成菜单脚本
|
||||
# 功能: 网络检测、TMS工具管理
|
||||
#
|
||||
|
||||
echo "--- TMS工具 ---"
|
||||
# --- 颜色定义 ---
|
||||
C_RESET='\033[0m'
|
||||
C_RED='\033[0;31m'
|
||||
C_GREEN='\033[0;32m'
|
||||
C_YELLOW='\033[0;33m'
|
||||
C_BLUE='\033[0;34m'
|
||||
C_CYAN='\033[0;36m'
|
||||
C_BOLD='\033[1m'
|
||||
|
||||
echo "--- 网络检测 ---"
|
||||
# --- 全局变量 ---
|
||||
SCRIPT_DIR="/home/smart/.tms3/starter"
|
||||
NM_SCRIPT="nm_network_manager.sh"
|
||||
TMS_SCRIPT="bbttms.sh"
|
||||
TMS_URL="yuyujing.cn/data/sh/bbttms.sh"
|
||||
|
||||
echo "--- 局域网查询售票系统地址(凤凰佳影,辰星) ---"
|
||||
# --- 基础函数 ---
|
||||
print_header() {
|
||||
echo -e "${C_CYAN}${C_BOLD}"
|
||||
echo "=================================================="
|
||||
echo " TMS 工具集成菜单"
|
||||
echo "=================================================="
|
||||
echo -e "${C_RESET}"
|
||||
}
|
||||
|
||||
echo "--- TMS工具 ---"
|
||||
print_separator() {
|
||||
echo -e "${C_BLUE}--------------------------------------------------${C_RESET}"
|
||||
}
|
||||
|
||||
cd /home/smart/.tms3/starter
|
||||
wget -N yuyujing.cn/data/sh/bbttms.sh
|
||||
sh bbttms.sh
|
||||
log_info() { echo -e "${C_BLUE}[INFO]${C_RESET} $1"; }
|
||||
log_success() { echo -e "${C_GREEN}[SUCCESS]${C_RESET} $1"; }
|
||||
log_error() { echo -e "${C_RED}[ERROR]${C_RESET} $1"; }
|
||||
log_warn() { echo -e "${C_YELLOW}[WARN]${C_RESET} $1"; }
|
||||
|
||||
echo "--- END ---"
|
||||
# 检查必要的目录和文件
|
||||
check_environment() {
|
||||
if [ ! -d "$SCRIPT_DIR" ]; then
|
||||
log_error "目录不存在: $SCRIPT_DIR"
|
||||
read -p "是否创建目录? [y/N]: " create_dir
|
||||
if [[ "$create_dir" =~ ^[Yy]$ ]]; then
|
||||
mkdir -p "$SCRIPT_DIR"
|
||||
log_success "已创建目录: $SCRIPT_DIR"
|
||||
else
|
||||
log_error "无法继续,退出脚本。"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/$NM_SCRIPT" ]; then
|
||||
log_warn "网络管理脚本不存在: $SCRIPT_DIR/$NM_SCRIPT"
|
||||
log_info "请确保网络管理脚本已正确放置。"
|
||||
fi
|
||||
}
|
||||
|
||||
# --- 核心功能函数 ---
|
||||
|
||||
# 1. 外网检测和网络管理
|
||||
network_check() {
|
||||
print_separator
|
||||
log_info "启动外网检测..."
|
||||
print_separator
|
||||
|
||||
if [ -f "$SCRIPT_DIR/$NM_SCRIPT" ]; then
|
||||
cd "$SCRIPT_DIR" || {
|
||||
log_error "无法切换到目录: $SCRIPT_DIR"
|
||||
return 1
|
||||
}
|
||||
|
||||
# 检查是否需要sudo权限
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
log_info "网络管理需要管理员权限,将使用sudo..."
|
||||
sudo sh "$NM_SCRIPT"
|
||||
else
|
||||
sh "$NM_SCRIPT"
|
||||
fi
|
||||
else
|
||||
log_error "网络管理脚本不存在: $SCRIPT_DIR/$NM_SCRIPT"
|
||||
log_info "请先将网络管理脚本放置到正确位置。"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 2. 快速网络状态检查
|
||||
quick_network_check() {
|
||||
print_separator
|
||||
log_info "快速网络状态检查..."
|
||||
|
||||
# 检查网络接口状态
|
||||
echo -e "${C_BLUE}网络接口状态:${C_RESET}"
|
||||
ip addr show | grep -E "^[0-9]+:|inet " | sed 's/^/ /'
|
||||
|
||||
echo
|
||||
# 检查外网连接
|
||||
log_info "测试外网连接..."
|
||||
if ping -c 3 -W 3 8.8.8.8 >/dev/null 2>&1; then
|
||||
log_success "外网连接正常 (Google DNS 8.8.8.8)"
|
||||
elif ping -c 3 -W 3 1.1.1.1 >/dev/null 2>&1; then
|
||||
log_success "外网连接正常 (Cloudflare DNS 1.1.1.1)"
|
||||
elif ping -c 3 -W 3 114.114.114.114 >/dev/null 2>&1; then
|
||||
log_success "外网连接正常 (114 DNS)"
|
||||
else
|
||||
log_error "外网连接失败"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# 检查DNS解析
|
||||
log_info "测试DNS解析..."
|
||||
if nslookup baidu.com >/dev/null 2>&1; then
|
||||
log_success "DNS解析正常"
|
||||
else
|
||||
log_warn "DNS解析可能有问题"
|
||||
fi
|
||||
}
|
||||
|
||||
# 3. 下载并运行TMS工具
|
||||
run_tms_tool() {
|
||||
print_separator
|
||||
log_info "启动TMS工具..."
|
||||
print_separator
|
||||
|
||||
cd "$SCRIPT_DIR" || {
|
||||
log_error "无法切换到目录: $SCRIPT_DIR"
|
||||
return 1
|
||||
}
|
||||
|
||||
log_info "正在下载最新版本的TMS工具..."
|
||||
if wget -N "$TMS_URL" -O "$TMS_SCRIPT"; then
|
||||
log_success "TMS工具下载成功"
|
||||
|
||||
# 检查文件是否存在且可执行
|
||||
if [ -f "$TMS_SCRIPT" ]; then
|
||||
chmod +x "$TMS_SCRIPT"
|
||||
log_info "正在运行TMS工具..."
|
||||
sh "$TMS_SCRIPT"
|
||||
else
|
||||
log_error "下载的TMS工具文件不存在"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
log_error "TMS工具下载失败"
|
||||
log_info "请检查网络连接或URL是否正确: $TMS_URL"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 5. 一键执行(原脚本功能)
|
||||
one_click_run() {
|
||||
print_separator
|
||||
log_info "执行一键流程..."
|
||||
print_separator
|
||||
|
||||
# 1. 外网检测
|
||||
log_info "步骤1: 外网检测"
|
||||
if ! quick_network_check; then
|
||||
log_warn "网络检测发现问题,是否继续? [y/N]"
|
||||
read -r continue_choice
|
||||
if [[ ! "$continue_choice" =~ ^[Yy]$ ]]; then
|
||||
log_info "用户取消操作"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo
|
||||
# 2. 运行TMS工具
|
||||
log_info "步骤2: 运行TMS工具"
|
||||
run_tms_tool
|
||||
|
||||
print_separator
|
||||
log_success "一键流程执行完成"
|
||||
}
|
||||
|
||||
# 6. 显示系统信息
|
||||
show_system_info() {
|
||||
print_separator
|
||||
log_info "系统信息"
|
||||
print_separator
|
||||
|
||||
neofetch
|
||||
|
||||
echo -e "\n${C_BLUE}网络接口:${C_RESET}"
|
||||
ip link show | grep -E "^[0-9]+:" | sed 's/^/ /'
|
||||
|
||||
echo -e "\n${C_BLUE}脚本目录:${C_RESET}"
|
||||
echo " $SCRIPT_DIR"
|
||||
|
||||
echo -e "\n${C_BLUE}脚本文件状态:${C_RESET}"
|
||||
if [ -f "$SCRIPT_DIR/$NM_SCRIPT" ]; then
|
||||
echo -e " 网络管理脚本: ${C_GREEN}存在${C_RESET}"
|
||||
else
|
||||
echo -e " 网络管理脚本: ${C_RED}不存在${C_RESET}"
|
||||
fi
|
||||
|
||||
if [ -f "$SCRIPT_DIR/$TMS_SCRIPT" ]; then
|
||||
echo -e " TMS工具脚本: ${C_GREEN}存在${C_RESET}"
|
||||
echo " 最后修改: $(stat -c %y "$SCRIPT_DIR/$TMS_SCRIPT" 2>/dev/null | cut -d. -f1)"
|
||||
else
|
||||
echo -e " TMS工具脚本: ${C_YELLOW}未下载${C_RESET}"
|
||||
fi
|
||||
}
|
||||
|
||||
# --- 菜单显示 ---
|
||||
show_menu() {
|
||||
clear
|
||||
print_header
|
||||
|
||||
echo -e "${C_YELLOW}请选择操作:${C_RESET}"
|
||||
echo
|
||||
echo " 1. 外网检测和网络管理"
|
||||
echo " 2. 快速网络状态检查"
|
||||
echo " 3. 下载并运行TMS工具"
|
||||
echo " 4. 一键执行 (检测+TMS)"
|
||||
echo " 5. 显示系统信息"
|
||||
echo " 0. 退出"
|
||||
echo
|
||||
print_separator
|
||||
read -rp "请输入选择 [0-6]: " choice
|
||||
}
|
||||
|
||||
# --- 主函数 ---
|
||||
main() {
|
||||
# 环境检查
|
||||
check_environment
|
||||
|
||||
while true; do
|
||||
show_menu
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
network_check
|
||||
;;
|
||||
2)
|
||||
quick_network_check
|
||||
;;
|
||||
3)
|
||||
run_tms_tool
|
||||
;;
|
||||
4)
|
||||
one_click_run
|
||||
;;
|
||||
5)
|
||||
show_system_info
|
||||
;;
|
||||
0)
|
||||
print_separator
|
||||
log_success "感谢使用TMS工具集成菜单!"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
log_error "无效选择,请输入 0-6 之间的数字"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
read -p "按回车键继续..." -r
|
||||
done
|
||||
}
|
||||
|
||||
# --- 脚本入口 ---
|
||||
main "$@"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
title Arch Linux install medium (x86_64, UEFI)
|
||||
title BBTTMS Linux install medium (x86_64, UEFI)
|
||||
sort-key 01
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
title Arch Linux install medium (x86_64, UEFI) with speech
|
||||
title BBTTMS Linux install medium (x86_64, UEFI) with speech
|
||||
sort-key 02
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||
|
||||
@@ -51,13 +51,13 @@ timeout_style=menu
|
||||
|
||||
# Menu entries
|
||||
|
||||
menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
||||
menuentry "BBTTMS Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
||||
set gfxpayload=keep
|
||||
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=4G copytoram=n
|
||||
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
}
|
||||
|
||||
menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
||||
menuentry "BBTTMS Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
||||
set gfxpayload=keep
|
||||
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on cow_spacesize=4G copytoram=n
|
||||
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
|
||||
@@ -28,13 +28,13 @@ timeout_style=menu
|
||||
|
||||
# Menu entries
|
||||
|
||||
menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
||||
menuentry "BBTTMS Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
||||
set gfxpayload=keep
|
||||
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}"
|
||||
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
}
|
||||
|
||||
menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
||||
menuentry "BBTTMS Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
||||
set gfxpayload=keep
|
||||
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" accessibility=on
|
||||
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
|
||||
@@ -306,9 +306,12 @@ pipewire-alsa
|
||||
pipewire-jack
|
||||
pavucontrol
|
||||
|
||||
#服务器监测工具
|
||||
#服务器工具
|
||||
htop
|
||||
sysstat
|
||||
unhide
|
||||
gnome-disk-utility
|
||||
iftop
|
||||
nmap
|
||||
zip
|
||||
unzip
|
||||
|
||||
Reference in New Issue
Block a user