每日备份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
记录下.以后有新的东西继续更新