天使羊波波闪耀光芒 软件及互联网爱好者

1210月/140

Linux rz和sz命令

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
优点就是不用再开一个sftp工具登录上去上传下载文件。

sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

安装命令:

yum install lrzsz

从服务端发送文件到客户端:

sz filename

从客户端上传文件到服务端:

rz

在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

SecureCRT设置默认路径:
Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

Xshell设置默认路径:
右键会话 -> 属性 -> ZMODEM -> 接收文件夹

PS:同事和我说SecureCRT可以方便的上传下载文件,而Xshell没有。我上网一查原来用的是同一个sz/rz工具,Xshell下没有菜单选择要输命令。

268月/141

vim使用笔记

vim编辑器安装c.vim插件对C/C++编程有很大的帮助。
官方主页:http://www.vim.org/scripts/script.php?script_id=213

1、下载插件

cd ~
wget http://www.vim.org/scripts/download_script.php?src_id=21803 -O c_vim.zip

我下载的是2014-04-21发布的6.1.1

2、解压安装

mkdir ~/.vim
cd ~/.vim
unzip ~/c_vim.zip

3、激活插件

vim /etc/vimrc

加入:

filetype plugin on

PS:在vim中使用:set runtimepath可以查看插件能安装的位置
PS2:默认插件位置好像在/usr/share/vim/vim72

用vim编程还需要有一个适合的编辑器风格。

218月/140

Linux xargs命令

xargs命令的作用就是将上一个命令的结果,作为xargs后面命令的参数来使用。

命令对比:
1、假设当前目录下有111.txt和222.txt两个文件

find -name 111.txt | ls -la

搜索出来的结果和ls -la命令执行结果一样。

find -name 111.txt | xargs ls -la

搜索出来的结果只有111.txt信息。

第二句find语句将前面的结果作为了ls -la的参数,ls -la 111.txt。

2、在当前目录下搜索以.c结尾的文件

find . -name "*.c" | grep SetMessage

搜索出来的是一个叫SetMessage.c的文件。

find . -name "*.c" | xargs grep SetMessage

搜索出来的是在某个.c中有SetMessage函数定义。

第一个find语句是grep从管道出来的结果集中去找SetMessage的内容。
第二个find语句是将管道出来的结果作为grep的参数,比如结果里有1.c、2.c、SetMessage.c,命令就变成
grep SetMessage 1.c 2.c SetMessage.c
后来在2.c中找到SetMessage函数定义。

57月/142

CentOS VPS安装shadowsocks代理服务端

shadowsocks是一个轻量级的socks5代理软件,shadowsocks开发语言有nodejs、go、python、c。

shadowsocks python语言版
https://github.com/clowwindy/shadowsocks
shadowsocks go语言版
https://github.com/hugozhu/shadowsocks-go
shadowsocks nodejs语言版
https://github.com/clowwindy/shadowsocks-nodejs
shadowsocks libev版(使用C语言+libev库+openssl开发)
https://github.com/madeye/shadowsocks-libev
shadowsocks libuv版(很久没更新了)
https://github.com/dndx/shadowsocks-libuv

网上推荐安装python版和Shadowsocks-libev版,这里安装标准python版,系统为CentOS6。

一、服务端
1、安装库和shadowsocks

yum install m2crypto python-setuptools
easy_install pip
pip install shadowsocks

115月/142

升级my.cnf时报错

最近在/etc目录下发现有一个my.cnf.rpmnew文件,应该是之前将mysql升级为mariadb时产生的。

和原来的my.cnf文件相比里面多了一些内容:

# Semisynchronous Replication
# http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html
# uncomment next line on MASTER
;plugin-load=rpl_semi_sync_master=semisync_master.so
# uncomment next line on SLAVE
;plugin-load=rpl_semi_sync_slave=semisync_slave.so

# Others options for Semisynchronous Replication
;rpl_semi_sync_master_enabled=1
;rpl_semi_sync_master_timeout=10
;rpl_semi_sync_slave_enabled=1

# http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
;performance_schema

于是将mysql的常规配置参数复制到了该文件并改名为my.cnf。

124月/142

升级php-mysql到php-mysqlnd

最近在一次执行update时,发现了一个错误提示,说是更新安装的php-mysqlnd和php-mysql冲突。

