1、将需要打包的文件生成到列表文件,tar 时用于--files-from 参数。find 路劲 -type f -name '*2*.mp3' > 路劲/列表文件名.list
2、使用tar 打包并分片 参数说明:-b 大小 -d 使用数字后缀 -a 后缀长度。详细split参数说明见下图:tar -zcf - --files-from 路劲/列表文件名.list | split -b 1024m -d -a 4 - 分片文件名.gz.
3、测试打包文件是否能正常解压。cat 分片文件名.gz* | tar -xzv
4、完成后具体脚本部分展示。log 'start 开始生成${putDay} 日 list文件'find ${baseData}/${putDay:0:4}/${putDay:4:2} -type f -name '*${putDay}*.mp3' > ${baseDataGz}/LIST_CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}.listlog 'end list文件生成结束' log '根据生成的list文件将文件打包并拆分成500m大小'log 'start 开始生成${putDay} 日 gz文件'tar -zcf - --files-from ${baseDataGz}/LIST_CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}.list | split -b 500m -d -a 4 - ${baseDataGz}/CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}.gz.log '查看生成文件'ls ${baseDataGz}/CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}.gz*log 'end gz文件生成结束'log 'start 生成清单汇总文件' find ${baseDataGz} -type f -name 'CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}.gz*' | sed 's/\/data\/ucp\/record\/ftpCrmsendGz\///g' >${baseDataGz}/CRMSEND_4001_991_00_${putDay}_${retransmissionNumber}log 'end 清单汇总文件生成结束'
注意tar打包时命令中的空格