nginx日志分析以及常用的命令

获得访问前10位的ip地址

 cat access.log|gawk '{print $1}' |sort|uniq -c|sort -nr |head -10

访问次数最多的文件或页面

 cat access.log|gawk '{print $11}'|sort|uniq -c|sort -nr

通过子域名访问次数,依据referer来计算,稍有不准

 cat access.log | awk '{print $11}' | sed -e ' s/http:\/\///' -e ' s/\/.*//' | sort | uniq -c | sort -rn | head -20

列出传输大小最大的几个文件 (更多…)

你可能还喜欢下面这些文章

js保存用户自定义的样式重新载入会闪烁的解决方案

在制作一个页面的时候,有需要前台js保存用户自定义的样式的需求,但是保存之后,重新刷新页面,会显示原来的样式,然后再变更为现在的自定义的样式。这是一个有闪烁的例子,点击打开保存样式之后,再重新强制刷新几次,可以看到页面在载入的时候会出现闪烁的情况。强迫症患者表示这不能接受,页面这么小的情况都闪烁的这么厉害,这页面大了,加载速度慢了,自定义样式还得等着加载完成之后才能显示,就失去了自定义的意义了。上面的闪烁是可以理解的,css渲染完成之后,js给body增加了一个class,浏览器又会重新渲染,因此会出现短暂的闪烁那么在渲染到head的时候,此时再用js给head标签里面增加css呢?这样不就在

mac下面查看端口占用进程情况

在linux下面有netstat可以查看指定端口被哪些进程占用,但是mac下面就不好用了,看不到进程号。mac下面可以使用lsof来查看端口被哪个进程占用,比如查看80端口被占用情况:lsof -i tcp:80lsof是列出打开的文件命令,更多的用法可以参考: https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/lsof.html原文如下:lsof(list open files)是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (

wordpress慢了,来用memcache和cdn加速一下吧

我用的vps,用了wordpress之后速度慢了不少,内存,cpu,涨的都厉害,很直观。于是,写插件吧,虽然wordpress的插件很多,缓存插件也不少,但满足我的需求的却是没有。我要的是这样的1.使用memcache缓存整个页面。(memcache可压缩缓存,并且我的页面并不多,因此占用并不大)2.在入口处就加载并且使用缓存(仅仅加载一个我预定义的缓存读取php文件,io极少,速度极快)需求很少,因为是特定的需求,十分简单,我要的就是整个页面都跑在内存中!写插件吧......几天之后,一个插件完成了。hccache缓存插件加速后台菜单是酱紫的hccache菜单点开之后是酱紫的能够定义缓存过期

linux命令:ls用法,列出文件及目录

原标题:每天一个linux命令(1):ls命令ls 命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单,如果ls指定其他目录那么就会显示指定目录里的文 件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。ls 命令在日常的linux操作中用的很多!ls命令格式ls  命令功能列出目标目录中所有的子目录和文件。常用参数-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。

发布composer包到packagist让所有人都能用

创建了composer包之后,要让所有人都能使用你的包,就必须要发布到packagist上。首选你的包需要使用git大多数人可能都有github了,进入packagist的提交页面:https://packagist.org/packages/submit,输入包的github地址,提交即可。使用hook自动更新当提交了github之后,想让你的包自动更新可以使用webhook。按照相应的提示去设置就可以了。

欧拉计划:找出1000以下3与5的倍数之和

题目如果我们列出10以下的3和5的倍数,我们可以得到3,5,6,9。它们的和为23。请求出1000以下所有的3和5的倍数之和。原文If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.Find the sum of all the multiples of 3 or 5 below 1000.原文链接https://projecteuler.net/problem=1解答我会用php,pyth

linux文件描述符介绍

文件描述符是什么文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非Unix内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如

ftp命令大全详解

来熟悉熟悉ftp命令,对于服务器之间的文件传输太有用啦,不会怎么能行呢!先来看看基础的命令,包括了连接,列出列表,下载,上传,断开这最基础的命令,会这些,在使用ftp命令行就毫无压力啦!1. 连接ftp服务器格式:ftp a)在linux命令行下输入:b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。2.列出文件列表以及切换目录这部分其实和linux并无区别,分别是ls,和cd列出目录列表切换当前目录3. 下载文件下载文件通常用get和mget这两条命令。a) get格式:get 将文件从远端主机中传送至本地主机中。如要获取远程服务器上/usr/your/1.htm,则

