
Linux
caomiao2006
这个作者很懒,什么都没留下…
展开
-
应用设置超时时间大于3秒而实际connection timed out时间3秒的问题
Overriding the default Linux kernel 20-second TCP socket connect timeoutWhatever language or client library you're using, you should be able to set the timeout on network socket operations,转载 2016-06-11 22:14:46 · 6183 阅读 · 0 评论 -
strncat和strncpy说明
char *strncat(char *restrict s1, const char *restrict s2, size_t n);如果s2的长度比n小,则完全拷贝s2到s1末尾并以空字符结尾;如果s2的长度比n大,则只拷贝前n个字符到s1,并以空字符结尾。char *strncpy(char *restrict s1, const char *restrict s2, siz原创 2013-10-17 14:29:27 · 1222 阅读 · 0 评论 -
logrotate定期备份日志文件的配置文件样例
rotate.conf:/home/card/cardc/tmp/cslog.* /home/card/cardc/tmp/*.log {sharedscriptsprerotate /bin/mkdir /home/card/cardc/tmp/`/bin/date +%Y%m%d`endscriptcopytruncateifemptynomaildateext原创 2013-10-16 16:41:59 · 1943 阅读 · 0 评论 -
解决logrotate的copytruncate参数导致打开的文件产生空洞
logrotate的copytruncate参数导致打开的文件产生空洞日志文件保存时候使用> 将其保存,对文件进行清除和日志切割(logrotate)时,容易出现文件空洞。需要使用“>>” 可以避免该问题。修改后问题确实解决了。在此Mark一下。同理,在用fopen 打开或创建日志文件时,打开方式使用“w”类似于>,使用"a"类似于>>。如果需要对日志文件进行l转载 2013-10-15 17:08:13 · 8594 阅读 · 1 评论 -
logrotate工具的使用
logrotate是作为linux系统日志的管理工具存在。他可以轮换,压缩,邮件系统日志文件。默认的logrotate被加入cron的/etc/cron.daily中作为每日任务执行。/etc/logrotate.conf为其默认配置文件指定每个日志文件的默认规则。/etc/logrotate.d/* 为/etc/logrotate.conf默认包含目录其中文件也会被logrotate转载 2013-10-15 16:48:57 · 1042 阅读 · 0 评论 -
被遗忘的Logrotate
我发现很多人的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!Logrotate的介绍显而易见,Logrotate是基于CRON来运行的,其脚本是「/etc/cron.daily/logrotate」:#!/bin/sh转载 2013-10-15 16:50:06 · 1041 阅读 · 0 评论 -
linux shell中Find命令的使用
今天一个很偶然的机会看到了linux中的find命令,然后我在网上搜索了一下这方面的内容,为了方便大家学习参考,我就总结一下,一上午的劳动成果,呵呵!首先是find的语法:find [起始目录] 寻找条件 操作还有种表述方式:find PATH OPTION [-exec COMMAND { } \;]因为find命令会根据我们给的option,也就是寻找条件从我们转载 2013-10-10 15:16:26 · 8400 阅读 · 0 评论 -
linux shell命令汇总和备忘
1、递归删除指定名字的文件或目录(如.svn):find . -type d -name ".svn"|xargs rm -rf或者find . -type d -iname ".svn" -exec rm -rf {} \; 2、删除/查找/移动文件时排除指定文件:rm `ls *.txt|egrep -v test.txt`或者rm `l原创 2013-10-10 15:14:44 · 793 阅读 · 0 评论 -
Linux下静默安装,升级和删除Oracle客户端
有的时候不方便登陆Linux的图形界面安装oracle客户端,我们完全可以采用静默模式安装,升级和删除oracle客户端(代替OUI)。平台:RHEL4.5,oracle10.2.0.1一、静默方式安装oracle客户端1、上传oracle软件,假如放在/orahome/soft/目录下# mkdir -p /orahome/soft/# cd /orahome转载 2013-09-22 16:11:24 · 8316 阅读 · 0 评论 -
linux单独安装oracle客户端(instantclient)
首先说明:百度上面搜索的资料,都是垃圾资料,而且例子都是相互复制,确没有何参考价值, 最可烦的是需要安装oracle 远程客户端,他们那些笨蛋都是以本地为主,一般情况下本地如果有 安装oracle, 也会安装好客户端,不需要那如群笨蛋发布那些无用的信息,浪费人家的时间。 1.要远程使用oracle,先下载下面三个文件,注意版本最好一致。 oracle-insta转载 2013-09-22 16:15:09 · 9819 阅读 · 1 评论 -
Oracle中Inventory目录作用以及如何重建此目录
oraInventory存放的是Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录,来看看Oracle文档中对这个目录的一点说明:All Oracle software installations rely on this directory. Ensure that you back it up regularly. Do not delete this dir转载 2013-09-22 16:13:44 · 17968 阅读 · 0 评论 -
linux下删除乱码文件名的方法
linux下删除乱码文件名, 不废话: 1. ls -i 列出文件的节点ID, 如: 123456789 2. find ./ -inum 123456789 -print -exec rm -rf {} \; 批量删除: for n in 123456789 987654321;do find . -inum $n -exec rm -f {} \;;done转载 2013-08-21 16:50:08 · 804 阅读 · 0 评论 -
Linux手动编译安装LAMP
在linux上面LAMP安装一、 Apache安装1. download httpd 2.2.16# mkdir -p /usr/local/apache2 生成/usr/local/apache2目录2. ./configure \--prefix=/usr/local/apache2 \ --enable-so \ --enable-mods转载 2013-07-01 14:07:18 · 2118 阅读 · 0 评论 -
Linux下安装LAMP实例
apache2依赖:apr,apr-util,zlib,open-ssl;php5依赖:libxml2,zlib,curl,libjpeg,libpng,freetype,gd;1.zlib:./configure --prefix=/home/httpd/usrmakemake install2.openssl:./config enable-shared转载 2013-07-01 14:16:28 · 1605 阅读 · 0 评论 -
为Ubuntu搭建LAMP(Apache+PHP+MYSQL)开发环境
作者:老臧邮件:zangchang#gmail.com网站:http://www.fovweb.com题记:在之前的文章中,我们将Ubuntu安装进了U盘。今天我们一起来,为Ubuntu搭建PHP+MYSQL开发环境。本文将会介绍两种方法,一种是用apt-get方式进行安装,另一种是手工编译进行安装。正文:一、使用apt-get方式为Ubuntu安装PHP+转载 2013-05-27 16:21:27 · 891 阅读 · 0 评论 -
Oracle扩展PL/SQL简介
1、 PL/SQL概述。PL/SQL是Oracle对SQL规范的扩展,是一种块结构语言,即构成一个PL/SQL程序的基本单位(过程、函数和无名块)是逻辑块,可包含任何数目的嵌套了快。这种程序结构支持逐步求精方法解决问题。一个块(或子块)将逻辑上相关的说明和语句组合在一起,其形式为:DECLARE---说明BEGIN---语句序列EXCEPTION-转载 2013-05-21 18:22:18 · 785 阅读 · 0 评论 -
pro*c测试代码和编译makefile
#include #include EXEC SQL INCLUDE sqlca;int main(){ EXEC SQL BEGIN DECLARE SECTION; int count; char userpwd[100]; char dbname[100]; char records[100]; char line1[100]; char line2[1原创 2013-05-21 18:19:48 · 1718 阅读 · 0 评论 -
理解inode
inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。===================================理解inode作者:阮转载 2013-11-05 21:37:50 · 714 阅读 · 0 评论 -
Linux与JVM的内存关系分析
引言在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?转载 2016-06-04 20:45:45 · 1154 阅读 · 0 评论 -
Linux下cpu使用率load average的简单理解
Linux下cpu使用率load average的简单理解(本文的核数亦指采用超线程技术HT虚拟出来的核心,即在top命令下按1得出几个cpu即为几核)(本文的核数即命令cat /proc/cpuinfo | grep "core id" | uniq | wc -l所得出来的数值, 不包含超线程技术HT虚拟出来的核心,因为超线程虚拟出来的核心性能不及真实核心的30%, 参考http:转载 2016-05-07 15:14:11 · 688 阅读 · 0 评论 -
写时拷贝机制(copy on write)(转自搜狐达人空间的笔记)
Linux中内存的管理和分配Linux的页目录表和页表是在程序head.s中设置的.head.s程序在物理地址0处存放了一个页目录表,紧随其后的是4个页表.page.s程序用于实现页异常中断处理过程,其中缺页和页写保护引起的中断分别调用memory.c的do_no_page()和do_wp_page()函数进行处理.do_no_page()会把需要的页面从块设备中取到内存指定位置处转载 2016-05-29 19:05:22 · 3181 阅读 · 0 评论 -
tomcat环境下服务器文件句柄耗尽(Too Many Open Files)的问题排查
转载注明出处,谢谢~http://blog.youkuaiyun.com/shootyou 前段时间帮助公司解决了一次tomcat环境服务器的异常,今天有时间过来总结一下。 问题的表现:tomcat服务在重启之后,短时间内会承受大量访问,由于这个时候缓存还没建立,每次访问都将消耗一定资源(数据库连接或者文件IO),并发量在2000左右的时候tomcat转载 2016-05-15 02:08:27 · 3335 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
来自:http://blog.youkuaiyun.com/shootyou/article/details/6622226 昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.youkuaiyun.com/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_W转载 2016-05-14 22:36:32 · 1394 阅读 · 0 评论 -
为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
TCP keep-alive的三个参数用man命令,可以查看linux的tcp的参数:man 7 tcp11其中keep-alive相关的参数有三个: tcp_keepalive_intvl (integer; default: 75; since Linux 2.4) The number of seconds between TC转载 2016-05-14 22:33:54 · 3560 阅读 · 0 评论 -
TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
1. TCP保活的必要性1) 很多防火墙等对于空闲socket自动关闭2) 对于非正常断开, 服务器并不能检测到. 为了回收资源, 必须提供一种检测机制.2. 导致TCP断连的因素如果网络正常, socket也通过close操作来进行优雅的关闭, 那么一切完美. 可是有很多情况, 比如网线故障, 客户端一侧突然断电或者崩溃等等, 这些情况server并不转载 2016-05-14 22:31:24 · 817 阅读 · 0 评论 -
TCP连接的状态详解以及故障排查
我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)1、TCP状态linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lsof -i:port 可以检测到打开套接字的状况3)、 sar -n SOCK 查看tcp创建的连接数4)、tcpdum转载 2016-05-14 21:52:17 · 10147 阅读 · 0 评论 -
TCP网络编程中connect()、listen()跟accept()三者之间的关系
基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Linux 内核自动完成 TCP 三次握手连接(三次握手详情,请看《浅转载 2016-05-14 21:37:27 · 2299 阅读 · 0 评论 -
apache最大压力测试
服务器地址:10.3.6.70,端口:80原创 2014-09-29 21:19:59 · 1567 阅读 · 0 评论 -
Linux 性能监控
公司有个测试服务器,上面跑了几个应用和一个DB。 DB被这个几个应用使用。 最近老是被挂掉。 CPU 使用率100%。 搞到最后大家都不能用。 敲个命令都没反应。 TOP命令显示的是一些Oracle session占用CPU资源太多。 杯具的是在服务器上连sqlplus 都进不去了,命令都没反应。 只好把服务器重启了。 重启之后再看了一下,是一个同事测试的SQL 有问题。 一条SQL 占用CPU转载 2014-09-24 13:26:30 · 555 阅读 · 0 评论 -
linux目录读和执行权限的区别
目录的读权限仅允许我们读目录,获得在该目录中所有文件名的列表,但无法查看目录中文件的内容。目录的执行权限不允许我们读取目录的文件列表,但可以查看目录中文件的内容。当一个目录是我们要访问文件的路径名的一个组成部分时,对该目录的执行权限使我们可通过该目录。转载http://blog.chinaunix.net/space.php?uid=8695538&do=blog&id=转载 2014-03-21 11:00:13 · 11542 阅读 · 1 评论 -
如何在命令行中打印格式化的json和xml数据
如果你跟我一样是个重度命令行依赖用户,那么当你在Terminal中用curl调试一些Rest API的时候,肯定会因为一堆看上去杂乱无章的输出而头大不已,比如像下面这样…当然,你可以再把这一堆输出copy到某个formatter里面,如果你真的要这么做,那我推荐一个还不错的在线formatter网站。但如果你不想这么麻烦,想直接在Terminal里面就看到格式化的数据,那也可以,方转载 2014-02-25 17:17:35 · 5941 阅读 · 0 评论 -
打补丁patch 和 diff 命令的使用
打补丁patch 命令使用patch 命令用于打补丁,补丁文件是使用diff产生的patch 命令语法patch [ -b [ -B Prefix ] ] [ -f ] [ -l ] [ -N ] [ -R ] [ -s ] [ -v ] [ -c | -e | -n ] [ -d Directory ] [ -D Define ] [ -F Number ] [转载 2013-04-18 15:27:02 · 1164 阅读 · 0 评论 -
shell、控制台、终端的区别
终端(terminal,或者叫物理终端): 是一种设备,不是一个程序,一般说的就是能提供命令行用户界面的设备,典型的是屏幕和键盘,或其他的一些物理终端。虚拟终端: 屏幕和键盘只是一个终端,可能不够用,又不想增加设备投入,就产生了虚拟终端。gnome-terminal,urxvt,mlterm,xterm等等:是一个程序,职责是模拟终端设备,和虚拟终端的区别表面上在于它以 GUI转载 2013-04-12 09:54:55 · 16156 阅读 · 3 评论 -
C结构定义的问题
不能像下面的定义:typedef struct _a { int num;} a struct_a;以上定义类似于:typedef char * PCHAR p_c;都是错误的。只能单独定义变量:PCHAR p_c;原创 2011-10-17 17:29:38 · 650 阅读 · 0 评论 -
C语言引用外部变量和函数的区别
同一个工程里面不同模块之间可以互相引用全局变量和函数,但是引用变量必须在引用的模块中用extern进行显示的声明,而引用函数却不必在引用的模块中用extern声明,只需要注意在连接的时候将引用的模块连接到一起。原创 2011-10-17 17:25:49 · 4006 阅读 · 0 评论 -
Vim常用命令图示
Vim常用命令图示转载 2011-04-21 09:49:00 · 805 阅读 · 0 评论 -
安装GCC4.6.0的过程
<br /> 1、到ftp://ftp.dti.ad.jp/pub/lang/gcc/下载该版本的gcc源代码包,其实主要用到的是ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.0/里面的gcc-4.6.0.tar.bz2包,以及可能需要ftp://ftp.dti.ad.jp/pub/lang/gcc/infrastructure/里面的gmp-4.3.2.tar.bz2、mpc-0.8.1.tar.gz、mpfr-2.4.2.tar.bz转载 2011-04-20 16:38:00 · 7021 阅读 · 0 评论 -
UDP协议下检测主机是否可达的一个方法
<br />3.ICMP的应用--Traceroute(windows是tracert)<br /> Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。<br /> Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UD原创 2010-09-01 17:15:00 · 3478 阅读 · 0 评论 -
switch case里声明变量的问题
<br />switch(i)<br />{<br /><br />case 0:<br /><br />break;<br /><br />case 1:<br /> int a;<br /> a = 1;<br />break;<br /><br />}<br />以上会编译错误,因为限定这个变量定义和有效区只在该块中有效, 否则你的变量定义理论上说是对整个switch语句而言的, 但是你却定义在某个分支中, 那么其他分支 又看不到, 所以会出错。强制限定变量只在某一个语句块中有效即可解决该问题,即原创 2010-08-27 13:17:00 · 3690 阅读 · 0 评论 -
linux 客户端 Socket 非阻塞connect编程(正文)
<br />/*开发过程与源码解析<br />开发测试环境:虚拟机CentOS,windows网络调试助手<br /> 非阻塞模式有3种用途<br /> 1.三次握手同时做其他的处理。connect要花一个往返时间完成,从几毫秒的局域网到几百毫秒或几秒的广域网。这段时间可能有一些其他的处理要执行,比如数据准备,预处理等。<br /> 2.用这种技术建立多个连接。这在web浏览器中很普遍.<br /> 3.由于程序用select等待连接完成,可以设置一个转载 2010-08-02 13:01:00 · 1066 阅读 · 0 评论