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/ , "")
函数