
linux
文章平均质量分 53
aa838260772
这个作者很懒,什么都没留下…
展开
-
capset capget 设置和获得进程权限
capset 和capget 分别用来设置和获取进程权限: int capget(cap_user_header_t hdrp, cap_user_data_t datap); int capset(cap_user_header_t hdrp, const cap_user_data_t datap);相关的宏和数据结构原创 2014-09-26 19:27:44 · 6349 阅读 · 0 评论 -
mysql的表的导入与导出
1.linux下面mysql的导入与导出: 导出: 在linux命令行下:mysqldump -u 用户名 -p 数据库名 表名 > 存入的文件名 [syswj@host ~]$ sudo mysqldump -u syswj -p sysDB stu > stu.sqlEnter password: [syswj@host ~]$ lsc++_primer原创 2014-10-10 19:12:45 · 655 阅读 · 0 评论 -
awk基本用法
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho转载 2014-11-13 16:48:07 · 454 阅读 · 0 评论 -
mysql下面c连接mysql数据库
1.安装sudo yum install mysql-devel 安装组件和库2.#include #include #include #include int main(int argc, const char *argv[]){ MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; mysql_in原创 2014-10-11 01:47:42 · 730 阅读 · 0 评论 -
TCP的RST攻击详解
在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。 1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解转载 2014-10-03 20:53:10 · 3571 阅读 · 0 评论 -
进程间IPC机制
Linux进程间通信类型:1.信号机制 发送信号2.管道机制 读者-写者3.消息队列 消息缓冲队列通信机制,传送小量数据4 .共享内存 传送大量数据,锁机制5.信号量 P、V操作,进程间同步互斥,生产者-消费者,哲学家进餐等。 现在linux使用的进程间通信方式:(1) 管道转载 2014-10-03 23:37:22 · 509 阅读 · 0 评论 -
几种并发服务器模型的实现
客户端使用select模型: 1 #include 2 #include 3 #include string.h> 4 #include 5 #include 6 #include 7 #include in.h> 8 #include 9 #include select.h> 10 #include 11 12 #原创 2014-10-04 13:12:06 · 1664 阅读 · 0 评论 -
epoll的echo程序(待修改)
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define MAX_EVENTS 500int g_epollFd;struct m原创 2014-11-02 22:37:38 · 701 阅读 · 0 评论 -
linux中的__builtin_except()函数
在看代码的时候看到两个宏函数:likely() unlikely()#define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __builtin_expect(!!(x), 0) __builtin_expect()大致作用是处理分支预测,让编译器编译的时候可以做一些优化,优化可能性大的分支程序if( like原创 2014-10-19 15:36:33 · 1785 阅读 · 0 评论 -
popen在程序内调用可执行程序
一般有3种方法:1.exec函数 2.system函数 3. popenint xpipe(char *cmdname, char *outbuf, int outlen){ int ret = 0; FILE *pf; pf = popen(cmdname, "r"); if( !pf ) return -1; if(outbu原创 2015-01-13 14:55:32 · 1377 阅读 · 0 评论 -
linux下awk的关联数组
昨天看了同事的一个shell脚本,如下:awk 'NR==FNR{++a[$1]}a[$1]==0{print $1,a[$1]}' ./a.txt ./b.txt作用是:打印出b.txt第一列中不在a中行,初一看,不是很懂,shell脚本没有系统的学过,平时用也只是一些简单的执行下可执行程序,跑下定时任务NR和FNR,NR打印行数,FNR同样是打印行数,区别是后者每次打开一个文件时都原创 2016-02-14 22:29:23 · 1273 阅读 · 0 评论 -
linux下删去文件中包含某个字符串的行
删除文件中带有某个字符串的所有行a.txtsed -e '/xxx/d' a.txt -->打印出来 文件中包含xxx的行都不会显示 使用-i参数的话就直接修改文件了修改指定字符串sed -e 's/aaa/bbb/g' 全局aaa替换为bbb打印指定行cat a.txt | sed -n '1,3p' 打印文件a.txt的1到3行原创 2016-02-15 14:24:08 · 22522 阅读 · 0 评论 -
VMware中虚拟机复制的问题
流程:选择已安装虚拟机->管理->克隆->最后每个搞一个完整的快照克隆机遇到的问题:不能联网,多了个eth1解决办法:1.root权限切换到/etc/udev/rules.d删除70-persistent-net.rules文件2. 点击左面右上角Network Connections删除System eth0和下面的ech1 -->http://359611946.blog原创 2016-03-06 00:53:00 · 659 阅读 · 0 评论 -
inotify结合select监控目录下文件变动
#include #include #include #include #include #include #include #define EVENT_SIZE ( sizeof (struct inotify_event) )#define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )#define MAXLEN 1024c原创 2016-11-01 10:37:21 · 3611 阅读 · 0 评论 -
非阻塞connect
步骤1: 设置非阻塞,启动连接实现非阻塞 connect ,首先把 sockfd 设置成非阻塞的。这样调用 connect 可以立刻返回,根据返回值和 errno 处理三种情况:(1) 如果返回 0,表示 connect 成功。(2) 如果返回值小于 0, errno 为 EINPROGRESS, 表示连接 建立已经启动但是尚未完成。这是期望的结果,不是真正转载 2014-10-10 00:28:06 · 577 阅读 · 0 评论 -
nginx的安装
安装过程见:http://www.21ops.com/ops/8960.html 流程: 1.前序必须安装的 :gcc pcre zlib openssl 等库和工具 2.wget http://nginx.org/download/nginx-1.5.4.tar.gz 下载 解压 进入目录./config --prex=/usr/lo原创 2014-10-10 10:59:28 · 776 阅读 · 0 评论 -
tcp带外数据连接
1. 带外数据的发送。 函数: send(fd, 'a', 1, MSG_OOB); tcp内核: 不管什么情况(忽略掉nagle算法和窗口大小等因素),立刻发送一个urg包给对端,告诉对方我要发送OOB了和这个内容的位置。需要注意的是,实际的‘a'内容也是通过正常的发送缓冲区发送出去的。当发送区满的时候或是通告的窗口为0,紧急数据本身实际上也阻塞了,不管怎样至少一个ur转载 2014-09-26 21:48:05 · 621 阅读 · 0 评论 -
通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
1.socketpair()建立一个全双工的管道2.通过struct msghdr struct cmsghdr* struct iovec 将fd封装到struct msghdr中去3.通过sendmsg函数发送,通过recvmsg函数接收,并从消息中分离出fd文件描述符 转自: http://tech.ddvip.com/2013-06/13715876701974转载 2014-09-25 12:54:39 · 518 阅读 · 0 评论 -
linux中使用定时器
1.使用14号信号SIGALRM,调用alarm函数#include #include #include #include #include void handle(int signum){ printf("hello\n");}int main(int argc, const char *argv[]){ signal(SIGALRM, handle);原创 2014-09-25 16:17:49 · 702 阅读 · 0 评论 -
gdb调试时:打印不出信息 debuginfo-install libgcc-4.4.7-4.el6.i686
1.修改/e3.yum --nogpgcheck --enablerepo=debug install glibc-debuginfo原创 2014-09-27 13:46:42 · 855 阅读 · 0 评论 -
gdb调试多进程程序
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent原创 2014-09-27 17:19:06 · 847 阅读 · 0 评论 -
fcntl函数
fcntl使用功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]转载 2014-09-26 22:08:10 · 377 阅读 · 0 评论 -
EBP ESP 以及进程的切换
EIP,EBP,ESP都是系统的寄存器,里面存的都是些地址。 为什么要说这三个指针,是因为我们系统中栈的实现上离不开他们三个。 我们DC上讲过栈的数据结构,主要有以下特点: 后进先处。(这个强调过多)其实它还有以下两个作用: 1.栈是用来存储临时变量,函数传递的中间结果。 2.操作系统维护的,对于程序员是透明的。我们可能只强调了它的后进先出的特原创 2014-10-06 22:08:48 · 787 阅读 · 0 评论 -
svn的简单使用
1.建立svn库syswjdeMacBook-Air:~ syswj$ mkdir svnsyswjdeMacBook-Air:~ syswj$ lsDesktop Downloads Movies Pictures solarizedDocuments Library Music Public svnsyswjdeMacBook-Air:~ syswj$原创 2014-10-22 20:44:08 · 919 阅读 · 0 评论 -
curl的简单使用
1.命令行模式: curl -d "附加信息" url curl -v "url"2.通过程序调用static size_t process_data(void *buf, size_t size, size_t nmemb, void *str){ std::string &content = *(std::string *)str; std原创 2014-10-23 20:09:35 · 1039 阅读 · 0 评论 -
SIGPIPE信号的产生以及处理
看了TCP的一些东西,知道服务器往以及关闭了的sockfd中写两次时,会产生SIGPIPE信号,如果不处理,默认会挂掉服务器弄个小例子测试一下:#include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2014-10-07 15:05:39 · 1996 阅读 · 0 评论 -
linux下的时间戳
Linux时间戳和标准时间的互转在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数。如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等等。 下面介绍几种时间戳格式和标准时间格式转换的方法:1、分别以标准格式和时间戳来显示当前时间[root@365linux转载 2014-11-11 20:09:21 · 741 阅读 · 0 评论 -
从日志中找出资产限制出错的并处理
#!/bin/bashexport LD_LIBRARY_PATH=/home/server/lib:$LD_LIBRARY_PATHcd /home/server/tools/unfreeze_fund/shell/dateDate=$(date +%Y%m%d)grep "UnFreezeAccount fail" "/home/server/tongxin_srv/log/to原创 2014-11-11 20:13:13 · 711 阅读 · 0 评论 -
tcpdump抓包以及端口查看的一些操作
1.tcpdump; nginx开启后会占用80端口,此时执行命令:tcpdump tcp port 80 结果如下:[syswj@host ~]$ sudo tcpdump tcp port 80[sudo] password for syswj: tcpdump: verbose output suppressed, use -v or -vv f原创 2014-10-10 14:10:08 · 23182 阅读 · 0 评论 -
keepalived简单测下
keepalived的简单使用,自动failover安装1.keepalived下载:http://keepalived.org/ 下载自己喜欢的版本2../configure && make && maake install3.安装以及配置开机启动: cp ./keepalived /usr/sbin/ cp ./keepalived/etc/rc.d/init.原创 2017-06-10 15:42:31 · 5589 阅读 · 0 评论