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
其中:gsub函数在提供的记录(即行)中搜索与正则表达式匹配的子串,并将其替换为指定的字符串。
awk
命令逐行读取mndp
文件。- 对于每一行,
gsub(/\t/ , "")
函数会删除所有制表符(\t
)。print $0
打印修改后的行。- 然后,这些修改后的行通过管道传递给
tar
命令。tar
命令使用-cf
选项创建一个名为mndp.tar
的归档文件。--files-from=/dev/stdin
选项告诉tar
命令从标准输入(即awk
命令的输出)中读取要归档的文件列表。