Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

伪装Nginx版本防止入侵Web服务器

伪装Nginx版本防止入侵Web服务器

为了防止被黑客扫描到web服务器信息,通过相对应的web服务器信息找出对应的版本漏洞,从而对web服务器进行入侵,nginx虽然功能强大,但是也是软件,软件就可能会有漏洞,例如nginx-0.6.32版本,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,比如上传一个jpg格式的木马到论坛网站,通过漏洞解析成一个phpshell,从而入侵获得服务器的权限,这将导致严重的安全问题,使得黑客可能攻陷支持php的nginx服务器。如果暴漏了n...
用MapReduce做相似度分析

用MapReduce做相似度分析

Q:有一批数据(10亿量级),数据内容包括:列类型idINTcontentStringid为key,全局唯一content为一个句子列之间以 分割like:1 “互联网够公司的日志无处不在,web日志,js日志,搜索日志,监控日志等等”2 "对于这些日志的离线分析(Hadoop),wget&rsync虽然人力维护成本较高,但可以满足功能行需求。但对于这些日志的实时分析需求(例如实时推荐,监控系统),则往往必须要引入一些&ld...
Linux获取线程id的方法学习

Linux获取线程id的方法学习

最近一直在想:如何确认两段代码是不是在同一个线程中执行的呢?通过查看资料,发现一种比较简单的方法就是在代码中使用printf将当前线程的id打印出来。而这也分成两种情况:1. 如果是pthread,则使用,#include <pthread.h>pthread_t pthread_self(void);2. 如果不是pthread,即是由内核创建的线程,则使用,#include <sys/types.h>pid_t gettid(v...
Linux内核模块学习

Linux内核模块学习

模块是具有独立功能的程序,它能被单独编译,但不能独立运行。它可以在系统运行时动态的被链接到内核中作为内核的一部分在内核空间运行,所以内核模块提高了内核的可扩展性。查看当前系统中已经加载了哪些模块的方法是:1. 使用lsmod命令进行查看,sh-3.2# lsmod2. 直接查看/proc文件系统中的信息,sh-3.2# cat /proc/modules以上两种方法其实是一样的,都是查看当前系统中的模块加载状况。二者区别在于lsmod命令的结果是经过格式化...
C语言typedef关键字学习

C语言typedef关键字学习

typedef关键字用来给现有数据类型创建别名。typedef int size_t;所以下面的两个定义其实完全相同。size_t size;int size;咦,下面这样定义一个size_t的宏是不是也能达到一样的效果呢?#define size_t int在这里,确实define一个数据类型宏能达到同样的目的。但是typedef和define相比:define只会在预编译阶段进行简单的替换操作;typedef则会在编译阶段进行数据类型检查。所以相比于d...
C语言const关键字学习

C语言const关键字学习

在C语言中const关键字用来修饰一个变量,它限定一个变量不允许被修改。const int max_size = 5;看起来使用const修饰的变量,和使用宏很类似,为何不直接使用宏呢?#define MAX_SIZE (5)这是因为和宏比起来:1. const修饰的是一个变量,所以会在代码编译阶段进行语法检查。而宏只会在预编译阶段进行简单的替换动作;2. 使用const修饰的是一个变量,具有具体的数据类型,所以编译器会进行类型检查。3. 可以保护被修饰的...
Linux SHELL 抓取错误日志脚本

Linux SHELL 抓取错误日志脚本

背景任何程序运行起来免不了产生很多日志,其中错误日志需要最为关心的。在某些时候会将错误日志和正常日志分开,但我们的系统却没有这么做。更麻烦的是,每个小时存储一个日志文件,所以每次为了查找当天是否有错误信息需要打开N个文件,而且不能用grep因为需要把整个堆栈抓取下来。SHELL本人对shell完全是初学,磕磕碰碰写了个脚本。主要逻辑是判断ERROR的日志级别的那一行开始记录,直到碰到下一个INFO或者DEBUG的日志级别行。#!/bin/bashisInE...
<< 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 >>