git设置全局ignore

git可以设定全局ignore,这样就不用在每一个项目里面设置ignore文件。具体的方法是首先更改git全局配置git config --global core.excludesfile ~/.gitignore_global然后编辑文件这个文件和gitignore写法完全一致

varnish的基本工作原理

Varnish是一个HTPP反向代理缓存,它接受来自客户端的请求并试图从缓存中取出相应的数据来应答,如果缓存中并没有相应的数据,它将会把请求指向后端机器,获取并且储存响应的数据,之后再交付给用户。当varnish有缓存的时候响应通常只需要几微秒的时间,比直接访问后端机器通常要快两个数量级,所以要做的就是尽可能的将页面缓存到varnish中。varnish可以根据后端响应的内容来决定是否储存,在响应头中加入cache-control将会被varnish缓存。使用cookie可以让varnish不缓存。这些都是可以在一个vcl的配置文件( Varnish Configuration Languag

vsftpd配置文件详解

vsftpd的配置文件

/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd Vsftpd的主程序
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
/etc/vsftpd/user_list 禁 止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd /vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许 user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
/var/ftp 匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub 匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log Vsftpd的日志文件

(更多…)

你可能还喜欢下面这些文章

使用crontab+rsync备份你的站点

这是一篇记录站点备份的文章,通常站点需要每隔一周,甚至更短的时间进行备份,然而手工备份再下载下来这实在是麻烦,于是利用crontab和rsync进行站点备份,再利用我本地的树莓派定时拉取备份结果,想想还是挺完美的。编写备份的shell站点文件备份很简单,直接将站点打包压缩即可,但是想了想还是不把站点路径定义死,而是使用一个参数将站点路径传递进去,这样就能写一个通用的文件备份#! /bin/bashsrc='';dest='';while getopts 's:d:' OPTdo case $OPT in s) src=$OPTARG;; d) dest=$OPTARG;; esacdonei

linux shell 入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shel

使用sublime+platuml高效画图

程序员难免要经常画流程图,状态图,时序图等。以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋。有时候修改文字后,为了较好的显示效果不得不再去修改图形。今天介绍的工具是如何使用 Sublime + PlantUML 的插件画流程图,状态图,时序图等。这是一种程序员看了就会爱上的画图方式:自然,高效。什么是 PlantUMLPlantUML 是一个画图脚本语言,用它可以快速地画出:时序图流程图用例图状态图组件图简单地讲,我们使用 visio 画图时需要一个一个图去画,但使用 PlantUML 只需要用文字表达出图的内容,然后就可以直接生成图片。看一个最简单的例子:软件安装这些软件

gcc/g++编译参数详解

编译步骤gcc 与 g++ 分别是 gnu 的 c & c++ 编译器。gcc/g++ 在执行编译工作的时候,总共需要4步:预处理,生成 .i 的文件将预处理后的文件转换成汇编语言, 生成文件 .s 有汇编变为目标代码(机器代码)生成 .o 的文件连接目标代码, 生成可执行程序 参数详解-x language filename参数含义为指定文件所使用的语言。根据约定,C语言的后缀名称为".c",而 C++ 的后缀名为".cpp"或".cc",但如果你的源代码后缀不约定的那几种,那么需要使用-x参数来指定文件所使用的语言。这个参数对他后面的文件名都起作用。 可以使用的参数吗有下面的这些:

ftp命令大全详解

来熟悉熟悉ftp命令,对于服务器之间的文件传输太有用啦,不会怎么能行呢!先来看看基础的命令,包括了连接,列出列表,下载,上传,断开这最基础的命令,会这些,在使用ftp命令行就毫无压力啦!1. 连接ftp服务器格式:ftp a)在linux命令行下输入:b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。2.列出文件列表以及切换目录这部分其实和linux并无区别,分别是ls,和cd列出目录列表切换当前目录3. 下载文件下载文件通常用get和mget这两条命令。a) get格式:get 将文件从远端主机中传送至本地主机中。如要获取远程服务器上/usr/your/1.htm,则

iterm2 使用 rz、sz 的方法

