zoukankan      html  css  js  c++  java
  • vim批量在文件每行添加内容以及查询cloudstack模板是否是增量

    一.接着上文(更改cloudstack二级存储),从cloud数据库里查出的所有模板名称以及模板位置语句

    SELECT tpl.`name`,img.id, img.`url`,tplref.`install_path` FROM vm_template tpl 
    JOIN template_store_ref tplref ON tpl.`id` = tplref.`template_id`
    JOIN image_store img ON img.id = tplref.`store_id`
    WHERE tpl.`removed` IS NULL AND tplref.`install_path` IS NOT NULL AND tpl.`type` = 'USER' AND img.`id` = 1
    ORDER BY img.id ASC

    二.需求是,上面语句查到每一个模板的所在路径后,需要判断哪些模板是增量。

    1.首先我将查询到的路径内容一键复制到一个文本内。文本内容是类似下面这样的,每行。

    template/tmpl/2/211/002c10aa-8fae-3600-ba4b-9f153bc85548.qcow2
    template/tmpl/2/213/094f409c-6d2d-3e8b-941a-d0c43b52ea99.qcow2
    template/tmpl/2/214/61c8f1e2-930c-3453-a762-0ad15f2d5c30.qcow2
    template/tmpl/2/215/182c8801-22fd-3c17-bd50-badec418b241.qcow2
    template/tmpl/2/216/e94fac61-5a33-398f-938b-4a6802334418.qcow2
    template/tmpl/2/217/0cd01d32-bff2-36ef-9744-1588d74cdf62.qcow2
    template/tmpl/2/218/cee86725-8419-3e7d-91eb-d1fa1f2d8540.qcow2

    2.检验时可以使用qemu-img info 路径去检验,当返回有backing file 字段信息时,说明它是一个增量。

    3.我准备将上面的文本文件修改成一个shell脚本,修改成类似下面这样

    qemu-img info template/tmpl/2/211/002c10aa-8fae-3600-ba4b-9f153bc85548.qcow2
    qemu-img info template/tmpl/2/213/094f409c-6d2d-3e8b-941a-d0c43b52ea99.qcow2

    4.问题又来了,如何在这个文件每一行都追加相同的字符呢,如果一个个追加,那累死了,因为有好几百行,不过搜到了vim里的一个命令

    :%s/^/word/g 

    这个命令就是可以在文件每行的行首添加相同的字符,如果有空格或者其它字符的话,记得使用 符号进行转义。根据上面的要求,现在在文本里使用下面的命令即可

    :%s/^/qemu-img info /g

    5.现在文件已经修改好了,改个后缀.sh。然后运行。运行时,需要系统里有qemu-img命令,并且可以连接二级存储,然后记得过滤一下。

    6.过滤关键字(backing file),然后显示前第五行,在过滤下image字段,最后输出到文本文件中,如下

    bash nfs1.sh | grep -B5 backing | grep image > nfs1.txt

    现在就达到一开始的要求,得到那些模板是增量的。

  • 相关阅读:
    FastDFS 安装与使用
    leecode刷题(18)-- 报数
    时间戳转换日期格式
    嵌入式Linux的FTP服务端软件(stupid-ftpd)
    iMx280A测试声纹
    Linux 版本查询
    Linux下的目录结构
    uboot主Makefile分析
    uboot配置过程详解1
    路由器设置
  • 原文地址:https://www.cnblogs.com/hanyifeng/p/5010801.html
Copyright © 2011-2022 走看看