#!/bin/bash COOKIE_FILE="/home/smart/cookie.txt" echo "正在登录 SmartTMS_S3 系统以获取会话..." curl -s -X POST -d 'userName=admin&userPassword=admin' -c "$COOKIE_FILE" http://127.0.0.1:8080/SmartTMS_S3/LoginController/login.do >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "错误: 登录 SmartTMS_S3 失败。请检查服务是否运行或网络连接。" rm -f "$COOKIE_FILE" # 清理可能不完整的cookie文件 exit 1 fi echo "登录成功。" echo "正在获取编码..." JSON_RESPONSE=$(curl -s -X POST -b "$COOKIE_FILE" 'http://127.0.0.1:8080/SmartTMS_S3/SettingManagementController/queryCinemaModel.do') if [ $? -ne 0 ] || [ -z "$JSON_RESPONSE" ]; then echo "错误: 无法获取系统配置信息或返回为空。检查tms是否启动" rm -f "$COOKIE_FILE" exit 1 fi KEY_ENCODING=$(echo "$JSON_RESPONSE" | sed -n 's/.*"result":{[^}]*"code":"\([^"]*\)".*/\1/p') if [ -z "$KEY_ENCODING" ]; then echo "错误: 无法从接口响应中提取到有效的密钥编码。检查配置中是否填写影院编码" rm -f "$COOKIE_FILE" exit 1 fi echo "已成功获取影院编码: $KEY_ENCODING" echo "开始解压密钥文件..." declare -a DIRS=("/home/smart/下载/" "/home/smart/Downloads/" "/media/kdm/" "/tmp/") TARGET_DIR="/media/kdm/" for dir in "${DIRS[@]}"; do echo "正在处理目录: $dir 中的ZIP文件..." find "$dir" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -print0 | xargs -0 -r -n1 unzip -o -d "$TARGET_DIR" if [ $? -ne 0 ]; then echo "警告: 在 $dir 中解压文件时可能出现问题,或没有找到匹配的文件。" fi done echo "解压操作完成。" echo "删除密钥压缩包..." for dir in "${DIRS[@]}"; do echo "正在删除 $dir 中的 ${KEY_ENCODING}*.zip 文件..." find "$dir" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -delete done echo "正在删除 /media/kdm/ 中的 ${KEY_ENCODING}*.zip 文件..." find "$TARGET_DIR" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -delete echo "密钥压缩包删除完成。" sleep 3 echo "刷新密钥..." curl -s http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b "$COOKIE_FILE" >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "错误: 刷新密钥失败。" else echo "刷新成功。" fi sleep 5 rm -f "$COOKIE_FILE" echo "已清理临时cookie文件。" echo "脚本执行完毕。"