操作的服务器是 172.16.3.51
2015年的数据已经全部导入tfs,2015年之前的签名只存在数据中心。
由dba导出订单号以及签名的路径文件,中间以逗号分隔,格式如下:
[root@mfsmaster tfs_sign]# head TBL_TXN_VOUCHER_INF-1504-05-1.txt 20150517000024554032,/images/sign/137007452736950046.png 20150517000024554033,/images/sign/137007244844566617.png 20150517000024554041,/images/sign/137007333019517925.png 20150517000024554058,/images/sign/137007152124967579.png 20150517000024554060,/images/sign/137007553315054730.png 20150517000024554066,/images/sign/137007434228617749.png
历史遗留问题,原来有一些签名图片大小是0,是无法导入到 tfs 当中,所以要把这些文件去掉,否则导入脚本会冲断。也可以在导入脚本中捕捉这些异常而忽略掉,但这里使用手动找出,方便纪录。
带有 null
字符的路径去掉:
grep -v null TBL_TXN_VOUCHER_INF-1504-05-1.txt > TBL_TXN_VOUCHER_INF-1504-05-1.tmp.txt mv TBL_TXN_VOUCHER_INF-1504-05-1.tmp.txt TBL_TXN_VOUCHER_INF-1504-05-1.txt
构造完整图片路径:
cut -d "," -f2 TBL_TXN_VOUCHER_INF-1504-05-1.txt > a.txt vim a.txt
行首增加绝对路径前缀 /opt/mfs/images/cashbox
:
:%s/^/\/opt\/mfs\/images\/cashbox/g
排序,找出文件大小为0的文件:
dos2unix a.txt cat a.txt |xargs -i du -sh {} > b.txt sort -n b.txt > c.txt
编辑打开 c.txt 文件,将文件大小为0的保留,其他删除掉。
比较,去掉文件大小为0的纪录:
vimdiff TBL_TXN_VOUCHER_INF-1504-05-1.txt c.txt
防止 vpn中断,将导入程序放后台运行:
nohup ruby import_images_to_tfs.rb TBL_TXN_VOUCHER_INF-1504-05-1.txt > TBL_TXN_VOUCHER_INF-1504-05-1.update.txt ruby gen_dc_sql.rb TBL_TXN_VOUCHER_INF-1504-05-1-update.txt > TBL_DC_TXN_VOUCHER_INF-1504-05-1-update.sql
检查是否有 feff 问题:
grep -I -r