一、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理
systemd的新特性
systemd是Linux下的中央系统及设定管理程式(init),包括有守护进程,程序库跟应用程序。开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并以此实现系统初始化时服务的并行启动,同时达到降低shell的系统开销,最终替代现在常用的system v与BSD风格init程序。
systemd组件 与System V风格init相比,systemd采用了一下的新特性:
1. 系统引导时实现服务并行启动;
2. 按需激活进程;
3. 系统状态快照;
4. 基于依赖关系定义服务控制逻辑;
Systemd的核心概念是:unit,unit由其相关配置文件进行标识,识别和配置,文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息; 这些配置文件主要保存在:/usr/lib/systemd/system;/run/systemd/system;/etc/systemd/system中。
unit的常见类型如下:
Service unit:文件扩展名为.service,用于定义系统服务;
Target unit:文件扩展为.target,用于模拟实现“运行级别”;
Device unit: .device,用于定义内核识别的设备;
Mount unit: .mount,定义文件系统挂载点;
Socket unit: .socket,用于标识进程间通信用到的socket文件;
Snapshot unit: .snapshot, 管理系统快照;
Swap unit: .swap, 用于标识swap设备;
Automount unit: .automount,文件系统自动点设备;
Path unit: .path, 用于定义文件系统中的一文件或目录;
二、描述awk命令用法及示例(至少3例)
awk是Linux文本处理工具三剑客之一,awk是一种用于处理文本的编程语言工具。awk在很多方面类似于shell编程语言。AWK将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个域,以此类推。AWK程序是由一些特定模式的语句构成的,awk一次可以读取一个输入行,对每个输入行,awk解释器会判读它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。
AWK程序是由一系列模式+动作所组成的。awk的基本用法为:awk [OPTIONS] ‘program’ FILE1…,其中program为:PATTERN {ACTION STATEMENT}
- print命令:会输出当前记录的内容;
- 变量:变量分为内建变量和自定义变量;
内建变量:
FS:输出字段分隔符,默认为空白;RS:输入时的行分隔符;OFS:输出时的字符分割符;ORS:输出时的行分隔符;NF:当前行的字段数;NR:命令后跟的所有文件将统一合并计数;FNR:行数,各文件单独计数。
自定义变量:
-v VAR_NAME=VALUE:变量名区分字符大小写; - printf:格式化输出
- awk的操作符:有算术操作符,字符操作符,赋值操作符,比较操作符,模式匹配操作符,逻辑操作符,条件表达式和函数调用;
- awk还支持shell编程的各种控制语句。
例子:
awk BEGIN '{print "HELLO,WORLD!"}'
awk '{print NF,FNR}' /etc/fstab /etc/issue
awk -F: '{printf "USER:%-2s,UID:%20d\n",$1,$3}' /etc/passwd
awk -F: '$1~/user*/{print $1,$NF}' /etc/passwd
三、awk函数示例:
函数分为内置函数和自定义函数,示例如下:
ss -tnl | awk '/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count) {print i,count[i]}}'
awk 'BEGIN{rand(); sk=int(100*rand()); print sk;}'
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96677