1.通过数据库或其他方式将想要迁移的数据路径拼接放到一个文件中,如mndp
拼接sql如:
select '/data/miniodata' || tag || '/' || file_path from schema.table
其中:tag 和 file_path为我数据库中的两个字段,分别存储着文件夹名称和文件名称
2.将文件的全路径存储到一个文件中 mndp
如: echo "/data/miniodata/atou/look/file.png" > ./mndp
3.通过awk命令,将文件中的文件及路径遍历,然后通过tar将输出的内容分别打入一个压缩包
#如果文件中存在特殊符号需处理在打包
awk '{gsub(/\t/ , ""); print $0}' mndp | tar -cf mndp.tar --files-from=/dev/stdin
或
tar -cf mndp.tar --files-from=./mndp (文件路径)
其中:gsub函数在提供的记录(即行)中搜索与正则表达式匹配的子串,并将其替换为指定的字符串。
awk命令逐行读取mndp文件。- 对于每一行,
gsub(/\t/ , "")函数会删除所有制表符(\t)。print $0打印修改后的行。- 然后,这些修改后的行通过管道传递给
tar命令。tar命令使用-cf选项创建一个名为mndp.tar的归档文件。--files-from=/dev/stdin选项告诉tar命令从标准输入(即awk命令的输出)中读取要归档的文件列表。
4.将打包文件拷贝到目标服务器,解压即可!(需注意不要覆盖原有的minio数据)
tar -xf mndp.tar -C /test
98. 其他命令备注
awk -F '/' '{ for (i=1;i<NF;++) printf("%s", $i); print "" }' mnd > mndp
#将mnd文件中的文件夹路径截取出来
mnd文件格式:/data/miniodata/20241010/1/test.png
mndp文件格式:/data/miniodata/20241010/1/
99.批量创建文件夹
awk '{command = "mkdir -p " $0 ; system(command)}' ./mndp
#将mndp文件中的文件夹路径逐个创建出来
数据迁移与文件打包压缩技术详解
1554

被折叠的 条评论
为什么被折叠?



