淫荡的一天又开始了!!!

一个让银蛋疼的博客



时隔多年翻开老照片

时隔多年翻开老照片,满是愧疚与遗憾。

听着年轻时听过的老歌,<赤道与北极>,<最终幻想 - 素敌 中文版>时间居然过去十几年了,我却还沉浸在疲惫的状态中

不知不觉,过往的人儿你们如今在何方劳累

如今只有我还在深夜中感慨岁月流逝

» 阅读全文

  2014, June 25, 1:56 AM

[0] 评论 (2472 views)


开源的CDN解决方案

  安装需求

OpenCDN的Beta版目前在Centos5.4 32位下测试通过。内存大小:不低于512M内存。

安装步骤

请遵循先安装CDN管理中心,再逐个安装CDN节点的方式进行部署。

1、CDN加速管理中心下载安装:

» 阅读全文

  2013, January 20, 12:12 AM

[0] 评论 (8849 views)


MySQL 百万级分页优化

以下分享一点我的经验

一般刚开始学SQL的时候,会这样写

SELECT * FROM table ORDER BY id LIMIT 1000, 10;

但在数据达到百万级的时候,这样写会慢死

SELECT * FROM table ORDER BY id LIMIT 1000000, 10;

也许耗费几十秒

网上很多优化的方法是这样的

SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10;

是的,速度提升到0.x秒了,看样子还行了
可是,还不是完美的!

以下这句才是完美的!

SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;

比上面那句,还要再快5至10倍

转载请注明作者及出处:http://www.21andy.com/

另外,如果需要查询 id 不是连续的一段,最佳的方法就是先找出 id ,然后用 in 查询

SELECT * FROM table WHERE id IN(10000, 100000, 1000000...);

再分享一点
查询字段一较长字符串的时候,表设计时要为该字段多加一个字段,如,存储网址的字段
查询的时候,不要直接查询字符串,效率低下,应该查诡该字串的crc32或md5

  2012, October 15, 8:06 AM

[0] 评论 (3921 views)


批量管理VPS的工具SolusVMController

SolusVMController 是 PHP 开发的免费 VPS 管理面板,它通过 SolusVM 的 API 来控制,可以把所有的 VPS 集中管理了,现在购买的 VPS 面板一般都是SolusVM,API 具体请进面板开启。

» 阅读全文

  2012, October 15, 8:03 AM

[0] 评论 (3924 views)


Linux从FTP上下载整个目录命令 LINUX打开WINDOWS文件共享方法

FTP上下载整个目录命令 LINUX打开WINDOWS文件共享方法< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

wget -m ftp://xxxx/dirname -- ftp-user=user --ftp-password=password

这样将会从ftp上匿名下载VM_XP这个文件到本地。

m 参数表示镜像指定的目录 等同于   -r -N -l inf --no-remove-listing

能实现此功能的另一个办法是

wget -rtxx ftp://172.16.12.111/ppp/*

r是断点绪传,t是失败后可重新联接的xx次。

例如从ftp上直接下载整个目录到本地,我使用的完整命令是

wget   -nH --cut-dirs=1 -m --ftp-user=szh --ftp-password=szhftp ftp://192.168.13.17/Server_CDROM

ftp下载时与目标路径相关的两个参数:

-nH

        --no-host-directories

            Disable generation of host-prefixed directories. By default, invoking Wget with -r

            http://fly.srk.fer.hr/ will create a structure of directories beginning with

            fly.srk.fer.hr/.  This option disables such behavior.

--cut-dirs=number

            Ignore number directory components.   This is useful for getting a fine-grained control

            over the directory where recursive retrieval will be saved.

LINUX下挂载WINDOWS共享目录,实现文件共享!

mount -t smbfs -o username=Administrator,password=Password //10.10.10.94/fileNet /opt/fileNet

  2012, June 15, 5:39 PM

[0] 评论 (4978 views)


linux上用iptables自动封ip的bash脚本

这个还是有一定效果的

先装iptables