如果没有额外的设置,iterm2 使用 rzsz 的时候会卡在这个时候就需要使用iterm2提供的trigger来实现rzsz的功能。第一步:本机安装rzsz使用rzsz之前本地也需要安装如果没有安装brew,请先安装brew,mac必备的包管理器!第二步:创建发送和接收脚本发送文件的脚本如下,可以复制下面的内容,保存在 /usr/local/bin/iterm2-send-zmodem.sh中。接收文件的脚本如下,同样可以复制保存在/usr/local/bin/iterm2-recv-zmodem.sh第三步:设置Triggerteigger需要设置两个,一个实发送文件的trigger,一个

Go入门:六、常用标准库

这是我的Go学习的第六篇笔记,也是Go入门的最后一篇笔记。在大多数语言中,了解了变量和数据类型,流程控制,函数,面向对象,再加上标准库,就可以用这门语言去写一些项目了。首先让我想想,在工作中通常会用语言频繁处理什么问题或者处理什么数据?最常见的应该是各种字符串操作,日期和时间,读写文件、socket等IO相关的操作!字符串处理 — StringsString提供了一组处理字符串的操作,常用的有:判断一个字符串是否在另一个字符串中分割字符串为[]string和组合[]string为一个字符串字符串替换...太多了,就不一一列举了,这里列出一些常用的字符串操作。字符串判断字符串分割与合并字符串转换

linux awk命令分析你的文本或日志,awk命令用法

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您

布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法

引言在介绍布隆过滤器之前我们首先引入几个场景。场景一在一个高并发的计数系统中,如果一个key没有计数,此时我们应该返回0。但是访问的key不存在,相当于每次访问缓存都不起作用了。那么如何避免频繁访问数量为0的key而导致的缓存被击穿?有人说, 将这个key的值置为0存入缓存不就行了吗?这是确实是一种解决方案。当访问一个不存在的key的时候,设置一个带有过期时间的标志,然后放入缓存。不过这样做的缺点也很明显:浪费内存和无法抵御随机key攻击。场景二在一个黑名单系统中,我们需要设置很多黑名单内容。比如一个邮件系统,我们需要设置黑名单用户,当判断垃圾邮件的时候,要怎么去做。比如爬虫系统,我们要记录下

查看varnish统计信息命令:varnishstat

varnishstat是一个查看当前varnish实例的实时运行状态信息。命令以及参数如下:varnishstat 以下选项可用: -1不再显示不断更新的显示,而是将统计信息打印到stdout。-f <glob>Field inclusion glob. Use backslash to escape characters. If the argument starts with '^' it is used as an exclusion glob. Multiple -f arguments may be given, and they will be ap

linux下面ftp的搭建

linux下面ftp服务器一般选择vsftpd这个免费开源的ftp程序。主要说一下其安装,配置,启动这些过程。 由于我的是centos系统,只需要使用

yum install vsftpd

就可以安装啦 ubuntu用

apt-get install vsftpd

安装完毕之后。首先在linux下面添加一个用户作为ftp用户 useradd –d /var/www/site -g ftp –s /sbin/nologin myftp (更多…)

你可能还喜欢下面这些文章

centos7系统初初始化工作以及网站环境搭建(php7+nginx+mysql)

拿到一台做网站的主机, 我们先要做一些环境初始化的工作, 由于这些工作会有些繁琐,因此记录一下. 后面将这些流程写成一个shell脚本,一次性完成.此次工作流程如下: 安全性设置 额外的目录创建 网站环境搭建安全性设置一般从某云上买的主机, 默认账户是root, 为了不被暴力破解, 我们首先需要设置一个强一点的密码,不过更好的方法是禁用root, 另外创建一个用户来作为日常管理的账户.第一步: 创建一个新的账户,并且能够切换到root权限比如我的用户名叫xiaobai, 添加用户名就是useradd xiaobai设置密码passwd xiaobai之后输入密码,一个新的账户就设定好了.

wordpress后台增加菜单

