awk,linux系统启动流程和systemd,加密技术

打印 上一主题 下一主题

主题 576|帖子 576|积分 1728

文本处理之AWK

gawk:模式扫描和处理语言,可以实现下面功能
文本处理
输出格式化的文本报表
执行算数运算
执行字符串操作
格式:
awk [options]  'program' var=value  file…
awk [options]  -f programfile   var=value file…
说明:
program通常是被放在单引号中,并可以由三种部分组成
BEGIN语句块 :通用语句块之前执行,常用于打印表头
模式匹配的通用语句块:文本处理语句
END语句块 :通用语句块之后执行,常做统计用
常见选项:
-F “分隔符” 指明输入时用到的字段分隔符,默认的分隔符是若干个连续空白符
-v var=value 变量赋值
Program格式:
pattern{action statements;..}
pattern:决定动作语句何时触发及触发事件,比如:BEGIN,END,正则表达式等
action statements:对数据进行处理,放在{}内指明,常见:print, printf
2 动作 print
print item1, item2, …
说明:
逗号分隔符
输出item可以字符串,也可是数值;当前记录的字段、变量或awk的表达式
如省略item,相当于print $0
固定字符符需要用“ ” 引起来,而变量和数字不需要
3.常见内置变量
FS:输入字段分隔符,默认为空白字符,功能相当于 -F,以变量的方式指定分隔符,可用于后续调用
OFS:输出字段分隔符,默认为空白字符 ,指定输出时的分隔符
NF:字段数量 ,字段一般指用分割符隔断的列数或段数
#引用变量时,变量前不需加$
一般把行成为记录,NR:记录的编号
FNR:各文件分别计数,记录的编号
  1. 范例:
  2. 1.取出各分区利用率,过滤第一行
  3. [root@centos7 ~]# df | awk 'NR>1{print $1,$5}'
  4. devtmpfs 0%
  5. tmpfs 0%
  6. tmpfs 2%
  7. tmpfs 0%
  8. /dev/sda2 2%
  9. /dev/sda3 1%
  10. /dev/sda1 14%
  11. tmpfs 0%
  12. 2.取ip地址
  13. [root@centos7 ~]# ip addr show eth0 |awk '/inet /{print $2}'
  14. 10.0.0.17/24
  15. 3.利用变量NR,取特定位
  16. 倒数第二段
  17. [root@centos7 ~]# awk -F: '{print $(NF-1)}' /etc/passwd
  18. /root
  19. /bin
  20. /sbin
  21. /var/adm
  22. /var/spool/lpd
  23. awk '{ip[$1]++}END{for(i in ip){print i,ip[i]}}' /var/log/httpd/access_log  此格式常用于取出日志中每个IP的访问次数
复制代码
启动流程和系统服务

Linux启动流程

centos6启动流程
  1. 加电自检-->bootloader-->加载GRUB程序引导内核程序,根据grub.cnf文件将虚拟镜像加载到内存-->根据虚拟镜像加载文件系统-->执行init程序。根据inittab文件确定运行级别,执行rc.d下启动脚本-->执行rc.local
复制代码
centos7启动流程
  1. 加电自检-->bootloader-->加载GRUB2程序引导内核程序,根据grub2.cfg文件将虚拟镜像加载到内存-->根据虚拟镜像加载文件系统-->/usr/lib/systemd/systemd初始化脚本
复制代码
systemd

Systemd:从 CentOS 7 版本之后开始用 systemd 实现init进程,系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程
Systemd新特性
系统引导时实现服务并行启动
按需启动守护进程
自动化的服务依赖关系管理
同时采用socket式与D-Bus总线式激活服务
socket与服务程序分离
向后兼容sysv init脚本
使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,
systemctl无法与之通信和控制
系统状态快照
systemd 核心概念:unit
unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息
unit的配置文件
  1. /usr/lib/systemd/system #每个服务最主要的启动脚本设置,类似于之前的/etc/init.d/
  2. /lib/systemd/system #ubutun的对应目录
  3. /run/systemd/system #系统执行过程中所产生的服务脚本,比上面目录优先运行
  4. /etc/systemd/system #管理员建立的执行脚本,类似于/etc/rcN.d/Sxx的功能,比上面目录优先运行
复制代码
unit的文件格式
service unit file文件通常由三部分组成:
[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等
[Service]:与特定类型相关的专用选项;此处为Service类型
[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到 的一些选项
  1. [Unit]
  2. Description=The Nginx HTTP Server daemon # 描述信息
  3. After=network.target remote-fs.target nss-lookup.target # 指定启动nginx之前需要其他
  4. 的其他服务,如network.target等
  5. [Service]
  6. # Type为服务类型,仅启动一个主进程的服务为simple,需要启动若干子进程的服务为forking
  7. Type=forking
  8. # 设置执行systemctl start nginx后需要启动的具体命令
  9. ExecStart=/usr/local/nginx/sbin/nginx
  10. # 设置执行systemctl reload nginx后需要执行的具体命令
  11. ExecReload=/usr/local/nginx/sbin/nginx -s reload
  12. # 设置执行systemctl stop nginx后需要执行的具体命令
  13. ExecStop=/bin/kill -s QUIT ${MAINPID}
  14. [Install]
  15. # 设置在什么模式下被安装,设置开机启动的时候需要
  16. WantedBy=multi-user.target
  17. unit文件创建完成后执行,通知systemd重载此配置文件
  18. [root@centos8 ~]#systemctl daemon-reload
复制代码
加密和CA

加密

常见加密算法:对称加密,非对称加密,hash
对称加密算法:加密和解密使用同一个密钥
特性:
加密、解密使用同一个密钥,效率高
将原始数据分割成固定大小的块,逐个进行加密
缺陷:
密钥过多
密钥分发
数据来源无法确认
非对称加密算法:密钥是成对出现 ,使用公钥加密,使用与之对应的私钥解密
公钥:public key,公开给所有人,主要给别人加密使用
私钥:secret key,private key 自己留存,必须保证其私密性,用于自已加密签名
特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
数据加密:适合加密较小数据,比如: 加密对称密钥
hash :也称为散列算法,将任意数据缩小成固定大小的“指纹”,称为digest,即摘要
特性:
​        任意长度输入,固定长度输出
​        若修改数据,指纹也会改变,且有雪崩效应,数据的一点微小改变,生成的指纹值变化非常大。
​        无法从指纹中重新生成数据,即不要逆,具有单向性
功能:
​        数据完整性
密钥交换:
​        公钥加密:用目标的公钥加密对称密钥
​        DH (Deffie-Hellman):生成对称(会话)密钥
DH实现过程:
[code]A: g,p 协商生成公开的整数g, 大素数pB: g,pA:生成隐私数据:a (aip.txtiptables -nL | awk '/REJECT/{print $4}' >iptables.txt#可通过比较两个文件获取未添加规则的ip#grep -vf iptables.txt ip.txt > ip_new.txt#while read line#do#        iptables -A INPUT -s ${line} -j REJECT#done < ip_new.txtwhile read linedo        grep ${line} iptables.txt >/dev/null && echo "${line} is ok " || iptables -A INPUT -s ${line} -j REJECTdone < ip.txt2、描述密钥交换的过程对称加密:加密方和解密方协商使用同一个密钥进行加密和解密非对称加密:加密方和解密方各自拥有一组公钥和密钥,并将各自密钥发布,加密方使用解密方公钥对数据进行加密发送给解密方,解密方使用自身密钥对加密数据进行解密DH:        1.双方协商出公开的证书g,大素数p        2.双方各自生成隐秘数据a,b(a,b
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表