下面的脚本保存为drop_ips.sh

  1. #! /bin/bash                                                                                                                                                   
  2.  
  3. ###########################################                                                                                                                    
  4. # 封锁ip 用iptables                                                                                                                                            
  5. # usage:                                                                                                                                                       
  6. #                                                                                                                                                              
  7. # create date 2010-11-11                                                                                                                                       
  8. # update date 2010-11-12                                                                                                                                       
  9. ###########################################                                                                                                                    
  10.  
  11.  
  12. # 定义端口                                                                                                                                                     
  13. CHK_PORT="80 25" 
  14.  
  15. # 定义输出文件                                                                                                                                                 
  16. IPTABLE_OUTPUT=/tmp/ip_drop_tables  
  17. # 定义输出文件备份  
  18. IPTABLE_OUTPUT_BAK=/tmp/ip_drop_tables.bak  
  19.  
  20. # 扫描ip的 间隔时间  
  21. SCAN_HTTP_IP_TIMEOUT=20  
  22.  
  23. # 处理ip的间隔时间  
  24. HANDLE_IP_TIMEOUT=120  
  25.  
  26. # 连接数量最大限制  
  27. MAX_CONNECT_IP_NUM=100  
  28.  
  29. # 排除在外的ip  
  30. ACCEPT_IP="203.95.110.2" 
  31.  
  32. # 已经封锁的ip   
  33. DROP_IP_RECORD_FILE=/tmp/drop_ip_record  
  34.  
  35. #################################################################  
  36. #定义方法  
  37. #################################################################  
  38. # 输出ip到文件  
  39. output_ip_table()  
  40. {  
  41.         # 拿到端口号  
  42.         port_num=$1  
  43.         # 查此端口上的连接ip 输出到指定的目录  
  44.         #echo "start scan ......"  
  45.         netstat -na --tcp| grep ESTABLISHED | awk '{ if ( index($4,":"'"$port_num"'"") ) print $5}' | awk -F ':' '{print $1}' | sort  >> $IPTABLE_OUTPUT  
  46.         #echo "scan end ......"  
  47. }  
  48.  
  49.  
  50. # 把需要观测端口列出                                                                                                                                                            
  51. check_port()  
  52. {  
  53.         for port_td in $CHK_PORT  
  54.         do 
  55.         # echo "port : "$port_td  
  56.             # 扫描此端口  
  57.         output_ip_table $port_td  
  58.     done  
  59. }  
  60.  
  61.  
  62. # 封杀ip  
  63. drop_ip_from_table()  
  64. {  
  65.     iptables -I INPUT -s "$1" -j DROP  
  66. }  
  67.  
  68. # 排除ip  
  69. accept_ip()  
  70. {  
  71.     for access_ip in $ACCEPT_IP  
  72.     do 
  73.         iptables -I INPUT -s "$access_ip" -j ACCEPT  
  74.     done  
  75. }  
  76.  
  77. # 提取需要的ip  
  78. get_iptable()  
  79. {  
  80.     # 如果已经存在就删除  
  81.     if [ -e $IPTABLE_OUTPUT_BAK ] ; then  
  82.         rm -rf $IPTABLE_OUTPUT_BAK  
  83.     fi  
  84.     # copy 一份出去   
  85.     cp $IPTABLE_OUTPUT $IPTABLE_OUTPUT_BAK  
  86.     # 排序 数组  
  87.     declare -a ip_array_org=($(cat ${IPTABLE_OUTPUT_BAK} | sort))  
  88.     # 循环  
  89.     # 比对用的ip 初始化  
  90.     tmp_ip=0.0.0.0  
  91.     let "tmp_ip_count=1" 
  92.     for tmp_element in "${ip_array_org[@]}" 
  93.     do            
  94.         # 初始化 没有特殊设置为排除ip  
  95.         is_not_set_accept="true" 
  96.         # 初始化 是否已封杀了  
  97.         is_not_drop="true" 
  98.         # 如果相等  
  99.         if [ "$tmp_ip" = "$tmp_element" ] ; then   
  100.             let "tmp_ip_count+=1" 
  101.         else              
  102.             # 打印  
  103.             echo "ip: $tmp_ip count: $tmp_ip_count"   
  104.             # 如果大于某个数字 就封杀  
  105.             if (( $tmp_ip_count >= $MAX_CONNECT_IP_NUM )) ; then  
  106.                 # 如果没有记录就封杀  
  107.                 if  cat /tmp/drop_ip_record | grep "$tmp_ip" > /dev/null   ; then  
  108.                     echo "this ip $tmp_ip has been mask !" 
  109.                     is_not_drop="false" 
  110.                 else      
  111.                     # 循环 需要排除ip  
  112.                         for tmp_access_ip in $ACCEPT_IP  
  113.                     do 
  114.                         # 如果排除ip里有 就去封锁此ip  
  115.                         if [ "$tmp_access_ip" = "$tmp_ip" ] ; then   
  116.                             echo "this ip $tmp_ip was mark to accept !" 
  117.                             is_not_set_accept="false" 
  118.                         fi  
  119.                     done   
  120.                 fi  
  121.                 if [ $is_not_set_accept = "true" ] && [ $is_not_drop = "true"] ; then  
  122.                     echo "add a new ip to drop : $tmp_ip" 
  123.                     drop_ip_from_table $tmp_ip  
  124.                     # 记录ip  
  125.                     echo "$tmp_ip" >> $DROP_IP_RECORD_FILE  
  126.                 fi  
  127.             fi  
  128.             # 归零  
  129.             let "tmp_ip_count=1" 
  130.             tmp_ip=$tmp_element  
  131.         fi  
  132.     done  
  133.     # 全部处理完了 删除原件  
  134.     rm -rf $IPTABLE_OUTPUT  
  135.     # 排除ip  
  136.     # accept_ip  
  137.       
  138. }  
  139.  
  140. # 扫描ip  
  141. scan_http_access_ip()  
  142. {  
  143.     # 获取当前时间作为开始时间  
  144.     start_time=`date +%s`  
  145.         # 循环开始    
  146.     while true 
  147.     do 
  148.         # 开始检查 扫描ip  
  149.         check_port  
  150.         # 线程停止  
  151.         sleep $SCAN_HTTP_IP_TIMEOUT  
  152.         # 获取当前时间  
  153.         cur_time=`date +%s`  
  154.         # 时间差  
  155.         let "time_out=$cur_time-$start_time" 
  156.         echo "time_out : "$time_out  
  157.         # 超过2分钟  
  158.         if (( $time_out >= $HANDLE_IP_TIMEOUT )) ; then  
  159.             # 整理一次ip表  
  160.             echo " times up"              
  161.             get_iptable           
  162.             # 重置开始时间  
  163.             start_time=`date +%s`  
  164.         fi  
  165.     done      
  166. }  
  167.  
  168. # 程序执行入口  
  169. main_app()  
  170. {  
  171.     # 定时扫描ip  
  172.     scan_http_access_ip  
  173. }  
  174.  
  175. main_app 

 

