#!/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 "更新完成!"
|