分类: linux教程 |

awk 切分nginx日志中的字段

因为nginx日志中有些字段是用引号包起来的,比如"GET / HTTP/1.1"
或者有些字段是用[]包起来的, 比如[20/Jan/2019:18:30:04 +0800]

此时可以用这个命令提取数据

 awk -vFPAT=""[^"]+"|[^ ]+|\\[[^\\[\\]]+\\]' '{print $9}' access.log

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 15630

简单应对验证码接口恶意攻击

 这几天不断的有人攻击公司的验证码接口, 就是随机生成了一系列的手机号然后调用注册页面的验证码的接口. 对待这种攻击自然最严谨的是适时弹出验证码, 可临时我们没有这么快的速度去做这套验证码的方案(前面写了"适时"二字自然不能对所有人都弹出验证码, 本来用户转注册的转化率就低, 再加个验证码那就更难看了). 

今天又是周末, 只能简单处理一下.

我们的接口拉扯类似于

/api/smsCaptcha/send.json

注意到攻击者是用固定的几个IP来发起请求的, 此时最简单有效又不影响用户的方法自然是屏蔽攻击者的ip. 一个简单的指令就能让攻击者暴露无遗. 

tail -100000 /data/logs/nginx_access.log|grep smsC|awk "{print $1}'|sort |uniq -c|sort -n

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 39307

GIT不要密码, GIT记住密码

我们在使用git的时候,经常会需要输入密码,比如git push, git fetch, git pul.这两个命令是非常常用的命令.每次输入这些命令都需要输入密码会是一件非常浪费时间的事.

如果能够让git记住密码就好了.也就是不需要输入密码.下面我们就来做这件事.

我们指定git远程仓库地址的时候,通常有两种方式:ssh方式和http方式.这两种方式记住密码的方式略有不同.

如何查看我们的远程仓库:

查看更多...

Tags: git

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 128229

常用开源协议的比较

 我们在WEB应用开发的过程中经常需要用到一些开源的库或软件,在享受开源带来的好处的同时,我们也要注意尊重原作者的劳动成果。在这过程中我们就需要了解一些常用的开源协议。常用的开源协议有GPL,LGPL,BSD,AL2.0,MIT等。我们来比较一下这些开源协议的区别。

1. GPL协议

第一点,这个协议说,我是开源的,免费的。第二点,这个协议跟我们说,不管你是用了我的代码还是用了我的二进制库,你就是跟我一样的了,也发尊守GPL协议。也就是说,如果你用了GPL协议开源的库或软件,你的软件也必需要开源,免费,不能作商业用途。

2. LGPL协议

查看更多...

Tags: 开源

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 8153

Pepper Flash Player是一个由google推出的,更稳定,更安全的flash player, 所以在ubuntu14.04以后,google就不支持Netscape Plugin API了。所以我们只要安装Pepper Flash Player就可以了。

如何安装Pepper Flash Player

Ctrl+Alt+T打开终端,执行以下命令即可。

sudo apt-get install pepperflashplugin-nonfree
sudo update-pepperflashplugin-nonfree --install

查看更多...

Tags: ubuntu

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 14553

ubuntu service的添加和删除

Redhat 提供了chkconfig这个命令来管理系统在不同运行级别下的服务开启/关闭: chkconfig ServiceName on/off 并可以用chkconfig --list(两个杠) 查看当前的制定状况。

Ubuntu里没有这个命令,其实也可以不用任何命令简单管理系统服务, 可以通过改变 /etc/rc*.d(*的取值是从0到6和S)下的启动脚本名来管理服务. 比如不想让KDM自动启动, 可以这样: sudo find /etc/rc* -name *kdm* -exec rm {} /; 也就是把KDM的启动脚本全删掉.

Ubuntu也提供了另外一个简单的命令来实现管理。但首先服务必须已在/etc/init.d目录中存在。如:

添加一个服务: sudo update-rc.d ServiceName defaults

查看更多...

Tags: linux ubuntu

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 37585

ssh scp 免密码方法

  ###########################

 
A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux
 
在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110  "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub  root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)
 
在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
 
回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)
 
如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些
 

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 7759

CentOS增加swap分区

 今天学习安装oracle数据库安装,发现我的SWAP分区太小,不符合要求,所以要扩大交换空间,百度加上自己的实践,操作如下:

 
使用dd命令创建一个swap分区
 
[root@localhost Desktop]#dd if=/dev/zero of=/home/swap bs=1024 count=1048576
 
count的计算公式: count=SIZE*1024  (size以MB为单位)
 
这样就建立一个/home/swap的分区文件,大小为1G,接着需要格式化新建的SWAP分区:
 
[root@localhost Desktop]# mkswap /home/swap 
 
 
再用swapon命令把这个文件分区变成swap分区
 
[root@localhost Desktop]#swapon /home/swap
(关闭SWAP分区命令为:[root@localhost Desktop]#swapoff /home/swap)
 
再用free -m查看一下,可以看出swap扩大了。
 
 
 
为了能够让swap自动挂载,要修改/etc/fstab文件
 
vi /etc/fstab
 
在文件末尾加上
 
/home/swap swap swap default 0 0
这样就算重启系统,swap分区就不用手动挂载了。

查看更多...

Tags: CentOS

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 7511

Ubuntu 12.04更新源

1、首先备份Ubuntu12.04源列表

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表)

 

2、修改更新源

