- 博客(22)
- 收藏
- 关注
原创 线程的实现方式
缺点:一个用户进程会占用多个内核级线程线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。克服了多对一模型并发度不高的缺点,又克服了一对一模型中一个用户进程占用太多内核级线程,开销太大的缺点。每个用户进程有与用户级线程同数量的内核级线程。优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高。每个用户进程只对应一个内核级线程。
2023-01-30 09:43:37
249
原创 进程间通信
进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。一个进程不能直接访问另一个进程的地址空间。
2023-01-29 11:10:07
255
原创 【shell】检验网卡流量,并按规定格式记录在日志中
#!/usr/bin/bash#by racon 2022-05-05#检测网卡流量,并按规定格式记录在日志中#规定一分钟记录一次#日志格式如下所示:#2019-08-12 20:40#ens33 input: 1234bps#ens33 output: 1235bpswhile :do #设置语言为英文,保障输出结果是英文,否则会出现bug LANG=en logfile=/tmp/`date +%d`.log #将下面执行的命令结果输出重定向到logfile日志中 exec
2022-05-05 07:59:37
266
1
原创 【shell】定时清空文件内容,定时记录文件大小
定时清空文件内容,定时记录文件大小#!/usr/bin/bash#每小时执行一次脚本(任务计划),当时间为0点或12点时,将目标目录下的所有文件内容清空,但不删除文件,其他时间则只统计各个文件的大小,一个文件一行,输出到以时#间和日期命名的文件中,需要考虑目标目录下二级、三级等子目录的文件#by racon 2022-05-04logfile=/tmp/`date +%H-%F`.logn=`date +%H`if [ $n = "00" ] || [ $n -eq 12 ];then#通过f
2022-05-04 07:34:25
444
原创 【shell】检测两台服务器指定目录下的文件一致性
检测两台服务器指定目录下的文件一致性#!/usr/bin/bash#检测两台服务器指定目录下的文件一致性#a机器是本机,b机器是待检测服务器#通过对比两台服务器上文件的md5值,达到检测一致性的目的# by racon 2022-05-03dir=/data/webb_ip=192.168.220.168#将指定目录下的文件全部遍历出来并作为md5sum命令的参数,进而得到所有文件的md5值,并写入到指定文件中find $dir -type f|xargs md5sum > /t
2022-05-03 07:43:47
890
3
原创 【shell】保存最近几天的备份
保存最近n天的备份定期删除/data目录下修改时间大于7天的文件#!/usr/bin/env bashback_dir=/datafind $back_dir -mtime +7 |xargs rm -rfchmod +x delete_count.shcrontab -e* * * * * /root/delete_count.sh# 防止误删除或修改chattr +i delete_count.sh定期清理/data/YY-MM-DD.tar.gz该目录仅工作日周一至周五自
2022-05-01 14:03:07
1064
原创 【Shell】Nginx日志分析
Nginx日志分析192.168.220.1 - - [01/May/2022:08:46:16 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" "-"$remote_addr $1$time_local $4$request $7
2022-05-01 10:44:49
1741
原创 【shell】判断主机存活
方法一:#!/usr/bin/bash# by racon 2022-04-30while read ipdo for count in {1..3} do ping -c1 -W1 $ip &> /dev/null if [ $? -eq 0 ];then echo "$ip ping is ok." break else echo "$ip ping is failure:$count" fail_count[ $count ]=$ip
2022-05-01 08:14:58
319
原创 【shell】分析系统资源性能瓶颈
分析系统资源性能瓶颈脚本功能:查看CPU利用率与负载( top、vmstat、sar )查看磁盘、Inode利用率与I/O负载( df 、iostat、iotop、sar、dstat )查看内存利用率( free、vmstat )查看TCP连接状态( netstat、ss )查看CPU与内存占用最高的10哥进程( top、ps )查看网络流量( ifconfig、iftop、iptraf )先来看一下select循环快速生成一个菜单#!/usr/bin/bashPS3="Your
2022-04-30 15:35:41
941
原创 【文本三剑客】sed命令和常见操作
流编辑器sed sed是一种在线的、非交互式的编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间”( pattern space ), 接着用sed命合处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。命令格式sed [options] 'command' file(s)sed [optio
2022-04-27 08:22:39
489
原创 grep常见选项及正则使用
grep家族grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩展的egrep,支持更多的正则表达式元字符fgrep:固定grep(fixed grep) ,有时也被称作快速(fast grep) ,它按字面解释所有的字符grep命令格式grep [选项] PATTERN filname …找到:grep返回的状态码为0没找到:grep返回的状态码为1找不到指定文件:grep返回的状态码为2grep程序的输入可以来自标准输入或管道,而不仅仅是文件,例
2022-04-26 08:29:37
675
原创 【shell】正则表达式元字符
正则表达式RE正则表达式是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。匹配数字: ^[0-9]+$ 123 456 5y7(X)匹配Mail:[a-z0-9_]+@[a-z0-9]+\.[a-z]+ 匹配IP: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 或
2022-04-26 07:37:50
251
原创 【shell】shebang的推荐写法
我们在写脚本时候一般会在脚本第一行通过#!来指定脚本的解释器,通常会这样写:#!/usr/bin/bash#!/usr/bin/bash#!/usr/bin/python#!/usr/bin/bash但对于linux的不同版本,可能解释器位置不一致,这时候,shebang推荐用以下这种方式书写:#!/bin/env bash#!/bin/env sh#!/bin/env python通过环境变量去寻找解释器的位置。...
2022-04-24 08:27:27
1331
原创 【shell】统计tcp连接状态数量
统计tcp连接状态数量#!/usr/bin/bash#count tcp status#by racon 2022-04-22while :do unset status declare -A status type=`ss -an| grep :80 | awk '{print $2}'` for i in $type do let status[$i]++ don
2022-04-22 10:05:23
2814
原创 【shell】实现性别统计
关联数组实现性别统计[root@server4 ~]# cat sex.txtjack malice ftom mrose frobin m#!/usr/bin/bash#count sex#by racon 2022-04-22declare -A sexwhile read linedo type=`echo $line|awk '{print $2}'` let sex[$type]++done < sex.txtfor i in ${!sex[@]}do
2022-04-22 08:10:02
1125
原创 【shell】expect实现批量主机公钥推送/免交互
批量主机公钥推送需要提前修改好对应的password#!/usr/bin/bash#主机批量推送ssh公钥#by racon 2022-04-21>ip.txtpassword=1rpm -q expect &> /dev/nullif [ $? -ne 0 ];then yum -y install expectfiif [ ! -f ~/.ssh/id_rsa ];then ssh-keygen -P "" -f ~/.ssh/id_rsafifo
2022-04-21 14:47:46
1001
原创 【shell】并发控制测试远程主机连接
并发控制测试远程主机连接设置最高同时并发数为5最终效果为五条五条显示#!/usr/bin/bash#ping01#by racon 2022-04-21# 同时并发数thread=5# 管道tmp_fifofile=/tmp/$$.fifomkfifo $tmp_fifofile # 创建管道exec 8<> $tmp_fifofile # 创建文件句柄rm $tmp_fifofile # 删除管道文件,只保留句柄for i in `seq $thread`
2022-04-21 11:54:54
859
原创 【Shell】批量修改主机密码
批量主机密码修改准备一个ip.txt文件存放待修改密码主机的ip地址192.168.220.140192.168.220.131192.168.220.133#!/usr/bin/bash#modify password#v1.0 by racon 2022-04-20read -p "Please enter a New Password: " passfor ip in `cat ip.txt`do { ping -c1 -W1 $ip &
2022-04-20 16:21:53
798
原创 【Shell实战】检查ip能否ping通并输出到指定文件
#!/usr/bin/bash#ping check>ip.txtfor i in {2..254}do { ip=192.168.220.$i ping -c1 -W1 $ip &> /dev/null if [ $? -eq 0 ];then echo "$ip"|tee -a ip.txt fi }&donewaitecho "finished">ip.txt重定向清空上一次的文件ping -W 参数设置超时时长为1秒注意要
2022-04-20 12:37:33
2499
原创 【shell】case实现简单的系统工具箱
case实现简单的系统工具箱case实现简单的系统工具箱#!/usr/bin/bash#system manage#by racon 2020-04-19menu() { cat <<-EOF ######################################### # h. help # # f. disk partition # # d. filesystem mount # # m. memory # # u. system load
2022-04-20 07:28:51
706
原创 【shell】case实现简单的堡垒机/跳板机
case实现jumpserver准备密钥认证[alice@server4 ~]$ ssh-keygen # 生成密钥[alice@server4 ~]$ ssh-copy-id 192.168.220.140 # 拷贝公钥[alice@server4 ~]$ ssh-copy-id 192.168.220.171[alice@server4 ~]$ ssh-copy-id 192.168.220.154alice根目录创建jumpserver.sh文件在.bashrc 或者 .bashpro
2022-04-19 19:41:04
493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