Linux
文章平均质量分 67
Linux
zzhongcy
因为站在了巨人的肩上,所以我看得更远。
当你发现自己的才华撑不起野心时,就请安静下来学习吧
展开
-
为什么 Linux 内核协议栈会丢弃 SYN 数据包
当客户端主机1通过NAT与服务器建立TCP连接,然后服务器关闭并快速回收TIME-WAIT套接字时,其他客户端主机的新连接源IP与服务器对等表中记录的相同,但TCP Timestamps选项是完全随机的或者与主机1当时记录的时间戳相比有50%的概率是随机的。在本教程中,我们首先看一下TCP处理SYN的主要逻辑,并根据案例处理经验分析可能出现问题的点。服务器,当服务器有 NAT 客户端访问时,出现此问题的概率非常高,所以如果获取了这两个内核参数的设置以及客户端网络的 NAT 环境,就可以做出基本的判断。原创 2023-07-25 16:13:34 · 905 阅读 · 0 评论 -
Linux nice命令,结合xz命令
nice, xz原创 2023-01-12 15:25:26 · 579 阅读 · 0 评论 -
shell 判断字符串是否存在数组中
遍历数组当然,可以直接遍历数组进行匹配,例如: 初始化数组的另一种方法是,用其他命令输出的结果来填充到数组中,例如把 ls 命令输出的文件列表填充到数组中:ARR=(`ls /opt/`)for FILE in ${ARR[@]};doecho $FILE;done「2」遍历数组方法为:for NUM in ${ARR[*]}doecho $NUMdoneO(n2)的普通搜索#普通的搜索方式,时间复杂度O(N2) for e ...原创 2022-01-19 16:50:33 · 8974 阅读 · 0 评论 -
Linux小技巧:获取前一天日期、前一个月日期
最近脚本需要获取Linux前一天时间格式,用于设置日志文件名,网上查了查资料,这里记录一下。1.date命令使用date -d 选项: date +"%Y%m%d" -d "+n days" 今天的后n天日期 显示当前日期是DATE=`date +%Y%m%d` +号后面是定义格式为年月日显示前一天为DATE1=`date -d '1 days ago' +%Y%m%d` 加-d参数可以设置与当前日期的计算时间,同样,前2天为'2 days ago',...原创 2020-12-01 14:55:28 · 11465 阅读 · 0 评论 -
回顾一下:Linux中profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile区别,以及执行顺序
区别============/etc/profile============此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.===========/etc/bashrc===========为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.===============~/.bash_profile===============每个用户都转载 2020-09-18 14:00:01 · 554 阅读 · 0 评论 -
Linux 内存详解,即top、free、vmstat、meminfo、Buffer和Cache的介绍
温故而知新,可以为师矣。top linux下的任务管理器top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过...转载 2020-06-03 13:14:14 · 6357 阅读 · 0 评论 -
C++:perf详解 + Flame Graph火焰图分析程序性能
因为项目需求,C++和java同时在搞,最近了解到Flame Graph火焰图这个工具,网上查了查资料,这里记录一下。1 介绍web sitehttp://www.brendangregg.com/flamegraphs.htmlgit:https://github.com/brendangregg/FlameGraph 火焰图是一个可视化工具,可以将诸多性能检测相...原创 2020-04-14 16:22:41 · 14724 阅读 · 0 评论 -
使用命令/脚本增加/删除crontab项
使用命令/脚本增加/删除crontab项,记录一下吧.一, 删某一项cron任务方法1(仅适用root,不推荐)修改/var/spool/cron/root文件这个方法有以下问题:1, 只有root用户可以修改,其它用户均没有权限,因为/var/spool/cron这个目录的属主及属组均是root,且目录权限是700, 因此其它用户没有权限进入此目录去修改自己的/var/spool...转载 2020-03-24 16:15:23 · 4438 阅读 · 0 评论 -
supervisor配置和使用详解
最近项目接触到了Supervisor,网上查了查资料,这里记录一下。1 介绍Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它不是作为init(进程号pid是1)运行. 它是被用来控制进...原创 2020-03-24 14:42:35 · 9447 阅读 · 0 评论 -
Linux文件目录大小详解
学无止境,遇到一个知识遗漏点,这里转载记录一下。介绍在Ubuntu上,发现大部分目录大小都是4096,不论目录包含内容多少,即使空的root@s:~# mkdir aroot@s:~# lltotal 124drwx------ 10 root root 4096 Jan 30 11:25 ./drwxr-xr-x 23 root root 4096 Jan 18 17:...转载 2019-11-26 18:13:16 · 2578 阅读 · 1 评论 -
Linux Shell 1>/dev/null 2>&1 含义
shell中可能经常能看到:echo log > /dev/null 2>&1命令的结果可以通过%>的形式来定义输出/dev/null :代表空设备文件> :代表重定向到哪里,例如:echo "123" > /home/123.txt0 :标准输入stdin1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等...转载 2019-04-19 15:20:44 · 365 阅读 · 0 评论 -
find 默认不查找软链接内的文件
介绍find 给出的 find 语法是 find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression] find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression] [-H | -L | -P] [-EXdsx] 这些就是 find 的可选选项。...转载 2019-04-19 15:21:05 · 8559 阅读 · 0 评论 -
Linux Web压力测试工具[ApacheBench(ab) / webbench]
最近了解道路两个压力测试工具,下面介绍一下压力测试工具1 ApacheBench(ab)ab 只能测试使用http协议的网站abs 可以测试使用http或者https协议的网站 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、ligh...原创 2019-04-11 17:26:21 · 617 阅读 · 0 评论 -
Linux 性能检测工具
最近查看性能问题,发现一些好的文章和资料,这里记录一下。Linux *topapachetop atop biotop cachetop ctop dnstop filetop gtop hatop htop iftop iotop itop jnettop kerneltop latencytop logtop...原创 2019-04-08 14:52:20 · 743 阅读 · 0 评论 -
systemtap内核探测工具
systemtap是内核开发者必须要掌握的一个工具,本文我将简单介绍一下此工具,后续将会有系列文章介绍systemtap的用法。什么是systemtap 假如现在有这么一个需求:需要获取正在运行的 Linux 系统的信息,如我想知道系统什么时候发生系统调用,发生的是什么系统调用等这些信息,有什么解决方案呢?最原始的方法是,找到内核系统调用的代码,加上我们需要...转载 2019-04-08 16:22:05 · 379 阅读 · 0 评论 -
Linux虚拟内存介绍,以及malloc_stats和malloc_info 监控查看内存情况
查找内存泄漏问题,可以使用valgrind、malloc_stats和malloc_info 监控查看内存情况。1、 Linux内存介绍1.1 Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,...原创 2019-04-09 10:33:08 · 10230 阅读 · 3 评论 -
Linux中的Page cache和Buffer cache详解
网上查了查,这里做一下记录。1、内存情况 在讲解Linux内存管理时已经提到,当你在Linux下频繁存取文件后,即使系统上没有运行许多程序,也会占用大量的物理内存。这是因为当你读写文件的时候,Linux内核为了提高读写的性能和速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory 也不会自动释放,...转载 2019-04-19 14:55:49 · 12707 阅读 · 2 评论 -
cpp-netlib与boost库之间,ABI不匹配问题
问题最近遇到一个问题。http获取消息卡死。我们的环境是:boost版本1.57,用的C++ 17编译的库<-DCMAKE_CXX_FLAGS=-std=c++17>。cpp-netlib版本cpp-netlib-0.13.0-final,用C++ 17编译不过,就用C++11编译的<-DCMAKE_CXX_FLAGS=-std=c++11>。最后使用c...原创 2019-06-05 11:38:36 · 906 阅读 · 0 评论 -
linux awk数据列, 存入shell数组
awk 赋值给 shell 变量的方法result='week(now(),-1) 49';var=`echo $result|awk '{print substr($result,16,3)}'`;echo $var;SYSFILE_NAME=`echo "$CONTROL_FILE" | awk -F"." '{print $1}' | awk -F"/" '{print $NF}...原创 2019-09-03 17:22:32 · 10256 阅读 · 1 评论 -
redis集群批量删除模糊key shell脚本
1. 命令删除:1. 1批量删除KeyRedis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作redis-cli keys "*" | xargs redis-cli del//如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径//如:/opt/redis/r...原创 2019-09-03 17:36:53 · 4729 阅读 · 0 评论 -
Ubuntu 安装brew
说明:brew类似于apt-get,可以管理软件的安装和卸载。步骤:Paste at a Terminal prompt:ruby -e "$(wget -O- https://raw.github.com/Homebrew/linuxbrew/go/install)"如果报真是个错误,用一下命令ruby -e "$(wget -O- https://raw.gith...原创 2014-08-20 17:18:08 · 25590 阅读 · 1 评论 -
source ~/.bashrc出现if: Expression Syntax. 以及sh、bash、csh、tcsh、ash介绍
source .bashrc报错:if: Expression Syntax.--------------------------------------------------------------------------------查看:https://stackoverflow.com/questions/14440105/bashrc-if-expression-synta...原创 2019-03-14 14:09:45 · 12949 阅读 · 4 评论 -
supervisord安装使用
官方网站: http://supervisord.org/ supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过...转载 2019-02-13 13:38:37 · 570 阅读 · 0 评论 -
在Linux下分析 C程序的性能
设置编译选项:SConstruct中添加:env=Environment(CC='gcc', CFLAGS=['-g','-pg'], LINKFLAGS=['-pg'], LIBPATH=['/usr/local/lib','/lib64'], CPPPATH=['.','/usr/local/include','/usr/includ转载 2014-08-15 13:37:34 · 1623 阅读 · 0 评论 -
设置 ubuntu apt-get的代理 proxy
#/.bashrcexport http_proxy=http://username:password@proxy_server:proxy_port/原创 2014-08-08 15:29:50 · 4796 阅读 · 0 评论 -
Ubuntu 一般proxy的设置
在你的当前用户下的配置文件,比如~/.bashrc中添加几行:[html] view plaincopyprint?export http_proxy=http://proxy.yourcompany.com:8081/ export ftp_proxy=http://proxy.yourcompany.com:8081/ exp转载 2014-08-08 15:22:00 · 2902 阅读 · 0 评论 -
iptables中DNAT的配置方法
1.一对一流量完全DNAT首先说一下网络环境,普通主机一台做防火墙用,网卡两块eth0 192.168.0.1 内网eth1 202.202.202.1 外网内网中一台主机 192.168.0.101现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上命令如下:[xhtml] view转载 2014-08-08 15:20:20 · 1581 阅读 · 0 评论 -
shell中的fork、source和exec总结(包括环境变量)
转自:http://www.cnblogs.com/balaamwe/archive/2012/01/16/2323727.html摘要:对fork,source和exec三种方式执行shell脚本的总结。 准备知识1.我们所执行的任何程序,都是由父进程(parent process)所产生出来的一个子进程(child process),子进程在结束后,转载 2014-07-30 18:03:59 · 1504 阅读 · 0 评论 -
Ubuntu 12.10下Redis主从复制配置
Ubuntu 12.10下Redis主从复制配置一、 原理 1.1 redis特点 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点: 1.master可以有多个slave 2.除了多个slave连到相原创 2014-02-25 11:24:24 · 1663 阅读 · 0 评论 -
LINUX find命名,以及cat、more、less、tail、head命令的区别
1、find说明:Linux中find常见用法示例·find path -option [-print ] [ -exec -ok command ] {} \;# -print 将查找到的文件输出到标准输出# -exec command {} \; -----将查到的文件执行command操作,{} 和 \;之间有空格# -ok 和-exec...原创 2014-02-24 10:09:14 · 3765 阅读 · 0 评论 -
SVN LINUX 命令
SVN LINUX1、将文件checkout到本地目录svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 例如:svn checkout svn://192.168.1.1/pro/domain -r 200 chec转载 2014-02-24 09:55:23 · 1019 阅读 · 0 评论 -
iptables 添加,删除,查看,修改
正要用到这个工具,网上转载 2014-09-25 18:06:26 · 1284 阅读 · 0 评论 -
研究WIN/Linux下多线程读写文件问题
多线程读取文件分�?/span> 分析结果�?/span> 平台文件操作函数场景文件句柄稳定�?/span>平均时间单位�?/span>Windowsfopen fread100个线程,每个线程读取10M100个线程共用一个句�?/span原创 2014-10-30 18:08:10 · 3728 阅读 · 0 评论 -
Centos6.*下装google-chrome
如果通过Centos6图形化安装google-chrome的话,报错:Error: Package: google-chrome-stable-37.0.2062.94-1.x86_64 (/google-chrome-stable_current_x86_64)Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)原因是c++库版本原创 2015-01-15 11:52:16 · 2076 阅读 · 0 评论 -
linux xz压缩解压
1. 解压 xz 格式文件 方法一:需要用到两步命令: 首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar, 其次用 tar 命令将 linux-3.12.tar 完全解压。xz -d linux-3.12.tar.xztar -xf linux-3.12.tar方法二(推荐)tar -Jx...转载 2019-02-12 09:27:48 · 9856 阅读 · 0 评论 -
kill及kill -9的用法及如何实现进程的优雅退出
1. kill与signals 我们这里所说的kill是指作为shell command的那个kill(相对地,linux系统中还有个叫做kill的system call, man 2 kill可查看其功能及用法),shell终端中输入man kill可以看到,kill的作用是向某个指定的进程或进程组发送指定信号,从而结束该进程/进程组。-s选项可以指定要发送的具体信号,如果转载 2016-01-28 15:33:55 · 17848 阅读 · 0 评论 -
linux下core dump配置,以及google breakpad详解
1 Linux core dump详解 Acore dumpis the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In pract...原创 2015-04-22 10:41:18 · 8361 阅读 · 3 评论 -
ssh直线IP端口转发
命令如下:端口映射命令:ssh -C -f -N -g -L 本地端口 :目标 IP:目标端口 用户名 @目标 IPssh -C -f -N -g -L 9100:10.252.133.185:9100 root@10.252.133.185ssh -C -f -N -g -L 9100:10.10.9.253:9100 root@10.10.9.253原创 2015-03-05 11:24:16 · 1130 阅读 · 0 评论 -
Unix/Linux core文件配置和使用总结
虽然早已经接触了core文件,但是也是简单的使用,最近也到了一些问题,自己Google了一些资料,在此记录一下,当做一个笔记吧,顺便给大家分享分享。概述:core dump的概念Acore dumpis the recorded state of the working memory of a computer program at a specific time, gen原创 2015-01-19 14:57:37 · 4676 阅读 · 0 评论 -
关闭指定pid程序, utils.sh
mkdir -p /var/vcap/sys/logexec > >(tee -a >(logger -p user.info -t vcap.$(basename $0).stdout) >>/var/vcap/sys/log/$(basename $0).log)exec 2> >(tee -a >(logger -p user.error -t vcap.$(basename $0).原创 2015-01-15 14:10:53 · 2888 阅读 · 0 评论