添加WordPress顶级管理菜单其实也是一件非常简单的事情,使用两个WordPress内置函数就可以解决问题,分别是和。1.在后台添加一级菜单add_menu_page添加菜单,但是需要是用add_action挂到admin_menu的挂钩上去。代码如下add_action( 'admin_menu', 'register_my_custom_menu_page' );function register_my_custom_menu_page() { add_menu_page( 'custom menu title', 'custom menu', 'manage_options',

iterm2 使用 rz、sz 的方法

如果没有额外的设置,iterm2 使用 rzsz 的时候会卡在这个时候就需要使用iterm2提供的trigger来实现rzsz的功能。第一步:本机安装rzsz使用rzsz之前本地也需要安装如果没有安装brew,请先安装brew,mac必备的包管理器!第二步:创建发送和接收脚本发送文件的脚本如下,可以复制下面的内容,保存在 /usr/local/bin/iterm2-send-zmodem.sh中。接收文件的脚本如下,同样可以复制保存在/usr/local/bin/iterm2-recv-zmodem.sh第三步:设置Triggerteigger需要设置两个,一个实发送文件的trigger,一个

memcacheq的安装与使用

1、安装libevent官网:http://www.libevent.org/2、安装 BerkeleyDB官网:http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html(下载需要登录)安装:安装完成之后:或者:添加:并执行:3、安装 MemcacheQ官网:http://memcachedb.org/memcacheq/测试是否安装成功:4、启动服务建立相关目录:启动服务:参数说明:-d : 以后台服务方式运行-l : 设置监听地址及端口(默认是22201)-A : 数据页大小-H : 数据保存目录-

vsftpd配置文件详解

vsftpd的配置文件/etc/vsftpd/vsftpd.conf主配置文件/usr/sbin/vsftpdVsftpd的主程序/etc/rc.d/init.d/vsftpd启动脚本/etc/pam.d/vsftpdPAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)/etc/vsftpd/ftpusers禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对

开始使用varnish

本文假设你已经安装了varnish了,如果还没安装,那么请看前面的varnish的安装来安装varnish吧!下面的命令将会启动varnishservice varnish start现在你的varnish已经运行了,让我们确保它已经在工作吧!打开浏览器,在地址栏中输入http://127.0.0.1:6081/(你需要把ip替换成你的机器ip)默认的配置将会尝试将请求转发到该台机器上的8080端口上面。如果该台机器上面没有web服务,varnish将会返回Error 503 Service Unavailable。你的web应用可能运行在其他端口或者其他的机器,这需要编辑varnish的配置

网易邮箱密码被泄露事件,又一个网络安全事故

今天上午看到有人说163邮箱数据库被泄露,于是查一下,结果吓一跳。起因:乌云平台路人甲报这个漏洞最开始是乌云漏洞平台暴露出来的,于是去看了下,截图如下虽然说是某邮箱,但是看下面的评论就知道这是163邮箱了。过亿的数据库泄露,事故不小。乌云方面指出,前不久,有网友抱怨称自己的iCloud帐号被黑,绑定的iPhone手机被锁敲诈等,其共同点是都采用了网易邮箱作为iCloud帐号。网友需要注意的是,使用网易邮箱绑定淘宝、支付宝、苹果iCloud和QQ等帐号用户,需要马上解除绑定关系。据了解,在18日就有大量网易邮箱遭全面暴力破解的相关新闻放出。大量网友称绑定帐号遭泄露。其中受影响比较严重的是iPho

使用crontab+rsync备份你的站点

这是一篇记录站点备份的文章,通常站点需要每隔一周,甚至更短的时间进行备份,然而手工备份再下载下来这实在是麻烦,于是利用crontab和rsync进行站点备份,再利用我本地的树莓派定时拉取备份结果,想想还是挺完美的。编写备份的shell站点文件备份很简单,直接将站点打包压缩即可,但是想了想还是不把站点路径定义死,而是使用一个参数将站点路径传递进去,这样就能写一个通用的文件备份#! /bin/bashsrc='';dest='';while getopts 's:d:' OPTdo case $OPT in s) src=$OPTARG;; d) dest=$OPTARG;; esacdonei

autossh实现树莓派内网穿透

在我写的另一片文章《使用ssh建立反向连接》实现了内网穿透,但连接在长时间不使用时会自动断开。 现在有一个更好的解决方案,使用autossh来实现一个不会断开的反向链接,实现内网穿透。如何使用首先在树莓派上安装autossh,命令是:安装完毕后,启动autossh,可以使用如下命令:参数解释:参数“-M 5678”中,-M指定树莓派的监控端口,此处是5678。树莓派会定时检查该端口,如果不通则会重新发起连接。命令“1234:localhost:22”中, 1234表示需要在远程主机上开启的端口,22表示本地的ssh端口。这个含义表示我们希望通过公网ip和1234端口访问树莓派的22端

sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了安装package control1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)sublime text3sublime text2手动安装可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 点击