#!/bin/bash # 文件存储根目录 FILE_ROOT="/javaWork/product-inventory-management/file/prod" # 输出SQL文件名 OUTPUT_SQL="update_blob_file_size.sql" # 数据库配置 DB_USER="root" DB_PASS="xd@123456.." DB_NAME="product_inventory_management" echo "开始扫描目录: $FILE_ROOT" echo "-- 更新文件大小 SQL" > "$OUTPUT_SQL" echo "-- 生成时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$OUTPUT_SQL" echo "" >> "$OUTPUT_SQL" # 扫描目录下所有文件并生成更新SQL find "$FILE_ROOT" -type f | while read filepath; do filesize=$(stat -c%s "$filepath" 2>/dev/null || echo "0") filename=$(basename "$filepath") filename_escaped=$(echo "$filename" | sed "s/'/''/g") echo "UPDATE storage_blob SET byte_size = $filesize WHERE uid_filename = '$filename_escaped';" >> "$OUTPUT_SQL" done echo "SQL文件已生成: $OUTPUT_SQL" echo "正在执行SQL更新..." docker exec -i mysql mysql -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" < "$OUTPUT_SQL" echo "更新完成!"