sudo gedit /etc/apt/sources.list (打开Ubuntu 12.04源列表文件)

 

3、把里面的列表替换成下面的列表

163源

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6540

Linux下ssh登录速度慢的解决办法

 相信很多朋友在使用Linux系统的时候因为安全性的原因摒弃了telnet rlogin 或者 X-window,而把openssh作为自己默认的远程登录方式。

  然而经常会遇到的一个情况是telnet到server速度很快,但是ssh连接的时候却很慢,大概要等半分钟甚至更久。ping的速度也非常好,让人误以为是ssh连接不上。

  下面说下如何解决这样的问题,

  最为常见的原因是因为server的sshd会去DNS查找访问client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。

  1, 在server上/etc/hosts文件中把你本机的ip和hostname加入

  2, 在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no

  3, 注释掉server上/etc/resolv.conf中所有行

  4, 修改server上/etc/nsswitch.conf中hosts为hosts: files

  5, reboot server使配置生效

  另外在

  authentication gssapi-with-mic

  也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改GSSAPIAuthentication no.

  /etc/init.d/sshd restart重启sshd进程使配置生效

  如果以上两招还不能解决问题,善于使用DEBUG MODE  ssh -v来查看log,找到停滞时间最长的步骤,然后针对性的修改配置解决。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PS: 我解决这个问题的方法,在上面标红了。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 7366

Android 自启动管理原理

标 题: Android 自启动管理原理
作 者: web开发网[http://www.zeroplace.cn]

时 间: 2013/10/22 10:15:00
链 接: http://www.zeroplace.cn/article.asp?id=875
说 明: 转载请保留本段文字 

 垃圾手机,用网上那种优化软件很多功能我用不到,还太占用内存,准备自己写一个自启动管理的软件。

网上搜索了一下,大致是说可以用PackageManager这个包来取得所有的应用列表,然后再来进行筛选。

因为安卓下面自启动大多是通过接收ACTION_BOOT_COMPLETED这个广播来完成的,所以我只要找到所有含有接收这个广播的BroadcastReceiver的包就可以了。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 13132

让ubuntu支持GBK编码

 (1 )首先安装中文版ubuntu

 

装完后echo $LANG 默认是utf-8

1.修改/var/lib/locales/supported.d/local文件,在文件中添加

zh_CN.GBK GBK

zh_CN.GB2312 GB2312

2.sudo dpkg-reconfigure --force locales

然后在输出的结果中会出现

zh_CN.GB2312 done

zh_CN.GBK done

出现done就成功了,然后再在用户的配置文件.profile中设置

Export LANG=zh_CN.gbk

 

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 7474

sed命令详解

 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6483

Linux环境变量配置文件

查看系统当前的环境变量:env
查看变量的值:echo $变量名
   设置环境变量: export 变量名=”Hello!”
    清除环境变量:unset $变量名
   常用预定义环境变量:
PATH 当前用户的主目录
HOME 当前用户的可执行文件搜索路径
LANG 系统使用的默认语言
SHELL 系统默认的shell。
 
环境变量设置文件
 
   全局环境变量,对所有Linux用户有效,设置文件:/etc/profile、/etc/bashrc(bash,ksh对应的文件为/etc/kshrc)
   用户环境变量,只对当前用户有效,设置文件为当前用户主目录(~)下的:.profile、.bash_profile、.bashrc(bash,ksh对应的文件为.ksh_profile、.kshrc)
登录shell:作为Linux用户登录到Linux操作系统,或者用su - username切换到其他用户,都为登录shell,环境变量也同时切换。
非登录shell,用su  username,即为非登录shell,环境变量仍为当前用户的环境变量。
    根据是否为登录shell,读取环境变量配置文件是不同的。
登录shell读取环境变量顺序:
/etc/profile —> /etc/profile.d/*.sh —> ~/.bash_profile —> ~/.bashrc —> /etc/bashrc
   非登录shell读取环境变量顺序:
~/.bashrc —> /etc/bashrc —> /etc/profile.d/*.sh 
 
 
环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:source .bash_profile 或者 . .bash_profile

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5690

Linux下chkconfig命令详解[转]

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

参数用法:
 

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6634

centos用户查看

  • 查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
  • 查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
  • 查看用户操作:w命令(需要root权限)
  • 查看某一用户:w 用户名
  • 查看登录用户:who
  • 查看用户登录历史记录:last

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5268

RPM命令使用详细版


一、RPM包管理的用途;

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;


二、RPM 的使用权限;

RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;


三、rpm 的一点简单用法;

我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;

一)初始化rpm 数据库;

通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:这个要花好长时间;

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5436

Linux rpm 命令参数使用详解

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

 

-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5402

centos 查看,卸载已安装软件

要知道安装了哪些组件,通过命令

rpm -qa|grep httpdrpm -qa|grep mysqlrpm -qa|grep php

分别可以查看本机安装的apache、mysql和php服务。如果返回为空,则说明本机没有安装该服务。

[root@localhost ~]# rpm -qa|grep httpdhttpd-2.2.3-43.el5.centos

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6352

方法一
CentOS5.3的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级到5.2.6版本的,经过搜索国外资料,现在终于找到一种升级CentOS的php到5.2.9的方法。
注意,此方法只能在官方的php版本上升级,如果你使用网上的升级到5.2.6版本的升级方法已经升级了,将无法使用本方法升级php。
运行下面命令:

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5768