然后执行下面的脚本,让其自动在后台运行

 

  1. sh ~/scripts/drop_ips.sh &  

 

  2011, December 30, 6:39 PM

[0] 评论 (11214 views)


分享一套提供免费SSH帐号服务的站点代码

打算把这个模板跟大家分享一下,此模板提供的功能:
1.定时自动更换免费SSH帐户密码(具体时间间隔,你可以自己在cron里面建定时任务来设置)
2.架设于Linux+PHP环境
3.支持多站点设置(模板里面显示免费SSH帐户的密码,是通过URL设置的,这样,支持多个服务器节点)

架设方法:
1.VPS上架设好PHP环境,建立好web目录
2.上传index.php和index_files里面的东西,到网站更目录
3.在Linux建立定时计划任务,每隔一段时间,去执行chpasswd.sh脚本
4.建立linux帐户:freessh (注意不要开shell和默认登录目录,你懂的)
4.编辑脚本chpasswd.sh,把输出文件的路径,指向和index.php同一个目录(脚本默认输出urrent_pass.txt和date.txt到/home/wwwroot)
5.关于多服务器节点设置,比如你有多个VPS,把这个index.php,放你的主服务器上,其他服务器,只需要有PHP环境,并上传chpasswd.sh,建立linux帐号freessh即可。chpasswd.sh也需要设置成定时执行,输出文件到web服务的根目录。然后在你主服务器通过url,就可以访问脚本输出的current_pass.txt和date.txt了。
6.美化你的index.php,替换里面的http://a.#your-domain#.com,为你的IP或者域名

另外,index.php中,我用注释写明了,哪里适合插入广告,哪里适合插入计数器……

温馨提示:建立此类站点,有被qiang的风险,建议使用不值钱的域名,或者免费域名

ssh-site.rar

 

  2011, December 19, 10:25 PM

[0] 评论 (4781 views)


sed提取网页所有某一类型文件的下载链接

sed提取网页所有某一类型文件的下载链接

比如你需要提取index.html里面所有的.rar的下载链接
命令如下

SED:

sed 's/http:/\n&/g' index.html | sed 's/\.rar/&\n/g' | sed -n 's/^http:\(.*\)\.rar$/&/p'



PERL:
perl -ne 'while (/(http[\S]*\.rar)/g) {print "$1\n";}' index.html
其中的index.html换成*.*可以对当前文件夹下所有的文件操作

迅雷批量下载+这个脚本可以批量提取某些东西
  2011, December 19, 9:06 PM

[0] 评论 (4406 views)
 
Records:10912345678910»

浏览本博请不要用淫荡的眼神和思想,谢谢合作
Browse this blog, please do not use the lustful eyes and thought, thank you

  


搜索文章

高级搜索

实用链接

站长工具

规则转换

在线翻译 云输入法 IP归属在线查询 --在线偷窥-- 云网盘