每日备份mysql到网站目录

作者:阿川 发布时间:October 27, 2011 分类:编程开发

今天一客户的VPS被入侵,这位高人直取该客户的数据库.删除数据库后还不算完..还不能让你有喘息的机会,接着拿了一堆文件来反复读写,最后将文件系统破坏的一塌糊涂...阿川和几位朋友整整折腾了24小时未果...再咬牙的同时,做了这么一个备份数据库到网站根目录的脚本,至于你备份数据之后想干嘛......那就是你的事了..比如可以上传到其他的FTP空间,还可以发邮件给你自己,等等.大家举一反三.多多注意安全.以下是脚本内容

#!/bin/bash
MYSQL_USER=数据库用户名
MYSQL_PASS=密码
MYSQL_DATA=用户名
DataBakName=Data_$(date +"%Y%m%d").tar.gz
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS
 --databases $MYSQL_DATA
 --lock-tables=false > /home/backup/databackup.sql
tar zcf /home/backup/$DataBakName /home/backup/databackup.sql
rm -rf /home/backup/databackup.sql

保存退出
或者直接在你的VPS上执行
wget -c http://down.kiiyi.com/backup.sh

之后,给权限
chmod +x backup.sh

然后,利用系统crontab实现每天自动运行
crontab -e

输入以下内容
00 00 * * * /root/backup.sh

其他的crontab可以参考linux中Cron定时任务系统命令详解

Linux下如何简单的防止CC攻击

作者:阿川 发布时间:September 21, 2011 分类:编程开发

Nginx 0.7开始提供了2个限制用户连接的模块:NginxHttpLimitZoneModule和NginxHttpLimitReqModule。
NginxHttpLimitZoneModule可以根据条件进行并发连接数控制。
NginxHttpLimitReqModule可以根据条件进行请求频率的控制。

http {
limit_zone   my_zone  $binary_remote_addr  10m;
limit_req_zone  $binary_remote_addr  zone=my_req_zone:10m   rate=1r/s;
}
server {
...
location ~ ^/bbs/(index|forumdisplay|viewthread).php$ {
limit_conn   myzone_bbs  3;
limit_req zone=bbs burst=2 nodelay;
...
}

应用这条规则后,bbs目录下的index.php、forumdisplay.php和viewthread.php这些页面同一个IP只许建立3个连接,并且每秒只能有1个请求(突发请求可以达到2个)。

Linux上iptables防火墙的基本应用教程

作者:阿川 发布时间:September 15, 2011 分类:编程开发

iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基本应用。
1、安装iptables防火墙

如果没有安装iptables需要先安装,CentOS执行:

yum install iptables

Debian/Ubuntu执行:

apt-get install iptables

2、清除已有iptables规则
iptables -F
iptables -X
iptables -Z

3、开放指定的端口
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

linux下面的复制(覆盖)文件

作者:阿川 发布时间:June 28, 2011 分类:编程开发

通常.我们在linux下面覆盖文件的时候都会有提示.需要不停的按Y来执行覆盖.要是几个文件还好..但是要是几百个估计按Y都要吐血了.于是cp命令就派上了用场
于是首先

cp  -f * /home/wwwroot/demo1

依然要输入Y来确认操作,并且会忽略掉目录.继续
cp -r -f * /home/wwwroot/demo1

依然要输入Y来确认操作.这次不忽略目录了.于是各位知道-r的属性是干啥的.继续
cp -r -a -f * /home/wwwroot/demo1

依然要输入Y来确认操作.这次不忽略目录了.并且当前文件夹里面文件的权限和属性被传递到了demo1中..于是咱们又了解了个-a属性是干啥的了..于是继续
\cp -r  -f * /home/wwwroot/demo1

这次啥也不提示了..文件也复制过去了..
平时执行命令,比如 cp 配置文件会增加默认参数,加上\之后就会忽略掉本地配置,那么-f -r的属性就生效了

centos的VPS数据恢复手记

作者:阿川 发布时间:April 14, 2011 分类:编程开发

之前有哥们的VPS突然悲剧了..也是求救不够惨大神..如下是恢复结果
首先弄个跟原来系统不一样的VPS,目的是要不同的卷组名
他以前用的是32bit的我现在用的是64bit的,然后将原来的硬盘分离后挂在新的VPS上
1.vgscan|grep -i volgroup #查找卷标
激活
2.vgchange --available y 卷标名
3. mount /dev/卷标/目录 /要挂的目录,接着出现错误
mount: wrong fs type, bad option, bad superblock on /dev/VolGroup00/LogVol00

尝试修复
4.fsck -b /dev/VolGroup00/LogVol00
然后打印superblocks信息
5.dumpe2fs /dev/VolGroup00/LogVol00
重启接着再来一次mount
再打印suprtblocks信息
[root@MyVPS2098 /]# fsck /dev/VolGroup00/LogVol00
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/LogVol00: clean, 230782/7010720 files, 1685264/7036928 blocks
接着赶紧mount
[root@MyVPS2098 /]# mount /dev/VolGroup00/LogVol00 /mnt

[root@MyVPS2098 /]# cd /mnt

[root@MyVPS2098 mnt]# ls

bin boot dev etc home lib lost+found media misc mnt net opt proc root sbin selinux srv sys tmp usr var

nginx下面WP博客伪静态规则

作者:阿川 发布时间:January 10, 2011 分类:编程开发

先记录个.需要的朋友们拿过去试试
规则1:

location /
{
try_files $uri $uri/ /index.php?q=$uri&$args;
}

规则2:
location / {
index index.php index.html;
 
if (!-f $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
 
if (!-d $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
}

XenServer添加和使用LVM分区

作者:阿川 发布时间:December 1, 2010 分类:编程开发

一 增加分区

lvmdiskscan       #列出所有分区,查看哪个为LVM分区
 
vgdisplay           #查看LVM分区是否有建立卷组,
                       #如有,查看其卷组号(vg) ,
                       #假设查询到的卷组号(vg)为VG_XenStorage-xxx
 
lvcreate -L 10G -n localiso  VG_XenStorage-xxx        
                      #在卷组上,创建一个大小为10G,名字叫localiso的逻辑卷

二 格式化分区

mkfs.ext3   /dev/VG_XenStorage-xxx/localiso          
# 将新增的逻辑卷进行格式化,具体的path可以通过lvscan看到

解决nginx 502 bad getaway

作者:阿川 发布时间:December 1, 2010 分类:编程开发

1:查看当前的PHP FastCGI进程数是否够用:

netstat -anpo | grep "php-cgi" | wc -l

如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
2:关于php-fpm.conf
php-fpm里面的这两个参数
如果php-cgi在xx时间内有xx个进程因为资源不足退出就平滑重启
; If this number of child processes exit with SIGSEGV or SIGBUS within the time
; interval set by emergency_restart_interval then FPM will restart. A value
; of '0' means 'Off'.
; Default Value: 0
emergency_restart_threshold = 5
 
; Interval of time used by emergency_restart_interval to determine when
; a graceful restart will be initiated.  This can be useful to work around
; accidental corruptions in an accelerator's shared memory.
; Available Units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds

记录下.以后有新的东西继续更新