原来是更新源将php-mysql更换成了php-mysqlnd,网上查了下mysqlnd是一种效率更高的php和mysql的连接方式。

1、先卸载php-mysql

yum remove php-mysql

2、安装php-mysqlnd

yum install php-mysqlnd
yum update

安装成功的验证方法是查看phpinfo(),在mysql和mysqli栏目中“Client API library version”变为了mysqlnd。
经测试原有的接口能正常使用。

分类: LINUX 2 评论
92月/1415

wordpress屏蔽垃圾评论

大部分垃圾评论都是用自动化软件来发的,它会先GET一个页面,然后再往wp-comments-post.php文件POST内容。
例如:

"GET /archives/589.html HTTP/1.1" 200 8490
"POST /wp-comments-post.php HTTP/1.1" 302 26

垃圾评论当中80%以上都是福建莆田市IP发的,鄙视下。

1、使用插件
垃圾评论过滤:Akismet插件
wordpress评论滑动解锁:myQaptcha插件

发现效果不好,Akismet虽然能过滤垃圾评论但是阻止不了机器人提交评论,而且一来就是几百个连接,VPS负载直接飙到4点几,CPU占用率也很高,导致博客打开异常慢。上个月Akismet统计过滤了1,477,296条的垃圾评论怪不得会慢。
myQaptcha安装后没有起色,看日志里被绕过了。

2、直接屏蔽IP
网上找了一个类似功能修改下。先看下IP在日志里是第几个字段,第一个就填$1,第二个就填$2以此类推。
先从日志中过滤出IP:

awk '/wp-comments-post/ { printf $1 "\n"}' /var/log/httpd/live-in.org-access_log* | sort | uniq -d -c | awk '$1 > 10 {printf $2 "\n"}' >/tmp/iptables.txt 2>/dev/null

结果保存到/tmp/iptables.txt中。

iptables屏蔽:

awk '{system("iptables -I INPUT -s "$0" -j DROP")}' /tmp/iptables.txt
service iptables save

将/tmp/iptables.txt内的IP添加到iptables中并保存。

查看添加的内容:

iptables -n -L |less

说明:-n表示不做DNS解析

PS:如果效果不好,直接屏蔽IP段!
PS2:再次添加iptables时使用如下,先删除当前规则再添加避免重复

awk '{system("iptables -D INPUT -s "$0" -j DROP;iptables -I INPUT -s "$0" -j DROP")}' /tmp/iptables.txt
service iptables save

参考资料:
http://blog.csdn.net/windcxb/article/details/6547688
http://www.qingting.org/2012/iptables-block-ip-rule
http://www.ctohome.com/FuWuQi/0d/535.html

分类: LINUX, WP 15 评论
12月/140

Linux DNS查询命令

Linux下DNS查询命令使用host、dig、nslookup。

一、安装软件包
dig和nslookup需要安装相关软件包。

Centos:

# yum install bind-utils

Debian:

# apt-get update
# apt-get install dnsutils

另外查询前先要在/etc/resolv.conf设置好dns服务器IP。

111月/140

history命令显示时间

有时候想在history命令中显示时间戳,可以设置环境变量HISTTIMEFORMAT来实现。

在/etc/profile文件中加入:

export HISTTIMEFORMAT="%F %T "

保存之后重新登录shell,设置之后的命令都会保留正确的时间戳,但之前的命令时间会变为设置HISTTIMEFORMAT变量的时间。

参考资料:
http://blog.chinaunix.net/uid-21505614-id-289479.html

1310月/130

nginx防止空主机头域名指向

空主机头域名指向是指,比如我有个www.aaa.com的站点,别人用www.bbb.com域名指向了aaa.com的IP,这样访问www.bbb.com也能显示aaa.com的内容了。
在nginx的配置文件中已经定义了空主机头返回404页面。

vim /etc/nginx/nginx.conf

如下:

server {
        limit_conn addr 10;
        listen       80;
        server_name  _;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page  404              /404.html;

        location = /404.html {
            root   /usr/share/nginx/html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
...后面省略
}


只要将定义网站的server段放在它的后面就能实现空主机头的域名都返回404页面。

第 2 页,共 15 页12345...10...末页 »