Blog

  • shell中使用sed正则修改文件

    • sed 使用正则匹配
    • 在shell中 当变量有空格的时候使用双引号包围 “${var}”
    function change_version_class() {
        VERSION_CODE_FILE=$1
        BUILD_VERSION=$2
    
        if [ -f "${VERSION_CODE_FILE}" ]; then
            echo 'change '"${VERSION_CODE_FILE}"' info'
    
            BUILD_TIME=$(date +%Y%m%d-%H:%M:%S)
            BUILD_USER=$(whoami)
            BUILD_OS=$(uname -snr)
            BUILD_BRANCH=$(git branch |grep '[*]'|awk '{print $2}')
            BUILD_COMMIT=$(git log --oneline |head -n 1|awk '{print $1}')
    
            sed  -i 's/String BUILD_VERSION =\(.\)\+/String BUILD_VERSION = "'"${BUILD_VERSION}"'";/g'  "${VERSION_CODE_FILE}"
            sed  -i 's/String BUILD_TIME =\(.\)\+/String BUILD_TIME = "'"${BUILD_TIME}"'";/g'  "${VERSION_CODE_FILE}"
            sed  -i 's/String BUILD_USER =\(.\)\+/String BUILD_USER = "'"${BUILD_USER}"'";/g'  "${VERSION_CODE_FILE}"
            sed  -i 's/String BUILD_OS =\(.\)\+/String BUILD_OS = "'"${BUILD_OS}"'";/g'  "${VERSION_CODE_FILE}"
            sed  -i 's/String BUILD_BRANCH =\(.\)\+/String BUILD_BRANCH = "'"${BUILD_BRANCH}"'";/g'  "${VERSION_CODE_FILE}"
            sed  -i 's/String BUILD_COMMIT =\(.\)\+/String BUILD_COMMIT = "'"${BUILD_COMMIT}"'";/g'  "${VERSION_CODE_FILE}"
        fi
    }
    
  • 利用正则表达式使grep进程不输出自身

    ps aux | grep redis
    redis       1092  0.9  1.7 1638008 559216 ?      Ssl  Jul05 188:00 /usr/bin/redis-server 127.0.0.1:6379
    root     3366704  0.0  0.0 112728  2308 pts/1    S+   18:37   0:00 grep --color=auto redis
    
    ps aux | grep [r]edis
    redis       1092  0.9  1.7 1638008 559216 ?      Ssl  Jul05 188:00 /usr/bin/redis-server 127.0.0.1:6379
    

    ps aux | grep [r]edis 进程中,grep参数是--color=auto [r]edis. 和grep的正则匹配不相符,因此不会输出到结果.

  • 虚拟机磁盘模式

    虚拟机磁盘模式

    资料来源

    备份快照

    • 有独立磁盘的虚拟机不能做内存快照,只能做普通快照
    • vmware 独立磁盘 不受快照影响

    磁盘模式

    模式 desc
    独立 – 持久 持久模式磁盘的行为与物理机上常规磁盘的行为相似。写入持久模式磁盘的所有数据都会永久性地写入磁盘。
    独立 – 非持久 关闭虚拟机电源或重置虚拟机时,对非持久模式磁盘的更改将丢失。使用非持久模式,您可以每次使用相同的虚拟磁盘状态重新启动虚拟机。对磁盘的更改会写入重做日志文件并从中读取,重做日志文件会在关闭虚拟机电源或重置虚拟机时被删除。

    (more…)

  • 解决docker exec 无法执行问题

    docker exec nova_libvirt ls

    rpc error: code = 13 desc = invalid header field value “oci runtime error: exec failed: container_linux.go:247: starting container process caused \”process_linux.go:75: starting setns process caused \\”fork/exec /proc/self/exe: no such file or directory\\”\”\n”

    (more…)

  • centos查找安装包信息

    which mvn
    rpm -qf /usr/bin/mvn
    yum provides  maven
    

    (more…)