This commit is contained in:
zj
2025-12-17 01:30:41 +08:00
parent 83e7608aec
commit a768ff575d
20 changed files with 954 additions and 15 deletions

96
tms-bbt-config/.bashrc Executable file
View File

@@ -0,0 +1,96 @@
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# 基础别名
alias ls='ls --color=auto'
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep --color=auto'
# 安全操作
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# 导航别名
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# 系统信息
alias df='df -h'
alias du='du -h'
alias dus='du -sh * | sort -nr'
alias free='free -h'
# Git 快捷方式
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
alias tms='sh /home/smart/.tms3/starter/tms-tools.sh'
alias rtms='sh /home/smart/.tms3/starter/restart'
# 文件大小查看别名
alias size='ls -lahSr' # 简单版本
alias sizes='du -sh * | sort -h' # 准确版本
alias sizeall='du -sh .[!.]* * 2>/dev/null | sort -h' # 包含隐藏文件
# 详细版本,显示文件权限和大小
alias sizedetail='du -sh * | sort -h | while read s n; do ls -ld "$n" | awk '\''{printf "%-10s %-5s %-8s ", $1, $3, $4}'\''; echo "$s $n"; done'
# 文件大小查看函数
fsize() {
local path="${1:-.}" # 默认当前目录
local depth="${2:-0}" # 目录深度
echo "=== 文件大小统计: $path ==="
if [ "$depth" -eq 0 ]; then
# 只显示当前目录下的文件
du -sh "$path"/* 2>/dev/null | sort -h
else
# 显示指定深度的目录结构
find "$path" -maxdepth "$depth" -type f -exec du -sh {} + 2>/dev/null | sort -h
fi
}
# 快捷别名
alias sz='fsize . 0'
alias sz1='fsize . 1'
alias sz2='fsize . 2'
# 环境变量
export EDITOR=vim
export VISUAL=vim
export HISTSIZE=10000
export HISTFILESIZE=20000
# Wine 环境变量 - 添加到 PATH
export WINE_HOME="/home/smart/wine"
export PATH="$WINE_HOME/bin:$PATH"
# 彩色提示符
PS1='\[\033[01;33m\]\t\[\033[00m\] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 实用函数
mkcd() { mkdir -p "$1" && cd "$1"; }
findf() { find . -name "$1" -type f 2>/dev/null; }
# 检查 wine 是否可用
wine-check() {
if command -v wine >/dev/null 2>&1; then
echo "✓ Wine is available: $(which wine)"
wine --version
else
echo "✗ Wine not found in PATH"
echo "Current PATH: $PATH"
fi
}

BIN
tms-bbt-config/BBTTMS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

514
tms-bbt-config/bbttms.sh Executable file
View 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

View 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

View File

@@ -0,0 +1,26 @@
#!/bin/bash
random_str() {
local randomlength=16
local str="gg-"
local chars="abcdefghijklmnopqrstuvwxyz0123456789"
for ((i=0; i<randomlength; i++)); do
local rand_index=$((RANDOM % ${#chars}))
str+="${chars:$rand_index:1}"
done
echo "$str"
}
NEW_HOSTNAME=$(random_str)
echo "$NEW_HOSTNAME" > /etc/hostname
cat <<EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 $NEW_HOSTNAME
EOF
echo "Hostname set to: $NEW_HOSTNAME"

View File

@@ -0,0 +1,21 @@
#!/bin/bash
# 定义参数映射
declare -A param_map=(
["--content-ratio"]="--container-ratio"
# 添加更多映射
)
# 构建新的参数列表
new_args=()
for arg in "$@"; do
if [[ -n "${param_map[$arg]}" ]]; then
new_args+=("${param_map[$arg]}")
else
new_args+=("$arg")
fi
done
# 运行原始的 dcpomatic2_create 命令
/usr/bin/dcpomatic2_create_original "${new_args[@]}"

68
tms-bbt-config/ffmpeg Normal file
View File

@@ -0,0 +1,68 @@
#!/bin/bash
# ==============================================================================
# FFmpeg Wrapper Script for Volume Detection
#
# This script acts as a wrapper for the real ffmpeg binary.
# It's designed to handle cases where 'ffmpeg -filter:a volumedetect'
# doesn't output 'mean_volume:' (e.g., for image files or videos without audio).
#
# If 'mean_volume:' is not found in the real ffmpeg's stderr output,
# it injects 'mean_volume: 0 dB' into the stderr stream.
#
# Setup:
# 1. Rename your original ffmpeg binary.
# Example: mv /usr/bin/ffmpeg /usr/bin/ffmpeg.bin
# 2. Place this script at the original ffmpeg's path.
# Example: cp this_script.sh /usr/bin/ffmpeg
# 3. Make this script executable.
# Example: chmod +x /usr/bin/ffmpeg
# 4. Ensure REAL_FFMPEG_BINARY points to your renamed ffmpeg binary.
# ==============================================================================
# --- Configuration ---
# Point this to the actual ffmpeg binary after you've renamed it.
# For example: /usr/bin/ffmpeg.bin or /usr/local/bin/ffmpeg.bin
REAL_FFMPEG_BINARY="/usr/bin/ffmpeg.bin"
# ---------------------
# Check if the real ffmpeg binary exists
if [ ! -f "$REAL_FFMPEG_BINARY" ]; then
echo "Error: Real ffmpeg binary not found at $REAL_FFMPEG_BINARY" >&2
echo "Please ensure you've renamed your original ffmpeg (e.g., to ffmpeg.bin)" >&2
echo "and updated the REAL_FFMPEG_BINARY path in this script." >&2
exit 1
fi
# Create a temporary file to capture stderr from the real ffmpeg command
TEMP_ERR_FILE=$(mktemp)
# Ensure the temporary file is deleted when the script exits
trap "rm -f $TEMP_ERR_FILE" EXIT
# Execute the real ffmpeg with all arguments passed to this script.
# Redirect its stdout to /dev/null as volumedetect output is on stderr.
# Redirect its stderr to our temporary file.
"$REAL_FFMPEG_BINARY" "$@" >/dev/null 2>"$TEMP_ERR_FILE"
# Capture the exit code of the real ffmpeg command
REAL_FFMPEG_EXIT_CODE=$?
# Read the content of the temporary stderr file
FFMPEG_STDERR_CONTENT=$(cat "$TEMP_ERR_FILE")
# Check if "mean_volume:" is present in the captured stderr content
if echo "$FFMPEG_STDERR_CONTENT" | grep -q "mean_volume:"; then
# If found, print the original stderr content to our stderr
echo "$FFMPEG_STDERR_CONTENT" >&2
else
# If not found, print the original stderr content
echo "$FFMPEG_STDERR_CONTENT" >&2
# Then inject the default mean_volume line
echo "[ffmpeg-wrapper] Injected: mean_volume: 0 dB (original output lacked volume info)" >&2 # For debugging
echo "mean_volume: 0 dB" >&2
fi
# Exit with the same exit code as the real ffmpeg command
exit $REAL_FFMPEG_EXIT_CODE

12
tms-bbt-config/hostname Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
# 系统信息函数
if [ $# -eq 0 ]; then
hostnamectl --static
else
command hostnamectl "$@"
fi

View 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

View File

@@ -0,0 +1,94 @@
#!/usr/bin/env bash
SOFT_PATH="/home/smart"
SOFT_NAME="SmartOrganizer"
SERVICE_SCRIPT="SOService"
SERVICE_NAME="SOS"
#https://bbt-static-beta.oss-cn-beijing.aliyuncs.com/smart/organizer/SmartOrganizer.zip
wget -q --no-check-certificate "https://bbt-static-beta.oss-cn-beijing.aliyuncs.com/smart/organizer/SmartOrganizer.zip" -O ${SOFT_PATH}/${SOFT_NAME}.zip
#cp -r -f /home/smart/install8.5/SmartOrganizer /home/smart/
if [[ -z ${SOFT_PATH}/${SOFT_NAME}.zip ]]; then
echo "Download failed!"
exit 2
fi
echo "Download successed"
unzip -o -qq ${SOFT_PATH}/${SOFT_NAME}.zip -d ${SOFT_PATH}/${SOFT_NAME}
echo "Unpacking..."
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/SO*
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/bin/*
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/common/*/*
chmod 700 ${SOFT_PATH}/${SOFT_NAME}/scripts/*
mkdir -p ${SOFT_PATH}/${SOFT_NAME}/downloads ${SOFT_PATH}/${SOFT_NAME}/tasks
chmod 777 ${SOFT_PATH}/${SOFT_NAME}/downloads ${SOFT_PATH}/${SOFT_NAME}/tasks
rm -f ${SOFT_PATH}/${SOFT_NAME}.zip
echo "DONE!"
echo "Remove source package"
if [[ -f ${SOFT_PATH}/${SOFT_NAME}/init.sh ]];then
echo "Initializing..."
/bin/bash ${SOFT_PATH}/${SOFT_NAME}/init.sh
rm -f ${SOFT_PATH}/${SOFT_NAME}/init.sh
echo "Initialize Completed!"
fi
if [[ -f ${SOFT_PATH}/${SOFT_NAME}/upgrade.sh ]];then
rm -f ${SOFT_PATH}/${SOFT_NAME}/upgrade.sh
echo "Unused script clear Completed!"
fi
# service and restart
getSystemVersion()
{
releasetmp=`cat /etc/redhat-release | awk -Frelease '{print $2}' | awk -F. '{print $1}' | awk '{print $1}'`
echo $releasetmp
}
syncSoftwareStatus()
{
hostname=$(hostname)
name="SmartOrganizer"
version=$(cat ${SOFT_PATH}/${SOFT_NAME}/.version)
echo "Sync software status: ${hostname}:${name}:${version}"
curl -sS -D /dev/null -o /dev/null -H "hostname:${hostname}" "https://c.baobaot.com/api/software/sync_status?name=${name}&version=${version}"
}
syncSoftwareStatus
if [[ $(getSystemVersion) -eq 6 ]]; then
echo "current system version is 6"
service SOS stop
rm -f /etc/init.d/${SERVICE_NAME}
ln -s ${SOFT_PATH}/${SOFT_NAME}/${SERVICE_SCRIPT} /etc/init.d/${SERVICE_NAME}
chkconfig --add ${SERVICE_NAME}
chkconfig ${SERVICE_NAME} on
service SOS start
else
echo "current system version is > 6"
systemctl stop ${SERVICE_SCRIPT}
systemctl disable ${SERVICE_SCRIPT}
rm -f /usr/lib/systemd/system/${SERVICE_SCRIPT}.service
cat > /usr/lib/systemd/system/${SERVICE_SCRIPT}.service <<EOF
[Unit]
Description=SOService
[Service]
Type=forking
Restart=on-failure
RestartSec=5s
ExecStart=/bin/bash /home/smart/SmartOrganizer/SOService start
ExecStop=/bin/bash /home/smart/SmartOrganizer/SOService stop
ExecRestart=/bin/bash /home/smart/SmartOrganizer/SOService restart
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable ${SERVICE_SCRIPT}
systemctl start ${SERVICE_SCRIPT}
fi

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Categories=TMS
Terminal=true
Icon[zh_CN]=/home/smart/.tms3/starter/314.png
Name[zh_CN]=TMS工具
Exec=sudo sh /home/smart/.tms3/starter/tms-tools.sh
Name=TMS-TOOLS
Icon=/home/smart/.tms3/starter/314.png

264
tms-bbt-config/tms-tools.sh Normal file
View File

@@ -0,0 +1,264 @@
#!/bin/bash
#
# TMS工具集成菜单脚本
# 功能: 网络检测、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'
# --- 全局变量 ---
SCRIPT_DIR="/home/smart/.tms3/starter"
NM_SCRIPT="nm_network_manager.sh"
TMS_SCRIPT="bbttms.sh"
TMS_URL="yuyujing.cn/data/sh/bbttms.sh"
# --- 基础函数 ---
print_header() {
echo -e "${C_CYAN}${C_BOLD}"
echo "=================================================="
echo " TMS 工具集成菜单"
echo "=================================================="
echo -e "${C_RESET}"
}
print_separator() {
echo -e "${C_BLUE}--------------------------------------------------${C_RESET}"
}
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"; }
# 检查必要的目录和文件
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 "$@"

902
tms-bbt-config/tms.desktop Normal file
View File

@@ -0,0 +1,902 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=/usr/lib/firefox/firefox %u
Terminal=false
X-MultipleArgs=false
Icon=firefox
StartupWMClass=firefox
DBusActivatable=false
Categories=GNOME;GTK;Network;WebBrowser;TMS;
MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/x-xpinstall;application/xhtml+xml;application/xml;audio/flac;audio/ogg;audio/webm;image/avif;image/gif;image/jpeg;image/png;image/svg+xml;image/webp;text/html;text/xml;video/ogg;video/webm;x-scheme-handler/chrome;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/mailto;
StartupNotify=true
Actions=new-window;new-private-window;open-profile-manager;
Name=TMS
Name[ach]=Firefox
Name[af]=Firefox
Name[an]=Firefox
Name[ar]=Firefox
Name[ast]=Firefox
Name[az]=Firefox
Name[be]=Firefox
Name[bg]=Firefox
Name[bn]=Firefox
Name[br]=Firefox
Name[brx]=Firefox
Name[bs]=Firefox
Name[ca]=Firefox
Name[ca_valencia]=Firefox
Name[cak]=Firefox
Name[ckb]=Firefox
Name[cs]=Firefox
Name[cy]=Firefox
Name[da]=Firefox
Name[de]=Firefox
Name[dsb]=Firefox
Name[el]=Firefox
Name[en_CA]=Firefox
Name[en_GB]=Firefox
Name[eo]=Firefox
Name[es_AR]=Firefox
Name[es_CL]=Firefox
Name[es_ES]=Firefox
Name[es_MX]=Firefox
Name[et]=Firefox
Name[eu]=Firefox
Name[fa]=Firefox
Name[ff]=Firefox
Name[fi]=Firefox
Name[fr]=Firefox
Name[fur]=Firefox
Name[fy_NL]=Firefox
Name[ga_IE]=Firefox
Name[gd]=Firefox
Name[gl]=Firefox
Name[gn]=Firefox
Name[gu_IN]=Firefox
Name[he]=Firefox
Name[hi_IN]=Firefox
Name[hr]=Firefox
Name[hsb]=Firefox
Name[hu]=Firefox
Name[hy_AM]=Firefox
Name[hye]=Firefox
Name[ia]=Firefox
Name[id]=Firefox
Name[is]=Firefox
Name[it]=Firefox
Name[ja]=Firefox
Name[ka]=Firefox
Name[kab]=Firefox
Name[kk]=Firefox
Name[km]=Firefox
Name[kn]=Firefox
Name[ko]=Firefox
Name[lij]=Firefox
Name[lo]=Firefox
Name[lt]=Firefox
Name[ltg]=Firefox
Name[lv]=Firefox
Name[meh]=Firefox
Name[mk]=Firefox
Name[mr]=Firefox
Name[ms]=Firefox
Name[my]=Firefox
Name[nb_NO]=Firefox
Name[ne_NP]=Firefox
Name[nl]=Firefox
Name[nn_NO]=Firefox
Name[oc]=Firefox
Name[pa_IN]=Firefox
Name[pl]=Firefox
Name[pt_BR]=Firefox
Name[pt_PT]=Firefox
Name[rm]=Firefox
Name[ro]=Firefox
Name[ru]=Firefox
Name[sat]=Firefox
Name[sc]=Firefox
Name[sco]=Firefox
Name[si]=Firefox
Name[sk]=Firefox
Name[skr]=Firefox
Name[sl]=Firefox
Name[son]=Firefox
Name[sq]=Firefox
Name[sr]=Firefox
Name[sv_SE]=Firefox
Name[szl]=Firefox
Name[ta]=Firefox
Name[te]=Firefox
Name[tg]=Firefox
Name[th]=Firefox
Name[tl]=Firefox
Name[tr]=Firefox
Name[trs]=Firefox
Name[uk]=Firefox
Name[ur]=Firefox
Name[uz]=Firefox
Name[vi]=Firefox
Name[wo]=Firefox
Name[xh]=Firefox
Name[zh_CN]=TMS
Name[zh_TW]=TMS
Comment=Browse the World Wide Web
Comment[ach]=Browse the World Wide Web
Comment[af]=Browse the World Wide Web
Comment[an]=Browse the World Wide Web
Comment[ar]=تصفح شبكة الوِب العالمية
Comment[ast]=Browse the World Wide Web
Comment[az]=Browse the World Wide Web
Comment[be]=Аглядайце Сеціва
Comment[bg]=Разгледайте световната мрежа
Comment[bn]=Browse the World Wide Web
Comment[br]=Ergerzhout ar World Wide Web
Comment[brx]=Browse the World Wide Web
Comment[bs]=Pretražujte World Wide Web
Comment[ca]=Navegeu pel Web
Comment[ca_valencia]=Browse the World Wide Web
Comment[cak]=Tok chupam Word Wide Web
Comment[ckb]=Browse the World Wide Web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[cy]=Pori'r We Fyd Eang
Comment[da]=Brug internettet
Comment[de]=Im Internet surfen
Comment[dsb]=Pśeglědajśo World Wide Web
Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό
Comment[en_CA]=Browse the World Wide Web
Comment[en_GB]=Browse the World Wide Web
Comment[eo]=Retumi en la reto
Comment[es_AR]=Navegar la World Wide Web
Comment[es_CL]=Navegar por la World Wide Web
Comment[es_ES]=Navegar por la web
Comment[es_MX]=Navegar por la web
Comment[et]=Browse the World Wide Web
Comment[eu]=Arakatu World Wide Web-a
Comment[fa]=Browse the World Wide Web
Comment[ff]=Browse the World Wide Web
Comment[fi]=Selaa Internetiä
Comment[fr]=Naviguer sur le Web
Comment[fur]=Navighe sul Web
Comment[fy_NL]=Navigearje op it wrâldwide web
Comment[ga_IE]=Browse the World Wide Web
Comment[gd]=Rùraich lìon na cruinne
Comment[gl]=Navegar pola World Wide Web
Comment[gn]=Eikundaha World Wide Web rupi
Comment[gu_IN]=Browse the World Wide Web
Comment[he]=גלישה באינטרנט
Comment[hi_IN]=Browse the World Wide Web
Comment[hr]=Pregledaj World Wide Web
Comment[hsb]=Přehladajće World Wide Web
Comment[hu]=Böngésszen a világhálón
Comment[hy_AM]=Զննի՛ր համաշխարհային սարդոստայնը
Comment[hye]=Browse the World Wide Web
Comment[ia]=Navigar sur le Web
Comment[id]=Jelajahi World Wide Web
Comment[is]=Vafraðu um veraldarvefinn
Comment[it]=Naviga sul Web
Comment[ja]=World Wide Web をブラウジング
Comment[ka]=მსოფლიო ქსელთან წვდომა
Comment[kab]=Inig deg Web
Comment[kk]=Ғаламторды шолу
Comment[km]=Browse the World Wide Web
Comment[kn]=Browse the World Wide Web
Comment[ko]=월드 와이드 웹 탐색
Comment[lij]=Browse the World Wide Web
Comment[lo]=ທ່ອງເວັບທົ່ວໂລກ
Comment[lt]=Browse the World Wide Web
Comment[ltg]=Browse the World Wide Web
Comment[lv]=Pārlūkojiet globālo tīmekli
Comment[meh]=Browse the World Wide Web
Comment[mk]=Browse the World Wide Web
Comment[mr]=Browse the World Wide Web
Comment[ms]=Browse the World Wide Web
Comment[my]=Browse the World Wide Web
Comment[nb_NO]=Surf på nettet
Comment[ne_NP]=Browse the World Wide Web
Comment[nl]=Navigeren op het wereldwijde web
Comment[nn_NO]=Surf på nettet
Comment[oc]=Navegar pel Web
Comment[pa_IN]=ਵਰਲਡ ਵਾਈਡ ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਕਰੋ
Comment[pl]=Przeglądaj Internet
Comment[pt_BR]=Navegue na World Wide Web
Comment[pt_PT]=Navegar na Internet
Comment[rm]=Navigar en il web
Comment[ro]=Browse the World Wide Web
Comment[ru]=Доступ в Интернет
Comment[sat]=World Wide Web ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ
Comment[sc]=Nàviga su Web
Comment[sco]=Browse the World Wide Web
Comment[si]=ලෝක ව්‍යාප්ත වියමන පිරික්සන්න
Comment[sk]=Prehľadávať web (www)
Comment[skr]=ورلڈ وائیڈ ویب براؤز کرو
Comment[sl]=Brskanje po svetovnem spletu
Comment[son]=Browse the World Wide Web
Comment[sq]=Shfletoni në World Wide Web
Comment[sr]=Истражите интернет
Comment[sv_SE]=Surfa på webben
Comment[szl]=Browse the World Wide Web
Comment[ta]=Browse the World Wide Web
Comment[te]=Browse the World Wide Web
Comment[tg]=Ба шабакаи ҷаҳонии Интернет дастрасӣ пайдо намоед
Comment[th]=เรียกดูเวิลด์ไวด์เว็บ
Comment[tl]=Browse the World Wide Web
Comment[tr]=Webde gezin
Comment[trs]=Gāchē nu ngà World Wide Web
Comment[uk]=Переглядайте всесвітню мережу
Comment[ur]=Browse the World Wide Web
Comment[uz]=Browse the World Wide Web
Comment[vi]=Duyệt web trên toàn thế giới
Comment[wo]=Browse the World Wide Web
Comment[xh]=Browse the World Wide Web
Comment[zh_CN]=浏览万维网
Comment[zh_TW]=瀏覽全球資訊網
GenericName=Web Browser
GenericName[ach]=Web Browser
GenericName[af]=Web Browser
GenericName[an]=Web Browser
GenericName[ar]=متصفح الإنترنت
GenericName[ast]=Web Browser
GenericName[az]=Web Browser
GenericName[be]=Вэб-браўзер
GenericName[bg]=Уеб браузър
GenericName[bn]=Web Browser
GenericName[br]=Merdeer Web
GenericName[brx]=Web Browser
GenericName[bs]=Web pretraživač
GenericName[ca]=Navegador web
GenericName[ca_valencia]=Web Browser
GenericName[cak]=Web Okik'amaya'l
GenericName[ckb]=Web Browser
GenericName[cs]=Webový prohlížeč
GenericName[cy]=Porwr Gwe
GenericName[da]=Webbrowser
GenericName[de]=Internet-Browser
GenericName[dsb]=Webwobglědowak
GenericName[el]=Πρόγραμμα περιήγησης
GenericName[en_CA]=Web Browser
GenericName[en_GB]=Web Browser
GenericName[eo]=Retumilo
GenericName[es_AR]=Navegador web
GenericName[es_CL]=Navegador Web
GenericName[es_ES]=Navegador web
GenericName[es_MX]=Navegador Web
GenericName[et]=Web Browser
GenericName[eu]=Web nabigatzailea
GenericName[fa]=Web Browser
GenericName[ff]=Web Browser
GenericName[fi]=Verkkoselain
GenericName[fr]=Navigateur web
GenericName[fur]=Navigadôr Web
GenericName[fy_NL]=Webbrowser
GenericName[ga_IE]=Web Browser
GenericName[gd]=Brabhsair-lìn
GenericName[gl]=Navegador web
GenericName[gn]=Ñanduti Kundahára
GenericName[gu_IN]=Web Browser
GenericName[he]=דפדפן אינטרנט
GenericName[hi_IN]=Web Browser
GenericName[hr]=Web preglednik
GenericName[hsb]=Webwobhladowak
GenericName[hu]=Webböngésző
GenericName[hy_AM]=Վեբ դիտարկիչ
GenericName[hye]=Web Browser
GenericName[ia]=Navigator web
GenericName[id]=Peramban Web
GenericName[is]=Vafri
GenericName[it]=Browser web
GenericName[ja]=ウェブブラウザー
GenericName[ka]=ბრაუზერი
GenericName[kab]=Iminig web
GenericName[kk]=Веб-браузері
GenericName[km]=Web Browser
GenericName[kn]=Web Browser
GenericName[ko]=웹 브라우저
GenericName[lij]=Navegatô Web
GenericName[lo]=ຕົວ​ທ່ອງ​ເວັບ​ເວັບ​ໄຊ​ຕ​໌
GenericName[lt]=Web Browser
GenericName[ltg]=Web Browser
GenericName[lv]=Tīmekļa pārlūks
GenericName[meh]=Web Browser
GenericName[mk]=Web Browser
GenericName[mr]=Web Browser
GenericName[ms]=Web Browser
GenericName[my]=Web Browser
GenericName[nb_NO]=Nettleser
GenericName[ne_NP]=Web Browser
GenericName[nl]=Webbrowser
GenericName[nn_NO]=Nettlesar
GenericName[oc]=Navegador Web
GenericName[pa_IN]=ਵੈੱਬ ਬਰਾਊਜ਼ਰ
GenericName[pl]=Przeglądarka internetowa
GenericName[pt_BR]=Navegador web
GenericName[pt_PT]=Navegador Web
GenericName[rm]=Navigatur web
GenericName[ro]=Web Browser
GenericName[ru]=Веб-браузер
GenericName[sat]=ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ
GenericName[sc]=Navigadore web
GenericName[sco]=Web Browser
GenericName[si]=වියමන අතිරික්සුව
GenericName[sk]=Webový prehliadač
GenericName[skr]=ویب براؤزر
GenericName[sl]=Spletni brskalnik
GenericName[son]=Web Browser
GenericName[sq]=Shfletues
GenericName[sr]=Веб прегледач
GenericName[sv_SE]=Webbläsare
GenericName[szl]=Web Browser
GenericName[ta]=Web Browser
GenericName[te]=Web Browser
GenericName[tg]=Браузери веб
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tl]=Web Browser
GenericName[tr]=Web Tarayıcısı
GenericName[trs]=Web riña gāchē nu
GenericName[uk]=Браузер
GenericName[ur]=Web Browser
GenericName[uz]=Web Browser
GenericName[vi]=Trình duyệt web
GenericName[wo]=Web Browser
GenericName[xh]=Web Browser
GenericName[zh_CN]=Web 浏览器
GenericName[zh_TW]=網頁瀏覽器
Keywords=Internet;WWW;Browser;Web;Explorer;
Keywords[ach]=Internet;WWW;Browser;Web;Explorer;
Keywords[af]=Internet;WWW;Browser;Web;Explorer;
Keywords[an]=Internet;WWW;Browser;Web;Explorer;
Keywords[ar]=Internet;WWW;Browser;Web;Explorer;
Keywords[ast]=Internet;WWW;Browser;Web;Explorer;
Keywords[az]=Internet;WWW;Browser;Web;Explorer;
Keywords[be]=Internet;WWW;Browser;Web;Explorer;
Keywords[bg]=Internet;WWW;Browser;Web;Explorer;
Keywords[bn]=Internet;WWW;Browser;Web;Explorer;
Keywords[br]=Internet;WWW;Merdeer;Web;Ergerzhout;
Keywords[brx]=Internet;WWW;Browser;Web;Explorer;
Keywords[bs]=Internet;WWW;Pretraživač;Web;Istraživač;
Keywords[ca]=Internet;WWW;Browser;Web;Explorador;Navegador;
Keywords[ca_valencia]=Internet;WWW;Browser;Web;Explorer;
Keywords[cak]=K'amaya'l;WWW;Okik'amaya'l;Kanob'äl;
Keywords[ckb]=Internet;WWW;Browser;Web;Explorer;
Keywords[cs]=internet;WWW;prohlížeč;web;
Keywords[cy]=Rhyngrwyd;WWW;Porwr;Gwe;Archwiliwr;
Keywords[da]=Internet;WWW;Browser;Nettet;Explorer;
Keywords[de]=Internet;WWW;Browser;Web;Explorer;
Keywords[dsb]=Internet;WWW;wobglědowak;Web;Explorer;
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Ιστός;Ίντερνετ;
Keywords[en_CA]=Internet;WWW;Browser;Web;Explorer;
Keywords[en_GB]=Internet;WWW;Browser;Web;Explorer;
Keywords[eo]=Interreto;Retumilo;TTT;Teksaĵo;Reto;Internet;WWW;Browser;Web;Explorer;
Keywords[es_AR]=Internet;WWW;Navegador;Web;Explorador;
Keywords[es_CL]=Internet;WWW;Navegador;Web;Explorador;
Keywords[es_ES]=Internet;WWW;Navegador;Web;Explorador;
Keywords[es_MX]=Internet;WWW;Navegador;Web;Explorador;
Keywords[et]=Internet;WWW;Browser;Web;Explorer;
Keywords[eu]=Internet;WWW;Nabigatzailea;Web;Arakatzailea;
Keywords[fa]=Internet;WWW;Browser;Web;Explorer;
Keywords[ff]=Internet;WWW;Browser;Web;Explorer;
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;netti;webbi;selain;
Keywords[fr]=Internet;WWW;Navigateur;Web;Explorer;
Keywords[fur]=Internet;WWW;Browser;Navigadôr;Web;Esploradôr;Explorer;
Keywords[fy_NL]=Ynternet;WWW;Browser;Web;Ferkenner;
Keywords[ga_IE]=Internet;WWW;Browser;Web;Explorer;
Keywords[gd]=Internet;WWW;Browser;Web;Explorer;eadar-lìon;brabhsair;brobhsair;lìon;taisgealaiche;
Keywords[gl]=Internet;WWW;Navegador;Web;Explorador;
Keywords[gn]=Internet;WWW;Browser;Web;Explorer;
Keywords[gu_IN]=Internet;WWW;Browser;Web;Explorer;
Keywords[he]=אינטרנט;WWW;דפדפן;רשת;סייר;מרשתת;
Keywords[hi_IN]=Internet;WWW;Browser;Web;Explorer;
Keywords[hr]=Internet;WWW;Preglednik;Web;Istraživač;
Keywords[hsb]=Internet;WWW;wobhladowak;Web;Explorer;
Keywords[hu]=Internet;WWW;Böngésző;Web;Világháló;
Keywords[hy_AM]=Համացանց,WWW,Զննիչ,Վեբ,Ցանցախույզ:
Keywords[hye]=Internet;WWW;Browser;Web;Explorer;
Keywords[ia]=Internet;WWW;Navigator;Web;Explorator;
Keywords[id]=Internet;WWW;Browser;Web;Explorer;
Keywords[is]=Internet;WWW; Vafri; Vefur; Explorer;
Keywords[it]=Internet;WWW;Browser;Web;Explorer;Navigatore;
Keywords[ja]=Internet;WWW;Browser;Web;Explorer;インターネット;ブラウザー;ウェブ;
Keywords[ka]=ინტერნეტი;WWW;ბრაუზერი;ქსელი;ქსელთან წვდომა;
Keywords[kab]=Internet;WWW;Browser;Web;Explorer;
Keywords[kk]=Internet;WWW;Browser;Web;Explorer;Интернет;Ғаламтор;Браузер;Желі;Шолғыш;
Keywords[km]=Internet;WWW;Browser;Web;Explorer;
Keywords[kn]=Internet;WWW;Browser;Web;Explorer;
Keywords[ko]=인터넷;브라우저;웹;탐색기;Internet;WWW;Browser;Web;Explorer;
Keywords[lij]=Internet;WWW;Browser;Web;Explorer;Navegatô;
Keywords[lo]=Internet;WWW;Browser;Web;Explorer;
Keywords[lt]=Internet;WWW;Browser;Web;Explorer;
Keywords[ltg]=Internet;WWW;Browser;Web;Explorer;
Keywords[lv]=Internets;WWW;Pārlūkprogramma;Tīmeklis;
Keywords[meh]=Internet;WWW;Browser;Web;Explorer;
Keywords[mk]=Internet;WWW;Browser;Web;Explorer;
Keywords[mr]=Internet;WWW;Browser;Web;Explorer;
Keywords[ms]=Internet;WWW;Browser;Web;Explorer;
Keywords[my]=Internet;WWW;Browser;Web;Explorer;
Keywords[nb_NO]=Internett;WWW;Nettleser;Web;Utforsker;
Keywords[ne_NP]=Internet;WWW;Browser;Web;Explorer;
Keywords[nl]=Internet;WWW;Browser;Web;Verkenner;
Keywords[nn_NO]=Internett;WWW;Nettlesar;Web;Utforskar;
Keywords[oc]=Internet;WWW;Navegador;Navigador;Navegator;Navigator;Web;Explorer;
Keywords[pa_IN]=ਇੰਟਰਨੈੱਟ;WWW;ਬਰਾਊਜ਼ਰ;ਵੈੱਬ;ਐਕਸਪਲਰੋਰ;ਵੈਬ;ਇੰਟਰਨੈਟ;
Keywords[pl]=Internet;WWW;Przeglądarka;Browser;Wyszukiwarka;Web;Sieć;Explorer;Eksplorer;Strony;Witryny;internetowe;
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorer;Navegador;
Keywords[pt_PT]=Internet;WWW;Navegador;Web;Explorador;
Keywords[rm]=Internet;WWW;Browser;Web;Explorer;navigatur;
Keywords[ro]=Internet;WWW;Browser;Web;Explorer;
Keywords[ru]=Сеть;Интернет;Браузер;Доступ в Интернет;
Keywords[sat]=Internet;WWW;Browser;Web;Explorer;
Keywords[sc]=Internet;WWW;Navigadore;Web;Explorer;
Keywords[sco]=Internet;WWW;Browser;Web;Explorer;
Keywords[si]=අන්තර්ජාලය;අතිරික්සුව;පිරික්සන්න;ගවේශකය;Internet;WWW;Browser;Web;Explorer;
Keywords[sk]=Internet;WWW;Prehliadač;Web;Prieskumník;
Keywords[skr]=Internet;WWW;Browser;Web;Explorer;
Keywords[sl]=internet;www;brskalnik;splet;
Keywords[son]=Internet;WWW;Browser;Web;Explorer;
Keywords[sq]=Internet;WWW;Shfletues;Web;Eksplorues;
Keywords[sr]=Internet;WWW;Browser;Web;Explorer;
Keywords[sv_SE]=Internet;WWW;Webbläsare;Webb;Utforskare;
Keywords[szl]=Internet;WWW;Browser;Web;Explorer;
Keywords[ta]=Internet;WWW;Browser;Web;Explorer;
Keywords[te]=Internet;WWW;Browser;Web;Explorer;
Keywords[tg]=Интернет;WWW;Браузер;Сомона;Ҷустуҷӯгар;
Keywords[th]=อินเทอร์เน็ต;เบราว์เซอร์;เว็บ;Internet;WWW;Browser;Web;Explorer;
Keywords[tl]=Internet;WWW;Browser;Web;Explorer;
Keywords[tr]=Internet;WWW;Browser;Web;Explorer;İnternet;Tarayıcı;
Keywords[trs]=Internet;WWW;Browser;Web;Explorer;
Keywords[uk]=Інтернет;WWW;Браузер;Веб;Переглядач;
Keywords[ur]=Internet;WWW;Browser;Web;Explorer;
Keywords[uz]=Internet;WWW;Browser;Web;Explorer;
Keywords[vi]=Internet;WWW;Trình duyệt;Web;Duyệt web;
Keywords[wo]=Internet;WWW;Browser;Web;Explorer;
Keywords[xh]=Internet;WWW;Browser;Web;Explorer;
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;
Keywords[zh_TW]=網際網路;網路;瀏覽器;網頁;上網;Internet;WWW;Browser;Web;Explorer;
X-GNOME-FullName=Firefox Web Browser
X-GNOME-FullName[ach]=Firefox Web Browser
X-GNOME-FullName[af]=Firefox Web Browser
X-GNOME-FullName[an]=Firefox Web Browser
X-GNOME-FullName[ar]=متصفح Firefox
X-GNOME-FullName[ast]=Firefox Web Browser
X-GNOME-FullName[az]=Firefox Web Browser
X-GNOME-FullName[be]=Вэб-браўзер Firefox
X-GNOME-FullName[bg]=Firefox Уеб браузър
X-GNOME-FullName[bn]=Firefox Web Browser
X-GNOME-FullName[br]=Merdeer Web Firefox
X-GNOME-FullName[brx]=Firefox Web Browser
X-GNOME-FullName[bs]=Firefox web pretraživač
X-GNOME-FullName[ca]=Navegador web Firefox
X-GNOME-FullName[ca_valencia]=Firefox Web Browser
X-GNOME-FullName[cak]=Firefox Web Browser
X-GNOME-FullName[ckb]=Firefox Web Browser
X-GNOME-FullName[cs]=Webový prohlížeč Firefox
X-GNOME-FullName[cy]=Porwr Gwe Firefox
X-GNOME-FullName[da]=Firefox-browser
X-GNOME-FullName[de]=Firefox-Web-Browser
X-GNOME-FullName[dsb]=Webwobglědowak Firefox
X-GNOME-FullName[el]=Πρόγραμμα περιήγησης Firefox
X-GNOME-FullName[en_CA]=Firefox Web Browser
X-GNOME-FullName[en_GB]=Firefox Web Browser
X-GNOME-FullName[eo]=Retumilo Firefox
X-GNOME-FullName[es_AR]=Navegador web Firefox
X-GNOME-FullName[es_CL]=Navegador web Firefox
X-GNOME-FullName[es_ES]=Navegador web Firefox
X-GNOME-FullName[es_MX]=Navegador web Firefox
X-GNOME-FullName[et]=Firefox Web Browser
X-GNOME-FullName[eu]=Firefox web nabigatzailea
X-GNOME-FullName[fa]=Firefox Web Browser
X-GNOME-FullName[ff]=Firefox Web Browser
X-GNOME-FullName[fi]=Firefox-verkkoselain
X-GNOME-FullName[fr]=Navigateur web Firefox
X-GNOME-FullName[fur]=Navigadôr web Firefox
X-GNOME-FullName[fy_NL]=Firefox-webbrowser
X-GNOME-FullName[ga_IE]=Firefox Web Browser
X-GNOME-FullName[gd]=Brabhsair-lìn Firefox
X-GNOME-FullName[gl]=Navegador web Firefox
X-GNOME-FullName[gn]=Firefox Ñanduti Kundahára
X-GNOME-FullName[gu_IN]=Firefox Web Browser
X-GNOME-FullName[he]=דפדפן אינטרנט Firefox
X-GNOME-FullName[hi_IN]=Firefox वेब ब्राउज़र
X-GNOME-FullName[hr]=Firefox web preglednik
X-GNOME-FullName[hsb]=Webwobhladowak Firefox
X-GNOME-FullName[hu]=Firefox webböngésző
X-GNOME-FullName[hy_AM]=Firefox վեբ դիտարկիչ
X-GNOME-FullName[hye]=Firefox Web Browser
X-GNOME-FullName[ia]=Navigator web Firefox
X-GNOME-FullName[id]=Firefox Peramban Web
X-GNOME-FullName[is]=Firefox-vafri
X-GNOME-FullName[it]=Browser web Firefox
X-GNOME-FullName[ja]=Firefox ウェブブラウザー
X-GNOME-FullName[ka]=Firefox-ბრაუზერი
X-GNOME-FullName[kab]=Iminig web Firefox
X-GNOME-FullName[kk]=Firefox веб-браузері
X-GNOME-FullName[km]=Firefox Web Browser
X-GNOME-FullName[kn]=Firefox Web Browser
X-GNOME-FullName[ko]=Firefox 웹 브라우저
X-GNOME-FullName[lij]=Firefox Navegatô Web
X-GNOME-FullName[lo]=Firefox ເວັບບຣາວເຊີ
X-GNOME-FullName[lt]=Firefox Web Browser
X-GNOME-FullName[ltg]=Firefox Web Browser
X-GNOME-FullName[lv]=Firefox tīmekļa pārlūks
X-GNOME-FullName[meh]=Firefox Web Browser
X-GNOME-FullName[mk]=Firefox Web Browser
X-GNOME-FullName[mr]=Firefox Web Browser
X-GNOME-FullName[ms]=Firefox Web Browser
X-GNOME-FullName[my]=Firefox Web Browser
X-GNOME-FullName[nb_NO]=Firefox-nettleser
X-GNOME-FullName[ne_NP]=Firefox Web Browser
X-GNOME-FullName[nl]=Firefox-webbrowser
X-GNOME-FullName[nn_NO]=Firefox-nettlesar
X-GNOME-FullName[oc]=Navegador web Firefox
X-GNOME-FullName[pa_IN]=Firefox ਵੈੱਬ ਬਰਾਊਜ਼ਰ
X-GNOME-FullName[pl]=Przeglądarka Firefox
X-GNOME-FullName[pt_BR]=Navegador web Firefox
X-GNOME-FullName[pt_PT]=Navegador Web Firefox
X-GNOME-FullName[rm]=Navigatur-web Firefox
X-GNOME-FullName[ro]=Firefox Web Browser
X-GNOME-FullName[ru]=Веб-браузер Firefox
X-GNOME-FullName[sat]=Firefox ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ
X-GNOME-FullName[sc]=Navigadore web Firefox
X-GNOME-FullName[sco]=Firefox Web Browser
X-GNOME-FullName[si]=Firefox අතිරික්සුව
X-GNOME-FullName[sk]=Webový prehliadač Firefox
X-GNOME-FullName[skr]=Firefox ویب براؤزر
X-GNOME-FullName[sl]=Spletni brskalnik Firefox
X-GNOME-FullName[son]=Firefox Web Browser
X-GNOME-FullName[sq]=Shfletuesi Firefox
X-GNOME-FullName[sr]=Firefox веб прегледач
X-GNOME-FullName[sv_SE]=Firefox webbläsare
X-GNOME-FullName[szl]=Firefox Web Browser
X-GNOME-FullName[ta]=Firefox Web Browser
X-GNOME-FullName[te]=Firefox Web Browser
X-GNOME-FullName[tg]=Браузери интернетии «Firefox»
X-GNOME-FullName[th]=เว็บเบราว์เซอร์ Firefox
X-GNOME-FullName[tl]=Firefox Web Browser
X-GNOME-FullName[tr]=Firefox Web Tarayıcısı
X-GNOME-FullName[trs]=Firefox Web riña gāchē nu
X-GNOME-FullName[uk]=Браузер Firefox
X-GNOME-FullName[ur]=Firefox Web Browser
X-GNOME-FullName[uz]=Firefox Web Browser
X-GNOME-FullName[vi]=Trình duyệt Web Firefox
X-GNOME-FullName[wo]=Firefox Web Browser
X-GNOME-FullName[xh]=Firefox Web Browser
X-GNOME-FullName[zh_CN]=Firefox 浏览器
X-GNOME-FullName[zh_TW]=Firefox 網頁瀏覽器
[Desktop Action new-window]
Exec=/usr/lib/firefox/firefox --new-window %u
Name=New Window
Name[ach]=New Window
Name[af]=New Window
Name[an]=New Window
Name[ar]=نافذة جديدة
Name[ast]=New Window
Name[az]=New Window
Name[be]=Новае акно
Name[bg]=Нов прозорец
Name[bn]=New Window
Name[br]=Prenestr nevez
Name[brx]=New Window
Name[bs]=Novi prozor
Name[ca]=Finestra nova
Name[ca_valencia]=New Window
Name[cak]=K'ak'a' Tzuwäch
Name[ckb]=New Window
Name[cs]=Nové okno
Name[cy]=Ffenestr Newydd
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[dsb]=Nowe wokno
Name[el]=Νέο παράθυρο
Name[en_CA]=New Window
Name[en_GB]=New Window
Name[eo]=Nova fenestro
Name[es_AR]=Nueva ventana
Name[es_CL]=Nueva ventana
Name[es_ES]=Nueva ventana
Name[es_MX]=Nueva ventana
Name[et]=New Window
Name[eu]=Leiho berria
Name[fa]=New Window
Name[ff]=New Window
Name[fi]=Uusi ikkuna
Name[fr]=Nouvelle fenêtre
Name[fur]=Gnûf barcon
Name[fy_NL]=Nij finster
Name[ga_IE]=New Window
Name[gd]=Uinneag ùr
Name[gl]=Nova xanela
Name[gn]=Ovetã pyahu
Name[gu_IN]=New Window
Name[he]=חלון חדש
Name[hi_IN]=New Window
Name[hr]=Novi prozor
Name[hsb]=Nowe wokno
Name[hu]=Új ablak
Name[hy_AM]=Նոր պատուհան
Name[hye]=New Window
Name[ia]=Nove fenestra
Name[id]=Jendela Baru
Name[is]=Nýr gluggi
Name[it]=Nuova finestra
Name[ja]=新しいウィンドウ
Name[ka]=ახალი ფანჯარა
Name[kab]=Asfaylu amaynut
Name[kk]=Жаңа терезе
Name[km]=New Window
Name[kn]=New Window
Name[ko]=새 창
Name[lij]=Neuvo Barcon
Name[lo]=ວິນໂດໃໝ່
Name[lt]=New Window
Name[ltg]=New Window
Name[lv]=Jauns logs
Name[meh]=New Window
Name[mk]=New Window
Name[mr]=New Window
Name[ms]=New Window
Name[my]=New Window
Name[nb_NO]=Nytt vindu
Name[ne_NP]=New Window
Name[nl]=Nieuw venster
Name[nn_NO]=Nytt vindauge
Name[oc]=Fenèstra novèla
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
Name[pl]=Nowe okno
Name[pt_BR]=Nova janela
Name[pt_PT]=Nova janela
Name[rm]=Nova fanestra
Name[ro]=New Window
Name[ru]=Новое окно
Name[sat]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ
Name[sc]=Ventana noa
Name[sco]=New Window
Name[si]=නව කවුළුව
Name[sk]=Nové okno
Name[skr]=نویں ونڈو
Name[sl]=Novo okno
Name[son]=New Window
Name[sq]=Dritare e Re
Name[sr]=Нови прозор
Name[sv_SE]=Nytt fönster
Name[szl]=New Window
Name[ta]=New Window
Name[te]=New Window
Name[tg]=Равзанаи нав
Name[th]=หน้าต่างใหม่
Name[tl]=New Window
Name[tr]=Yeni pencere
Name[trs]=Bēntanâ nākàa
Name[uk]=Нове вікно
Name[ur]=New Window
Name[uz]=New Window
Name[vi]=Cửa sổ mới
Name[wo]=New Window
Name[xh]=New Window
Name[zh_CN]=新建窗口
Name[zh_TW]=開新視窗
[Desktop Action new-private-window]
Exec=/usr/lib/firefox/firefox --private-window %u
Name=New Private Window
Name[ach]=New Private Window
Name[af]=New Private Window
Name[an]=New Private Window
Name[ar]=نافذة خاصة جديدة
Name[ast]=New Private Window
Name[az]=New Private Window
Name[be]=Новае прыватнае акно
Name[bg]=Нов личен прозорец
Name[bn]=New Private Window
Name[br]=Prenestr prevez nevez
Name[brx]=New Private Window
Name[bs]=Novi privatni prozor
Name[ca]=Finestra privada nova
Name[ca_valencia]=New Private Window
Name[cak]=K'ak'a' Ichinan Tzuwäch
Name[ckb]=New Private Window
Name[cs]=Nové anonymní okno
Name[cy]=Ffenestr Breifat Newydd
Name[da]=Nyt privat vindue
Name[de]=Neues privates Fenster
Name[dsb]=Nowe priwatne wokno
Name[el]=Νέο ιδιωτικό παράθυρο
Name[en_CA]=New Private Window
Name[en_GB]=New Private Window
Name[eo]=Nova privata fenestro
Name[es_AR]=Nueva ventana privada
Name[es_CL]=Nueva ventana privada
Name[es_ES]=Nueva ventana privada
Name[es_MX]=Nueva ventana privada
Name[et]=New Private Window
Name[eu]=Leiho pribatu berria
Name[fa]=New Private Window
Name[ff]=New Private Window
Name[fi]=Uusi yksityinen ikkuna
Name[fr]=Nouvelle fenêtre privée
Name[fur]=Gnûf barcon privât
Name[fy_NL]=Nij priveefinster
Name[ga_IE]=New Private Window
Name[gd]=Uinneag phrìobhaideach ùr
Name[gl]=Nova xanela privada
Name[gn]=Ovetã ñemi pyahu
Name[gu_IN]=New Private Window
Name[he]=חלון פרטי חדש
Name[hi_IN]=New Private Window
Name[hr]=Novi privatni prozor
Name[hsb]=Nowe priwatne wokno
Name[hu]=Új privát ablak
Name[hy_AM]=Նոր գաղտնի պատուհան
Name[hye]=New Private Window
Name[ia]=Nove fenestra private
Name[id]=Jendela Mode Pribadi Baru
Name[is]=Nýr huliðsgluggi
Name[it]=Nuova finestra anonima
Name[ja]=新しいプライベートウィンドウ
Name[ka]=ახალი პირადი ფანჯარა
Name[kab]=Asfaylu amaynut n tunigin tusligt
Name[kk]=Жаңа жекелік терезе
Name[km]=New Private Window
Name[kn]=New Private Window
Name[ko]=새 사생활 보호 창
Name[lij]=Neuvo Barcon Privòu
Name[lo]=ວິນໂດສ່ວນຕົວໃໝ່
Name[lt]=New Private Window
Name[ltg]=New Private Window
Name[lv]=Jauns privātais logs
Name[meh]=New Private Window
Name[mk]=New Private Window
Name[mr]=New Private Window
Name[ms]=New Private Window
Name[my]=New Private Window
Name[nb_NO]=Nytt privat vindu
Name[ne_NP]=New Private Window
Name[nl]=Nieuw privévenster
Name[nn_NO]=Nytt privat vindauge
Name[oc]=Fenèstra privada novèla
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
Name[pl]=Nowe okno prywatne
Name[pt_BR]=Nova janela privativa
Name[pt_PT]=Nova janela privada
Name[rm]=Nova fanestra privata
Name[ro]=New Private Window
Name[ru]=Новое приватное окно
Name[sat]=ᱱᱟᱶᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱣᱤᱱᱰᱳ
Name[sc]=Ventana privada noa
Name[sco]=New Private Window
Name[si]=නව පෞද්. කවුළුව
Name[sk]=Nové súkromné okno
Name[skr]=نویں نجی ونڈو
Name[sl]=Novo zasebno okno
Name[son]=New Private Window
Name[sq]=Dritare e Re Private
Name[sr]=Нови приватни прозор
Name[sv_SE]=Nytt privat fönster
Name[szl]=New Private Window
Name[ta]=New Private Window
Name[te]=New Private Window
Name[tg]=Равзанаи хусусии нав
Name[th]=หน้าต่างส่วนตัวใหม่
Name[tl]=New Private Window
Name[tr]=Yeni gizli pencere
Name[trs]=Bēntanâ huì nākàa
Name[uk]=Приватне вікно
Name[ur]=New Private Window
Name[uz]=New Private Window
Name[vi]=Cửa sổ riêng tư mới
Name[wo]=New Private Window
Name[xh]=New Private Window
Name[zh_CN]=新建隐私窗口
Name[zh_TW]=開新隱私視窗
[Desktop Action open-profile-manager]
Exec=/usr/lib/firefox/firefox --ProfileManager
Name=Open Profile Manager
Name[ach]=Open Profile Manager
Name[af]=Open Profile Manager
Name[an]=Open Profile Manager
Name[ar]=افتح مدير الملف الشخصي
Name[ast]=Open Profile Manager
Name[az]=Open Profile Manager
Name[be]=Адкрыць менеджар профіляў
Name[bg]=Отваряне на мениджъра на профили
Name[bn]=Open Profile Manager
Name[br]=Digeriñ an ardoer aeladoù
Name[brx]=Open Profile Manager
Name[bs]=Otvori Menadžera profila
Name[ca]=Obre el gestor de perfils
Name[ca_valencia]=Open Profile Manager
Name[cak]=Open Profile Manager
Name[ckb]=Open Profile Manager
Name[cs]=Otevřete Správce profilů
Name[cy]=Agorwch y Rheolwr Proffil
Name[da]=Åbn profilhåndtering
Name[de]=Profilverwaltung öffnen
Name[dsb]=Profilowy zastojnik wócyniś
Name[el]=Άνοιγμα Διαχείρισης προφίλ
Name[en_CA]=Open Profile Manager
Name[en_GB]=Open Profile Manager
Name[eo]=Malfermi administranton de profiloj
Name[es_AR]=Abrir administrador de perfiles
Name[es_CL]=Abrir administrador de perfiles
Name[es_ES]=Abrir administrador de perfiles
Name[es_MX]=Abrir administrador de perfiles
Name[et]=Open Profile Manager
Name[eu]=Ireki profilen kudeatzailea
Name[fa]=Open Profile Manager
Name[ff]=Open Profile Manager
Name[fi]=Avaa profiilien hallinta
Name[fr]=Ouvrir le gestionnaire de profils
Name[fur]=Vierç gjestôr profîi
Name[fy_NL]=Profylbehearder iepenje
Name[ga_IE]=Open Profile Manager
Name[gd]=Fosgail manaidsear nam pròifilean
Name[gl]=Abrir o xestor de perfís
Name[gn]=Embojuruja mbaete ñangarekoha
Name[gu_IN]=Open Profile Manager
Name[he]=פתיחת מנהל הפרופילים
Name[hi_IN]=Open Profile Manager
Name[hr]=Otvori upravljač profila
Name[hsb]=Zrjadowak profilow wočinić
Name[hu]=Profilkezelő megnyitása
Name[hy_AM]=Բացեք պրոֆիլի կառավարիչը
Name[hye]=Open Profile Manager
Name[ia]=Aperir le gestor de profilo
Name[id]=Buka Pengelola Profil
Name[is]=Opna umsýslu notandasniða
Name[it]=Apri gestore profili
Name[ja]=プロファイルマネージャーを開く
Name[ka]=პროფილის მმართველის გახსნა
Name[kab]=Ldi amsefrak n umaɣnu
Name[kk]=Профильдер бақарушысын ашу
Name[km]=Open Profile Manager
Name[kn]=Open Profile Manager
Name[ko]=프로필 관리자 열기
Name[lij]=Open Profile Manager
Name[lo]=ເປີດຕົວຈັດການໂປຣໄຟລ໌
Name[lt]=Open Profile Manager
Name[ltg]=Open Profile Manager
Name[lv]=Atvērt profilu pārvaldnieku
Name[meh]=Open Profile Manager
Name[mk]=Open Profile Manager
Name[mr]=Open Profile Manager
Name[ms]=Open Profile Manager
Name[my]=Open Profile Manager
Name[nb_NO]=Åpne profilbehandler
Name[ne_NP]=Open Profile Manager
Name[nl]=Profielbeheerder openen
Name[nn_NO]=Opne profilhandsaming
Name[oc]=Dobrir lo gestionari de perfils
Name[pa_IN]=ਪਰੋਫ਼ਾਈਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ
Name[pl]=Menedżer profili
Name[pt_BR]=Abrir gerenciador de perfis
Name[pt_PT]=Abrir o Gestor de Perfis
Name[rm]=Avrir l'administraziun da profils
Name[ro]=Open Profile Manager
Name[ru]=Открыть менеджер профилей
Name[sat]=ᱢᱮᱫᱦᱟᱸ ᱢᱮᱱᱮᱡᱚᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ
Name[sc]=Aberi su gestore de profilos
Name[sco]=Open Profile Manager
Name[si]=පැතිකඩ කළමනාකරු අරින්න
Name[sk]=Otvoriť Správcu profilov
Name[skr]=پروفائل منیجر کھولو
Name[sl]=Odpri upravitelja profilov
Name[son]=Open Profile Manager
Name[sq]=Hapni Përgjegjës Profilesh
Name[sr]=Отворите управљач профила
Name[sv_SE]=Öppna Profilhanteraren
Name[szl]=Open Profile Manager
Name[ta]=Open Profile Manager
Name[te]=Open Profile Manager
Name[tg]=Кушодани мудири профилҳо
Name[th]=เปิดตัวจัดการโปรไฟล์
Name[tl]=Open Profile Manager
Name[tr]=Profil yöneticisini aç
Name[trs]=Sa nīkāj ñuūnj nej perfî huā nìnï̀nj ïn
Name[uk]=Відкрити менеджер профілів
Name[ur]=Open Profile Manager
Name[uz]=Open Profile Manager
Name[vi]=Mở trình quản lý hồ sơ
Name[wo]=Open Profile Manager
Name[xh]=Open Profile Manager
Name[zh_CN]=打开配置文件管理器
Name[zh_TW]=開啟設定檔管理員

BIN
tms-bbt-config/unzipKDM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,62 @@
#!/bin/bash
# 定义保存编码的文件路径
CONFIG_FILE="$HOME/.my_key_encoding" # 建议放在用户主目录下的隐藏文件,避免与脚本混淆
# 检查是否存在已保存的编码
if [ -f "$CONFIG_FILE" ]; then
# 如果文件存在,读取编码
KEY_ENCODING=$(cat "$CONFIG_FILE")
echo "使用已保存的密钥编码: $KEY_ENCODING"
else
# 如果文件不存在,提示用户输入并保存
read -p "首次运行,请输入密钥编码 (例如: 35054321): " USER_INPUT_ENCODING
# 简单验证输入是否为空
if [ -z "$USER_INPUT_ENCODING" ]; then
echo "错误: 未输入密钥编码。脚本退出。"
exit 1
fi
KEY_ENCODING="$USER_INPUT_ENCODING"
echo "$KEY_ENCODING" > "$CONFIG_FILE"
echo "密钥编码 '$KEY_ENCODING' 已保存,下次运行将自动使用此编码。"
fi
# 开始解压操作
echo "开始解压文件..."
cd /home/smart/下载/
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/
echo "已处理 /home/smart/下载/ 中的ZIP文件。"
cd /home/smart/Downloads/
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/
echo "已处理 /home/smart/Downloads/ 中的ZIP文件。"
cd /media/kdm/
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/
echo "已处理 /media/kdm/ 中的ZIP文件。"
cd /tmp/
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/
echo "已处理 /media/kdm/ 中的ZIP文件。"
echo "解压操作完成。"
echo "删除密钥压缩包..."
# 使用之前获取或保存的 KEY_ENCODING 变量
find /media/kdm/ -name "${KEY_ENCODING}*.zip" -delete
find /home/smart/下载/ -name "${KEY_ENCODING}*.zip" -delete
find /home/smart/Downloads/ -name "${KEY_ENCODING}*.zip" -delete
echo "密钥压缩包删除完成。"
sleep 3
echo "刷新密钥..."
# 登录并刷新密钥,保持原样
curl -X POST -d 'userName=admin&userPassword=admin' -c /home/smart/cookie.txt http://127.0.0.1:8080/SmartTMS_S3/LoginController/login.do 2>&1 >/dev/null
curl http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b /home/smart/cookie.txt 2>&1 >/dev/null
echo "刷新成功。"
sleep 5
echo "脚本执行完毕。"

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Categories=TMS
Terminal=true
Icon[zh_CN]=/home/smart/unzipKDM.png
Name[zh_CN]=解压密钥
Exec=sh /home/smart/unzipKDMs.sh
Name=unzipkdm
Icon=/home/smart/unzipKDM.png