kvm
和lxc
两种模式,说人话就是虚拟机和容器,比较轻量的应用我会优先使用lxc,磁盘和内存占用都非常低。如果对glibc没有强制要求的,我会优先使用 Alpine Linux 这个发行版,除开应用本身的资源,只有2m左右的系统文件,几乎没有内存和磁盘浪费。
我的PVE和虚机优先跑在SSD上,会比跑在HDD上有更好的io,所有SSD空间需要省着用。
我在使用Alpine的时候发现部分机器启动后,DHCP不会发送Hostname,导致OpenWrt看到的主机名是问号?
爬了一下Alpine的文档后找到,可在/etc/network/interfaces
增加hostname
参数来自定义发送主机名,问题解决,验证方式是查找系统进程udhcpc
看运行参数是否有 hostname:xxx
字样,例如:
> ps|grep dhcp
> /sbin/udhcpc -b -R -p /var/run/udhcpc.eth0.pid -i eth0 -x hostname:ptn
原因未知,使用的镜像都是一致的,部分容器开起来就是会出问题。。。可能隐藏的比较深。
]]>grep -v '^#' | grep -v '^$'
这样,可用但是并太不明白^$
的意思,猜测可能是开始即结束?因为我尝试加上几个空格匹配会失败,且改成 grep -v '^#'|grep -Ev '^\s+$'
是可以的,今天又搜了下想确认猜测,然而并没有找到相关的说明,但是也有其他收获。
首先是梳理了下正则的各种分支和规范,比如POSIX、Perl、RE2等以及包含的子集。
其次是匹配包括换行的写法,以前在写PHP的时候比较习惯使用flag,比如i、s、U这些,现在又多了几种写法:[\s\S]*
、[\d\D]*
、[\w\W]*
、[\v\V]*
、[\h\H]*
。
是不是挺迷惑,我一开始也是,那现在再来回顾下语法:
\d 数字,[0-9]
\D 非数字,[^0-9]
\s 白空格,[\t\n\f\r ]
\S 非白空格,[^\t\n\f\r ]
\w 整个单词,[0-9A-Za-z_]
\W 非整个单词,[^0-9A-Za-z_]
\h 水平空格
\H 非水平空格
\v 垂直空格
\V 非垂直空格
]]>.zst
和 tar.zst
是使用 Facebook
开源的 Zstandard 算法压缩出来的文件。tar
命令有个参数 -I(--use-compress-program)
可以指定压缩和解压缩使用的子命令,所以解压的完整命令如下:
tar --use-compress-program=unzstd -xvf archive.tar.zst
如果报错:zstd: Cannot exec: No such file or directory,请尝试使用 apt、yum等系统自带的包管理软件安装zstd。
参考:How can I decompress an archive file having .zst or tar.zst?
]]>