systemd新特性介绍以及强大的awk文本处理工具实战演示

1、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理

systemd的新特性:

  系统引导时实现服务并行启动;

  按需激活进程;

  系统状态快照;

  基于依赖关系定义服务控制逻辑;

  unit常见类型分析;

Service unit:文件扩展名为.service,用于定义系统服务;

Target unit:文件扩展为.target,用于模拟实现“运行级别”;

//centos7没有启动级别,只有被访问时才启动

Device unit:文件扩展名为.device,用于定义内核识别的设备;

mount unit:文件扩展名为.mount,定义文件系统挂载点;

Socket unit:文件扩展名为.socket,用于表示进程间通信用到的socket文件;

Snapshot unit:文件扩展名为.snapshot,管理系统快照;

Swap unit:文件扩展名为.swap,用于标识swap设备;

Automount unit:文件扩展名为.automount,文件系统自动挂载点设备;

Path unit:文件扩展名为.path,用于定义文件系统的文件或目录;

/etc/systemd/system

关键特性

基于socket的激活机制:socket与程序分离;

基于bus(总线)的激活机制;

基于device的激活机制;

基于Path的激活机制;

系统快照:保存各unit的当前状态信息于持久存储设备中;

向后兼容sysv init脚本;

不兼容;

systemctl的命令是固定不变的;

非由systemd启动的服务,systemctl无法与之通信;

/etc/init.d/

管理系统服务:

Centos7:service类型的unit文件;

编译安装Nginx

1、安装软件

yum install zlib-devel pcre-devel

yum groupinstall "开发工具"

tar nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure --with-pcre --with-zlib

2、启动、重启和关闭

/usr/local/nginx/sbin/nginx //启动

/usr/local/nginx/sbin/nginx -s reload //重启

/usr/local/nginx/sbin/nginx -s stop //关闭

3、实现systemd管理nginx

vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=Nginx Service

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

//这里一定要注意PIDFile的路径,在/usr/local/nginx/conf/nginx.conf配置文件中,默认pid文件放在/usr/local/nginx/logs中,如果写错路径,nginx是无法启动的,报错为:PID file /run/nginx.pid not readable (yet?) after start.

2、描述awk命令用法及示例(至少3例)

Linux文本处理工具三剑客:grep、sed和awk。其中grep是一种文本过滤工具,sed是一种行文字处理工具,而awk是一种报表生成器,就是对文件进行格式化处理,就是对文件内容进行排版,然后显示出来。

在linux上我们使用的GNU awk简称gawk,并且gawk其实就是awk的链接文件,因此在系统上使用awk和gawk是一样的。

awk的运行方式有一下三种:(1)awk命令行   #awk

(2)awk 程序文件

#awk -f /path/frrom/awk_script

(3)awk脚本

#!/bin/awk -f

awk的基本用法;awk [OPTIONS]‘program’FILE1 FILE2...

OPTION:

-F[]:指明输入字段的分隔符

-v VAR_name=value:变量赋值;

-f  /PATH/FROM/AWK_SCRIPT

2.1 awk的输出命令之一:print

用法:print item1,item2,...

item;字符串,用引号引用;

print“hello”,“world”

变量:显示变量的值,可以直接使用变量的名进行引用;

print name

数值:无须加引号

例如:

这里直接输出字符串hello world,因为无须对文本做任何处理,所以启动BEGIN模式。

2变量

    变量分为内建变量和自定义变量

2.1内置变量

    FS:input Field Seperator,输入字段分隔符,默认是空白字符

    RS:input Record Seperator,输入行分隔符,默认是换行符

    OFS:output Field Seperator,输出字段分隔符,默认是空白符

    NF:显示当前行行数

    FNR:行数,各文件单独计数

    ..........

实例:以冒号为分隔符输出/etc/passwd下的用户名和用户ID


2.3  awk的输出命令之二:printf格式化输出

语法:printf FORMATE,item1,item2,...

其中FORMATE是格式符号:

%c:显示字符ASCII码;

%s:显示字符串;

%d:显示十进制整数;

%f:显示浮点型数值;

%%:显示%本身;

实例:

在格式符前面在的字符串会在每个字段前显示,并且这里需要注意的是要手动添加换行符,即\n;

且上述命令在%s中间加-10,表示格式符的修饰符,“-”号表示左对齐,10表示给格式符10个字符的占位空间。


常用ACTION

(1)EXPRESSIONS:例如变量赋值

(2)Control Statements:控制语句,如 if,while等;

(3)Compound Statements:复合语句;

(4)input statements

(5)output statements

if-else

语法: if(condition){statement}【else {statement}】


这个是显示/etc/passwd中UID大于等于500的用户名和ID号


这个是用来判断用户是普通用户还是系统用户或管理员

while循环

语法:while(condition){statements}

条件为真时循环,为假时退出循环;

使用场景:通常在当前行的各字段进行循环


如上图所示,显示/etc/issue中所有字段。


显示/etc/issue中所有字段长度大于5的字段。

do-whlie循环

语法:do{statement}while(condition)

注意:至少执行一次循环体

7.4 for循环

语法:for(expr1;expr2;expr3)statement


使用for循环处理相比while循环更简洁易懂

for(var_name in array){for-body}

switch

switch(expression){case VALUE or /REGEXP/:statement;...;default:statementN}

break and continue

break[n]:退出当前循环,n表示退出第n层循环;

continue:提前结束本轮循环;进入下一轮循环

next:提前结束对本行文本的处理,进入下一行的文本处理;


这里显示的是/etc/passwd文本中行号为偶数的行的用户名和UID。

3、描述awk函数示例(至少3例)

函数分为内建函数和用户自定义函数

3.1 内建函数

数值处理:rand():返回0到1之间的一个随机数;


注意:采用awk内置函数rand()返回随机数后,第一次引用相同的命令还是得到同样的随机数。

字符串处理:

split(s,a,[r]):表示以r为分隔符对匹配到的s字符串进行切割,并将切割到的字段存放在a数组当中。

上图是采用split函数将整行文本以冒号为分隔符进行切割,存放在user这个数组当中,并将user的第一个元素的值,即文本每行的第一个字段打印出来。

时间类函数:systime(),取当前系统时间,结果形式为时间戳。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,113评论 2 34
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,689评论 0 10
  • 一江春水向东流, 人生短短几个秋。 待到儿孙栋梁时, 腰弓背驮满白头。 一一轻舟已过
    A都督阅读 352评论 0 0
  • 毕业之前,只过37,毕业之后,只有38! 但对于永远十八岁的我,若有人说我是妇女,我还是会在脑海里毫不犹豫地给他个...
    白日梦旅孩阅读 134评论 0 0