• 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

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

  • 相关阅读:
    Codeforces Round #307 (Div. 2)E. GukiZ and GukiZiana
    bzoj2957: 楼房重建,分块
    分块入门。
    poj3690 Constellations
    Codeforces Round #451 (Div. 2)F. Restoring the Expression 字符串hash
    Codeforces Round #456 (Div. 2)D. Fishes
    Codeforces Round #450 (Div. 2)D. Unusual Sequences
    快速排序+分治法
    哈夫曼编码课程设计+最小优先对列建树。
    浅谈差分约束系统
  • 原文地址:https://www.cnblogs.com/hanyifeng/p/5010801.html
Copyright © 2020-2023  润新知