脚本、awk基础及加密算法

本文介绍如何用Shell脚本实现查看进程资源使用情况、配置Nginx开机启动、检查TCP连接状态、修改sysctl参数等实用功能,并解释了对称与非对称加密的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 用shell实现传入进程pid, 查看对应进程/proc下CPU、内存指标

#!/bin/bash
read -p "please input a pid: " pid
PID=`ps aux | awk '{print $2}'| grep  "^$pid$"`
if [ $PID ];then
        cat /proc/$PID/status
        echo "------------------------------------------------------"
        ps -p $PID o  pid,psr,pcpu
else
        echo "$pid no exit"
fi


2、 编写Nginx的systemd配置文件, 实现nginx进程开机启动

#安装nginx
yum install nginx

#编写脚本
vim /etc/systemd/system/nginx.service
#描述相关
[Unit]
Description=nginx
After=network.target

#脚本
[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx reload
ExecStop=/usr/sbin/nginx quit
PrivateTmp=true

#依赖性
[Install]
WantedBy=multi-user.target

#启动该脚本
systemctl daemon-reload
systemctl enable nginx.service
systemctl start nginx.service

3、 用awk实现查看TCP的连接状态

[root@centos7 data]# netstat -ant | awk '/^tcp/{++status[$6]} END {for (i in status)print i status[i]}'
LISTEN11
ESTABLISHED1

[root@centos7 data]# ss -ant | awk '!/^State/{++status[$1]} END {for(i in status) print i status[i]}'
LISTEN11
ESTAB1

4、 说明对称、非对称加密算法的区别, 并举例

对称加密: 使用同一个密钥来对数据进行加密解密,常见的有DES,AES算法

优点:
执行效率高,速度快,适合加密大量的数据。

缺点:
密钥过多 (总不能一共就用一个密钥来进行加密吧)
密钥分发困难,传输过程不安全
无法确定数据来源(key不存在来源验证功能)

非对称加密:
非对称加密分为公钥与私钥,且必须是成对出现的。公钥与私钥不同机器应当都是不同的。key1 != key 2。常见的算法类型有SA,DSA
公钥:公开给所有人使用,用于解密数据; public key
私钥:自己留存,必须保证其私密性,用于加密数据;secret key
用公钥加密数据,只能使用与之配对的私钥解密;反之亦然

优点:
带有数字签名功能,可以让接收方确认发送方的身份。因为私钥加密的数据,只有对应的公钥才能进行解密。
对称密钥交换方便安全,发送方用对方的公钥加密一个对称密钥后发送给对方即可。
适合加密较小的数据

缺点:
密钥过长,加密解密的效率相对对称加密低很多。

5、 用shell实现修改/etc/sysctl.conf文件中的参数并生效

#!/bin/bash
while true
do
        read -p "you can input some sysctl settings,It will take effect immediately :" settings
        format=$(echo $settings | grep -o "=" |wc -l )
        if [ $format -eq "1" ];then
                if [[ "$settings" =~  .+=.+ ]];then
                        setname=$(echo $settings | cut -d"=" -f1 )
                        exists=`cat /etc/sysctl.conf | grep $setname `
                        if [ "$exists" == "" ];then
                                cat exists >> /etc/sysctl.conf
                                sysctl -p
                                echo "增加配置成功"
                        else
                                sed -i -r "s@$exists@$settings@g" /etc/sysctl.conf
                                sysctl -p
                                echo "修改配置成功"
                        fi
                else
                        echo "输入格式错误!";
                fi
        else
                echo "输入格式错误!";
        fi
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值