
centos
文章平均质量分 56
swartz_lubel
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
gbd info
(gdb) help infoGeneric command for showing things about the program being debugged.List of info subcommands:info address -- Describe where symbol SYM is storedinfo all-registers -- Lis原创 2017-09-14 23:21:33 · 360 阅读 · 0 评论 -
etc/ld.so.conf文件
Linux 共享库 Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。 第二类是动态链接的可执行程序。 静态可执行程序与动态可执行程序比较 我们可以用 ldd 命令来确定某一特定可执行程序是否为转载 2017-09-01 00:22:28 · 264 阅读 · 0 评论 -
linux shell if -a 到-z参数含义
[-a file] 如果file存在则为真 [-b file] 如果file存在且是一个块特殊文件则为真 [-c file] 如果file存在且是一个字特殊文件则为真 [-d file] 如果file文件存在且是一个目录则为真 -d前的!是逻辑非 例如: if [ ! -d lcdpath/par_date ] 表示后面的那个目录不存在,则执行后面的then操作转载 2017-09-01 09:40:09 · 374 阅读 · 0 评论 -
iptables
一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。转载 2017-09-01 21:57:54 · 229 阅读 · 0 评论 -
Psping四大功能介绍:ICMP Ping/TCP Ping/延迟测试/带宽测试
http://winhe.blog.51cto.com/7547741/1742633本文主要介绍微软的测试工具Psping,该工具功能主要包括:ICMP Ping、TCP Ping、延迟测试、带宽测试需要说明一种应用场景:由于Windows Azure数据中心禁ICMP,使用Psping的TCP Ping的功能来测试联通性或者故障排查就非常有用了。转载 2017-09-27 14:35:27 · 20983 阅读 · 1 评论 -
应用环境下的TIME_WAIT和CLOSE_WAIT
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.youkuaiyun.com/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。在服务器的日常维护过程中,会经常用到下面的命令:[plain] view plain转载 2017-09-02 09:58:20 · 206 阅读 · 0 评论 -
sysctl.conf文件详解
/proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效。/etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。也就是说/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系。 直接通过修改sysctl.conf转载 2017-09-02 10:20:48 · 1967 阅读 · 0 评论 -
HTTP的长连接和短连接
一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。 HTTP首部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1转载 2017-09-27 22:00:30 · 1291 阅读 · 0 评论 -
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽象成各种数据对象:进程控制块、虚存空间、文件系统,文件I/O、信号处理函数。所以创建一个进程的过程就是这些数据对象的创建过程。 在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性,但是二者之间的通转载 2017-09-03 00:36:53 · 2678 阅读 · 0 评论 -
centos 最简单的服务程序
Linux平台下的service程序编写指南Hu Dennis Sep 24, 2010转载注明出处http://blog.youkuaiyun.com/gobitan 摘要:本文主要介绍了如何编写一个service服务所涉及的两个主要方面。1)将一个普通程序装成daemon程序;2)编写service方式的shell脚本。并以C语言为例,基于Red hat 企业版5.3平台演示了一个servic转载 2017-08-31 23:53:07 · 937 阅读 · 0 评论 -
mmap使用说明
mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可转载 2017-09-25 23:42:38 · 1221 阅读 · 0 评论 -
Linux网络编程--sendfile零拷贝高效率发送文件
本博文介绍使用sendfile函数进行零拷贝发送文件,实现高效数据传输,并对其进行验证。那么什么是sendfile呢?linux系统使用man sendfile,查看sendfile原型如下:#include ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);转载 2017-09-22 23:17:14 · 342 阅读 · 0 评论 -
Linux实现的ARP缓存老化时间原理解析
一.问题众所周知,ARP是一个链路层的地址解析协议,它以IP地址为键值,查询保有该IP地址主机的MAC地址。协议的详情就不详述了,你可以看RFC,也可以看教科书。这里写这么一篇文章,主要是为了做一点记录,同时也为同学们提供一点思路。具体呢,我遇到过两个问题:1.使用keepalived进行热备份的系统需要一个虚拟的IP地址,然而该虚拟IP地址到底属于哪台机器是根据热备群的主备来决定的,因此转载 2017-09-23 21:11:18 · 7858 阅读 · 0 评论 -
Linux /proc/pid目录下相应文件的信息说明和含义
Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上。Proc有多个功能 ,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非常有 用的功能,也是Linux变得更加特别的功能就是以文本流的形式来访问进程信息。很Linux命令(比如 ps、toPpstree等)都需要使用这个文件系统的信息。注意,本文就是向用户介绍一些访问这些信息的方法 。需要说明的是,本文所述的内容转载 2017-09-23 23:47:14 · 3682 阅读 · 0 评论 -
linux ulimit
linux下默认是不产生core文件的,要用ulimit -c unlimited放开概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源转载 2017-09-24 00:23:46 · 194 阅读 · 0 评论 -
/etc/bashrc和/etc/profile
在一般的 linux 或者 unix 系统中, 都可以通过编辑 bashrc 和 profile来设置用户的工作环境, 很多文章对于 profile 和 bashrc 也都有使用, 但究竟每个文件都有什么作用和该如何使用呢?首先我们来看系统中的这些文件, 一般的系统可能会有/etc/profile/etc/bashrc~/.bashrc~/.profile而转载 2017-09-24 22:19:39 · 400 阅读 · 0 评论 -
可重入函数与不可重入函数
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其转载 2017-09-25 15:07:22 · 216 阅读 · 0 评论 -
linux 长连接个数限制
一、TCP四元组本地IP地址、本地TCP端口号、外地IP地址、外地TCP端口号,主要外地IP地址或者端口不同,则临时端口可以复用。二、调整能打开的最大文件描述符$ echo "655350" > /proc/sys/fs/file-max$ vi /etc/security/limits.conf [plain] view转载 2017-09-08 21:28:18 · 4956 阅读 · 1 评论 -
GLIBC中NPTL线程实现代码阅读
项目的性能测试告一段落,暂时松了一口气。但是也发现很多知识的盲点,也许这就是所谓的知道的越多,不知道的也越多。 现在所有的程序基本上都是用多线程来实现的,尤其是Unix/Linux server程序。我原本以为线程是直接在内核实现的,或者大部分代码应该在内核中。但是当我找pthread_create或者pthread字眼时,发现Linux内核中的代码根本搜索不到,于是用g++ -M命令找到了p转载 2017-09-25 20:31:08 · 1080 阅读 · 0 评论 -
从内核文件系统看文件读写过程
系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运行在用户模式下,当应用转载 2017-09-26 10:30:06 · 459 阅读 · 0 评论 -
Linux下记录所有用户操作的脚本
这个脚本是在网上找到的,稍微做了一些修改,可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并生成包含“用户/IP/时间”的文件存放在指定位置,方便管理员以后查看不同用户都在服务器上干了些什么!目前这个代码只实现了记录用户的操作命令,但是像vi编辑只会记录vi这条命令,但是在文件里所修改的内容无法记录。。。有时间再研究一下!将下面的代码追加到/e转载 2017-09-20 21:07:24 · 603 阅读 · 0 评论 -
windows 和linux 同步api对比
初始化临界区(win)InitializeCriticalSection(RTL_CRITICAL_SECTION &rtl_critial_section) (linux) pthread_mutexattr_init(&(mutex)->attr);pthread_mutexattr_settype(&(mutex)->attr, PTHREAD转载 2017-09-29 09:18:05 · 502 阅读 · 0 评论 -
dmesg时间转换工具
最近在排查一个core问题,对dmesg的时间戳,做了一个转化工具:ts_dmesg.sh借助awk 和shell实现:[python] view plain copy#!/bin/sh uptime_ts=`cat /proc/uptime | awk '{ print $1}'` #echo $uptime_t转载 2017-10-18 09:38:39 · 1573 阅读 · 0 评论 -
TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项
基本概念:SO_REUSEADDR套接字选项能起到以下4个不同的功用:(1)SO_REUSEADDR允许启动一个监听服务器并捆绑众所周知端口,即使以前建立的该端口用作它们的本地端口的连接仍存在。这个条件通常是这样碰到的:a)启动一个监听服务器;b)连接请求到的,派生一个子进程来处理这个客户;c)监听服务器终止,但子进程继续为现有的连接上的客户提供服务;d)重启监听服务器。默认情况下,当监听服务器在...转载 2018-03-12 11:23:18 · 215 阅读 · 0 评论 -
UDP主要丢包原因及具体问题分析
UDP主要丢包原因及具体问题分析 一、主要丢包原因 1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。 2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个...转载 2018-03-12 11:23:49 · 1212 阅读 · 0 评论 -
tinyxml2
#include <stdio.h>#include "tinyxml2.h"using namespace tinyxml2;int main(){ XMLDocument doc; if(doc.LoadFile("DC.xml")!=0) { printf("load DC.xml err"); return -1; } printf("load ...原创 2018-03-05 10:21:30 · 304 阅读 · 0 评论 -
rapidjson
Document document; if (document.Parse(req_buf).HasParseError()){ printf("parse URL Body err,info = %s",req_buf); return ;} const char* szOptType = document["optType"].GetString();if (szOp...原创 2018-03-05 10:28:09 · 291 阅读 · 0 评论 -
c++ 实现组播协议
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <winsock.h>#pragma comment(lib, "Wsock32.lib")#define close closesocket#define LOCAL_IP "0.0.0.0"ty...原创 2018-02-11 14:21:17 · 6965 阅读 · 1 评论 -
Linux 下网络性能测试工具 iperf 的安装和使用
简介:Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。Iperf在linux和windows平台均有二进制版本供自由使用安装:下载地址:iperf-2.x.x.tar.gz 下载后解压tar xvf iperf-2.0.5.tar.gzcd iperf-2.0.5./configuremakem...转载 2018-03-12 21:30:51 · 2879 阅读 · 0 评论 -
squid的简单介绍
squid的概念squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据...转载 2018-03-12 22:47:58 · 646 阅读 · 0 评论 -
图解正向代理、反向代理、透明代理
套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。一、正向代理(Forward Proxy)一般情况下,如果没有特别说明,代理...转载 2018-03-13 10:36:48 · 330 阅读 · 0 评论 -
firewalld
从CentOS7(RHEL7)开始,官方的标准防火墙设置软件从iptables变更为firewalld,相信不少习惯使用iptables的人会感到十分不习惯,但实际上firewalld更为简单易用。 大致用法就是:把可信任的IP地址添加到“trusted”区域,把不可信任的IP地址添加到“block”区域,把要公开的网络服务添加到“public”区域。 配置方式firewalld的配置文件一般存放...转载 2018-03-02 09:36:39 · 252 阅读 · 0 评论 -
hydra安装及使用
说明:hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。官网:http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PR...转载 2018-02-28 16:34:00 · 2504 阅读 · 0 评论 -
HTTP客户端(libcurl) & HTTP服务端(libevent)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl转载 2017-09-16 11:03:50 · 2585 阅读 · 0 评论 -
Linux 中的零拷贝技术
引言传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限转载 2017-09-22 16:45:25 · 365 阅读 · 0 评论 -
关于Linux线程的线程栈以及TLS
说明:a.本文描述Linux NPTL的线程栈简要实现以及线程本地存储的原理,实验环境中Linux内核版本为2.6.32,glibc版本是2.12.1,Linux发行版为ubuntu,硬件平台为x86的32位系统。b.对于Linux NPTL线程,有很多话题。本文挑选了原则上是每线程私有的地址空间来讨论,分别是线程栈和TLS。原则山私有并不是真的私有,因为大家都知道线程的特点就是共享地址空转载 2017-09-14 21:49:03 · 1566 阅读 · 0 评论 -
std::string::assign 崩溃的问题
最近遇到了一个assign 崩溃的问题, 代码的话 其实就是去assign,莫名其妙就崩溃,是在一个自动化测试的时候发生的,可能手动测试的时候不会发现!猜了一下里面的assign的逻辑,基本是这样的:每次去assign的时候 string内部会去申请内存,然后把数据放进去,第二次的话 会首先将之前的先delete掉,再重新new一遍!那样的话 多线程就有问题了,因为这个东西的话 本身不是线原创 2017-08-21 18:52:33 · 16008 阅读 · 0 评论 -
C++ 单例模板
#ifndef _XTHREADDEFINE_H#define _XTHREADDEFINE_Htemplateclass singleton{public: static T* Instance() { return pInstance; } static T* pInstance;private: //构造函数隐藏起来 singleton(){} //将拷贝构原创 2017-08-27 23:31:20 · 634 阅读 · 0 评论 -
hping3 使用详解
hping是面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具。作者是Salvatore Sanfilippo,界面灵感来自ping(8)unix命令,目前最新版是hping3,它支持TCP,UDP,ICMP和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。...转载 2018-02-11 17:07:29 · 20565 阅读 · 1 评论 -
Linux系统调用Hook姿势总结
相关学习资料http://xiaonieblog.com/?post=121http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing-hook.htmlhttp://www.catonmat.net/blog/simple-ld-preload-tutorial/http://os.51cto.com/art/201004/195...转载 2018-02-11 17:12:04 · 3792 阅读 · 0 评论