• 使用python ssh 执行远程命令

    python ssh 模块: paramiko

    CentOS 组件安装:

    yum install -y python-devel
    yum install -y python-pip
    yum install -y libffi-devel
    pip install –upgrade pip
    pip install paramiko
    pip install paramiko –upgrade

    为执行此脚本的用户配置好目标机器的ssh免登录,编写python 脚本:

    import paramiko, base64
    paramiko.common.logging.basicConfig(level=paramiko.common.ERROR)
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(‘your server ip’,username=’login name’)

    #  此命令查询目标机器上storm的6704执行进程的ID
    cmd=”ps -ef | grep -v grep | grep 6704 | grep org.apache.storm.LogWriter | awk  -F\” \” ‘{print $2}’ ”
    stdin, stdout, stderr = client.exec_command(cmd)
    for line in stdout:
    print ‘storm executor pid for xxx 6704 : ‘ + line.strip(‘\n’)
    client.close()

     

     

  • 在windows7下安装php7和apache2.4

    Windows 下
    安装 VS2015
    安装 Apache 2.4.18 Win64
    安装php 线程安全版本 php-7.0.3-Win32-VC14-x64
    复制 php.ini-development 为 php.ini, 可直接开启以下扩展:
    extension_dir = “ext”
     
    extension=php_bz2.dll
    extension=php_curl.dll
    ;extension=php_fileinfo.dll
    extension=php_gd2.dll
    ;extension=php_gettext.dll
    ;extension=php_gmp.dll
    ;extension=php_intl.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_ldap.dll
    extension=php_mbstring.dll
    ;extension=php_exif.dll      ; Must be after mbstring as it depends on it
    extension=php_mysqli.dll
    ;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
    ;extension=php_openssl.dll
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll
    ;extension=php_pgsql.dll
    ;extension=php_shmop.dll

    ; The MIBS data available in the PHP distribution must be installed.
    ; See http://www.php.net/manual/en/snmp.installation.php
    ;extension=php_snmp.dll

    extension=php_soap.dll
    ;extension=php_sockets.dll
    extension=php_sqlite3.dll
    ;extension=php_tidy.dll
    extension=php_xmlrpc.dll
    extension=php_xsl.dll

    找到php7目录下的:libeay32.dll和ssleay32.dll,复制并替换到apache\bin目录下
    在apache 的 httpd.conf 增加如下内容:
    LoadFile “D:/x64/php-7.0.3/php7ts.dll”
    LoadFile “D:/x64/php-7.0.3/libpq.dll”
    LoadModule php7_module “D:/x64/php-7.0.3/php7apache2_4.dll”
    <IfModule php7_module>
        PHPIniDir “D:/x64/php-7.0.3/”
        #AddType application/x-httpd-php .php .phtml
        <FilesMatch \.php$>
              SetHandler application/x-httpd-php
        </FilesMatch>
    </IfModule>

    启动即可
  • linux 安装 nginx

    —- install nginx

    # yum install -y httpd-devel pcre perl pcre-devel zlib zlib-devel GeoIP GeoIP-devel
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
    wget http://zlib.net/zlib-1.2.8.tar.gz
    wget http://www.openssl.org/source/openssl-1.0.1m.tar.gz

    ./configure –prefix=/data/lib/zlib-1.2.8
    make & make install

    安装pcre报错You need a C++ compiler for C++ support
    解决办法 sudo apt-get install build-essential

    ./configure –prefix=/data/lib/pcre-8.36
    make & make install

    apt-get install libxml2 libxslt1-dev libxml2-dev
    apt-get install libgd2-xpm-dev
    apt-get install geoip-database libgeoip-dev
    ##apt-get install libpcre3 libpcre3-dev

    yum list | grep geo
    yum install gcc-c++

    # error: C compiler cc is not found
    yum install gcc
    # the HTTP XSLT module requires the libxml2/libxslt
    yum install libxml2-devel libxslt-devel
    # the HTTP image filter module requires the GD library.
    yum install gd-devel
    # the GeoIP module requires the GeoIP library.
    # –with-http_geoip_module
    yum install GeoIP GeoIP-data GeoIP-devel

    #首先定义新的Nginx名称:
    NGINX_BANNER=”superServer”
    #执行更名操作

    sed -i “s#\”NGINX\”#\”$NGINX_BANNER\”#” src/core/nginx.h
    sed -i “s#\”nginx/\”#\”$NGINX_BANNER/\”#” src/core/nginx.h
    sed -i “s#Server: nginx#Server: $NGINX_BANNER#” src/http/ngx_http_header_filter_module.c
    sed -i “s#\”<hr><center>nginx<\/center>\”#\”<hr><center>$NGINX_BANNER<\/center>\”#” src/http/ngx_http_special_response.c

     

    export DATA=/data/download
    export NG_HOME=/data/server/nginx
    ./configure –prefix=$NG_HOME –user=nobody –group=nobody –sbin-path=$NG_HOME/sbin/nginx –conf-path=$NG_HOME/conf/nginx.conf –error-log-path=$NG_HOME/logs/error.log –pid-path=$NG_HOME/var/nginx.pid –lock-path=$NG_HOME/var/nginx.lock –http-log-path=$NG_HOME/logs/access.log –http-client-body-temp-path=$NG_HOME/temp/client_body_temp –http-proxy-temp-path=$NG_HOME/temp/proxy_temp –http-fastcgi-temp-path=$NG_HOME/temp/fastcgi_temp –http-uwsgi-temp-path=$NG_HOME/temp/uwsgi_temp –http-scgi-temp-path=$NG_HOME/temp/scgi_temp –with-rtsig_module –with-select_module –with-poll_module –with-threads –with-file-aio –with-ipv6 –with-http_ssl_module –with-http_spdy_module –with-http_realip_module –with-http_addition_module –with-http_xslt_module –with-http_image_filter_module –with-http_geoip_module –with-http_sub_module –with-http_dav_module –with-http_flv_module –with-http_mp4_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_auth_request_module –with-http_random_index_module –with-http_secure_link_module –with-http_degradation_module –with-http_stub_status_module –with-zlib=$DATA/zlib-1.2.8 –with-openssl=$DATA/openssl-1.0.1m –with-pcre=$DATA/pcre-8.36

    make && make install

  • iptables防火墙 只允许某IP访问某端口、访问特定网站

    1.先备份iptables

    # cp /etc/sysconfig/iptables /var/tmp
    需要开80端口,指定IP和局域网
    下面三行的意思:
    先关闭所有的80端口
    开启ip段192.168.1.0/24端的80口
    开启ip段211.123.16.123/24端ip段的80口
    # iptables -I INPUT -p tcp –dport 80 -j DROP
    # iptables -I INPUT -s 192.168.1.0/24 -p tcp –dport 80 -j ACCEPT
    # iptables -I INPUT -s 211.123.16.123/24 -p tcp –dport 80 -j ACCEPT
    以上是临时设置。
    2.然后保存iptables
    # service iptables save
    3.重启防火墙
    #service iptables restart
    ===============以下是转载================================================
    以下是端口,先全部封再开某些的IP
    iptables -I INPUT -p tcp –dport 9889 -j DROP
    iptables -I INPUT -s 192.168.1.0/24 -p tcp –dport 9889 -j ACCEPT
    如果用了NAT转发记得配合以下才能生效
    iptables -I FORWARD -p tcp –dport 80 -j DROP
    iptables -I FORWARD -s 192.168.1.0/24 -p tcp –dport 80 -j ACCEPT

    常用的IPTABLES规则如下:
    只能收发邮件,别的都关闭
    iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -j DROP
    iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p udp –dport 53 -j ACCEPT
    iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p tcp –dport 25 -j ACCEPT
    iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p tcp –dport 110 -j ACCEPT

    IPSEC NAT 策略
    iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp –dport 80 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:80
    iptables -t nat -A PREROUTING -p tcp –dport 1723 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:1723
    iptables -t nat -A PREROUTING -p udp –dport 1723 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:1723
    iptables -t nat -A PREROUTING -p udp –dport 500 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:500
    iptables -t nat -A PREROUTING -p udp –dport 4500 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:4500

    FTP服务器的NAT
    iptables -I PFWanPriv -p tcp –dport 21 -d 192.168.100.200 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp –dport 21 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:21

    只允许访问指定网址
    iptables -A Filter -p udp –dport 53 -j ACCEPT
    iptables -A Filter -p tcp –dport 53 -j ACCEPT
    iptables -A Filter -d www.3322.org -j ACCEPT
    iptables -A Filter -d img.cn99.com -j ACCEPT
    iptables -A Filter -j DROP

    开放一个IP的一些端口,其它都封闭
    iptables -A Filter -p tcp –dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
    iptables -A Filter -p tcp –dport 25 -s 192.168.100.200 -j ACCEPT
    iptables -A Filter -p tcp –dport 109 -s 192.168.100.200 -j ACCEPT
    iptables -A Filter -p tcp –dport 110 -s 192.168.100.200 -j ACCEPT
    iptables -A Filter -p tcp –dport 53 -j ACCEPT
    iptables -A Filter -p udp –dport 53 -j ACCEPT
    iptables -A Filter -j DROP

    多个端口
    iptables -A Filter -p tcp -m multiport –destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT

    连续端口
    iptables -A Filter -p tcp -m multiport –source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp –source-port 2:80 -s 192.168.20.3 -j REJECT

    指定时间上网
    iptables -A Filter -s 10.10.10.253 -m time –timestart 6:00 –timestop 11:00 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
    iptables -A Filter -m time –timestart 12:00 –timestop 13:00 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
    iptables -A Filter -m time –timestart 17:30 –timestop 8:30 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
    禁止多个端口服务
    iptables -A Filter -m multiport -p tcp –dport 21,23,80 -j ACCEPT

    将WAN 口NAT到PC
    iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT –to-destination 192.168.0.1

    将WAN口8000端口NAT到192。168。100。200的80端口
    iptables -t nat -A PREROUTING -p tcp –dport 8000 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:80

    MAIL服务器要转的端口
    iptables -t nat -A PREROUTING -p tcp –dport 110 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:110
    iptables -t nat -A PREROUTING -p tcp –dport 25 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:25

    只允许PING 202。96。134。133,别的服务都禁止
    iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
    iptables -A Filter -j DROP
    禁用BT配置
    iptables –A Filter –p tcp –dport 6000:20000 –j DROP
    禁用QQ防火墙配置
    iptables -A Filter -p udp –dport ! 53 -j DROP
    iptables -A Filter -d 218.17.209.0/24 -j DROP
    iptables -A Filter -d 218.18.95.0/24 -j DROP
    iptables -A Filter -d 219.133.40.177 -j DROP
    基于MAC,只能收发邮件,其它都拒绝
    iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -j DROP
    iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -p tcp –dport 25 -j ACCEPT
    iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -p tcp –dport 110 -j ACCEPT
    禁用MSN配置
    iptables -A Filter -p udp –dport 9 -j DROP
    iptables -A Filter -p tcp –dport 1863 -j DROP
    iptables -A Filter -p tcp –dport 80 -d 207.68.178.238 -j DROP
    iptables -A Filter -p tcp –dport 80 -d 207.46.110.0/24 -j DROP
    只允许PING 202。96。134。133 其它公网IP都不许PING
    iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
    iptables -A Filter -p icmp -j DROP
    禁止某个MAC地址访问internet:
    iptables -I Filter -m mac –mac-source 00:20:18:8F:72:F8 -j DROP
    禁止某个IP地址的PING:
    iptables –A Filter –p icmp –s 192.168.0.1 –j DROP
    禁止某个IP地址服务:
    iptables –A Filter -p tcp -s 192.168.0.1 –dport 80 -j DROP
    iptables –A Filter -p udp -s 192.168.0.1 –dport 53 -j DROP
    只允许某些服务,其他都拒绝(2条规则)
    iptables -A Filter -p tcp -s 192.168.0.1 –dport 1000 -j ACCEPT
    iptables -A Filter -j DROP
    禁止某个IP地址的某个端口服务
    iptables -A Filter -p tcp -s 10.10.10.253 –dport 80 -j ACCEPT
    iptables -A Filter -p tcp -s 10.10.10.253 –dport 80 -j DROP
    禁止某个MAC地址的某个端口服务
    iptables -I Filter -p tcp -m mac –mac-source 00:20:18:8F:72:F8 –dport 80 -j DROP
    禁止某个MAC地址访问internet:
    iptables -I Filter -m mac –mac-source 00:11:22:33:44:55 -j DROP
    禁止某个IP地址的PING:
    iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

  • flash 插件和独立播放器离线安装包下载地址

    flash 插件和独立播放器离线安装包下载地址:

    http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_ax.exe
    http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player.exe
    http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_ppapi.exe
    http://download.macromedia.com/get/flashplayer/updaters/18/flashplayer_18_sa.exe
    http://download.macromedia.com/get/flashplayer/updaters/18/flashplayer_18_sa_debug.exe
    http://download.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe

  • 让JPA的Query返回Map对象

    在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。
    但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List
    也就是说每行的数据被作为一个对象数组返回。
    常见的用法是这样的:

    public void testQuery(){
    Query query = entityManager.createNativeQuery(“select id, message,created from message”);
    List rows = query.getResultList();
    for (Object row : rows) {
    Object[] cells = (Object[]) row;
    log.info(“id = ” + cells[0]);
    log.info(“message = ” + cells[1]);
    log.info(“created = ” + cells[2]);
    }
    }

    这样用会使代码非常不容易让人理解, 究竟下标为0的元素到底是什么, 不去数查询语句是不知道的,而且一旦查询语句被调整,Java代码也要一起调整。这时候我们想如果返回的是Map的话,用起来会清晰的多。

    可惜的是JPA的API中并没有提供这样的设置。其实很多JPA的底层实现都是支持返回Map对象的。例如:
    EclipseLink 的 query.setHint(QueryHints.RESULT_TYPE, ResultType.Map);
    Hibernate 的 query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    OpenJPA的
    QueryImpl> impl = q.unwrap(QueryImpl.class);
    impl.setResultClass(Map.class);

    如果项目中用的是其他的ORM实现,可以在代码中选中Query按Ctrl+T 查看具体的实现类,在实现类中有设置返回类型为Map的方法
    所以,如果我们想要返回Map并且确定底层用的是某一种JPA的实现时我们可以退而求其次, 牺牲跨实现的特性来满足我们的需求:

    public void testQuery(){
    Query q = entityManager.createNativeQuery(“select * from message”);
    QueryImpl> impl = q.unwrap(QueryImpl.class);
    impl.setResultClass(Map.class);
    log.info(“q: ” + q);
    List> list = q.getResultList();
    for (Map m : list) {
    log.info(“m: ” + m);
    }
    }

  • 当迷茫在高校里泛滥成灾

    当迷茫在大学里泛滥成灾》——李开复

    “不要说上课听不懂,不要说教师不关心,不要说专业不感兴趣,不要说学校太烂,堕落不需要理由,只需要借口。” 【对话大学生】

    你们经历了高三,但是它对于你们来说并不是黑色的,只是一种比平时紧张的感觉而已,在内心深处你们还没有真正意义上体会到了为了自己的目标拼命的含义,在这一次比较苍白的过程中,你们已经丧失了一次铸炼自己的机会。
    一个人失去一次机会并不算什么,可是就是在这一次一次的失去中,有许多人就失去了成功的人生。那们,我的同学们,你们失去了什么?黑色是压抑和沉闷的,但是在它的背后,却代表成熟与大气。在你经历的大学生活中,你是不是有许多时间都不知所措,有许多时间都在宿舍里床上度过,有许多时间都用在QQ上的闲聊,有许多时间都在网络游戏里厮杀。
    一学期、一年、两年过去了……突然发现自己没有认真听过几节课,虽然给你们上课都是讲师以上级别的;突然发现自己没有认真读过几本书,虽然你们大学里的图书馆有很多的藏书;突然发现自己没有学到东西,虽然大学里有很多的可以学习东西。你现在是不是正在为期末考试过关,而不是达到优秀而发愁,正在盘算不会被亮红点的各种方法:突击学习,考试作弊,请酒送礼,独自祷告……

    一、读大学是享受生活还是塑造自我?

    在你们经历的大学生活中,有许多同学都反映到了这样一个问题:不知道自己一天到底要做什么,或是做什么都不起劲。这在刚进入大学的学生当中是一个非常普遍的现像,因为你们丧失了目标。对于许多同学而言,大学是你们最后的求学阶段。读完大学就要找工作,可是这对于已经做了十二年学生你们而言仍然显得那么的遥不可及。 在大学里面没有任何一个教师会围绕你们转,学不学完全是自己的事。没有了以前做不完的作业你们觉得上课对自己空荡荡的,学了又怎么样,不学又怎么样?与其让自己学得这样辛苦,还不如让自己过得洒脱一点。没有任何人给你讲你应该去做什么,让你们觉得茫然不知所措。
    你们大多数人却乏精神的独立与良好的自控,你们根本无法去把握这些显得过多的自由。 到底要做怎样的人,到底要干什么样的事业,这些对于你们而言是毫无概念。从小学时代我的理想,到初中时代我的将来,到高中时代我的大学,到大学时代我的迷茫,你们在这一过程中完成了人生目标的蜕变,最后剩下的是死掉的虫皮。正是因为你们丧失了目标,没有方向的船,什么风都不是顺风。我相信,如果每一个同学都有一个目标,你们会过得很充实,会过得很忙碌,并且会得到很多。所以,请每一个同学都给自己定下一个目标吧。 生活就像巧克力盒,你永远都不知道下一颗会是什么样的滋味!
    也许有的人会这样问:为什么别人可以潇洒地生活,而我却要痛苦的拼搏。我把它换成另外一个问题:读大学到底是享受生活还是塑造自我。 有许多同学在刚进大学的时候都去尝试过竞选学生会、各种社团的干事与干部。事后,有许多同学都发出了这样的感叹:不公平,做什么都要凭关系。我到想请问,学校尚且如此,社会又怎样呢?社会上对权术、关系、金钱不是玩得更彻底吗?以后你到底凭什么在社会上立足?要权力没权力,要关系没关系,要钞票没钞票,那到底还有什么呢?当你们大学毕业以后,却突然发现自己除了拿到了一个大学毕业证之外,除了能说一点好像很深奥的话题之外,并没有学到真正过硬的本事时,你们做的工作也许只是名称好听点而已,也许是任何人都可以做的而已。到那时你们是不是还要怨天尤人?我们每一个人都想过上高质量的生活,都想让自己的至亲过上无忧的生活,都想在世上留下自己价值的痕迹,但这些不是在享受中就可以实现的。上天给了我们每个人一双手和一个大脑,就是要让我们去创造与思考。大学这段时间是你们最佳的学习时间,所以请你们放弃享受,努力地重塑自我,为以后的腾飞积聚力量。

    二、感情泛滥得只是被当成了一种需要!

    既然是谈大学生活,那么爱情是一定要谈的。大学里面的正是青春期的少男与少女,爱情在这里不可避免地发生了。但不知何时起,这正常的不能再正常的事情却遭遇从来没有过的质疑:现在的大学生感情泛滥。现在大学生的情感里面夹杂了大多的功利、欲望、放纵在里面。每年毕业时,情侣们最后一顿饭,最后一次拥抱,最后一次亲吻,然后转身离开,踏上各自的旅途,从此把这段感情遗忘,就像从来没有发生一样。爱情只是被当成了一种需要。
    有许多人要抓住爱情或是被爱情抓住。但是我希望你们的爱情是真诚的,是认真的,是纯洁的,是本色的。如果你觉得他很帅,想去和他谈恋爱,请三思;如果你觉得她很美,想去和她谈恋爱,请三思;如果你觉得很孤单,想去找一个人谈恋爱,请三思;如果你只是因为听了朋友的几句言语,就去和某个人谈恋爱,请放弃。“爱”字实际上已经清楚的表明它的对象:下面的“友”字说明你应该很了解他(她),他(她)应该是你的朋友;“ㄇ”说明你要在这些朋友之间认真选择;“ノ”说明你只能在精挑细选中选出一个作为你的爱人,其它的只能作为你的朋友。
    请珍惜自己的情感,否则它会变得很廉价。爱情是什么?这个你们心里面应该清楚。我觉得:因为优秀而被吸引,因为吸引而被爱,因为被爱而学会爱,这才是爱的过程。

    三、责任,是成熟的思想内定的!

    如果我没有记错的的话,你们每年的学费是5000元以上,最高的已经达到了10000元以上,再加上你们的生活费以及其它费用,大多数可以达到15000元以上,你们现在是在大学里求学,是在接受一种高额费用的教育,可是你们的父母高额的投入,在你们的身上得到了多少产出?你们大多数都是来自农村,或者是小生意家庭,没有多少人家里有万贯家财,你们现在用的每一分钱都是父母挣来的血汗钱,甚至是到处借来的钱,其间蕴含着无比的艰辛与对你们的爱。在他们被岁月留下创痕的老脸上,还有一双对你们充满希望的眼睛,那一双浑浊甚至有一点模糊的眼睛。责任,并不是别人给你的,而是自己成熟的思想内定的。
    你们都说自己长大了,都说自己成熟了,但我觉得,20岁的你们只是一种表向的成熟。你对自己父母具有永远都无法推卸的责任,但是你们却在无为与堕落当中放弃了承担的使命。一学期结束后,回到家里过年时,你的父母仍旧对你宠爱有加,仍旧对你充满希望,仍旧对你叮咛嘱咐,但是你却没有丝毫的歉意,根本不谈你的学习,甚至于不把成绩通知单拿给他们过目,躲在某个角落里用自己的手签上本来应该由他们来签的名字。
    建造一个事物很难,摧毁一个事物却很容易,同学们,请牢记并承担起你们对父母的责任。
    结语:
    QQ里又发出了让人手痒的声音;网络游戏里又出了让人觉得兴奋无比的厮杀声;湖边的路灯下又站着一对对相互依偎的情侣;牌桌前又摆满了好像可以唾手可得的钞票……在你们的身边有太多的混日子的大学生,他们过着同龄人向往的潇洒生活;你们要耐得住孤独与寂寞,这好像是大学生活格格不入的。但是成功与伟大的人都是孤独与寂寞的,他们忍耐的过程中培养了他们超强的毅力与过人的智慧;大学里有太多的诱惑,你们需要拒绝这些诱惑,在别人眼里像苦行僧一样在大学里穿行……

  • 为防火墙增加开放端口

    /sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
    /etc/rc.d/init.d/iptables save
    /etc/init.d/iptables restart

    –centos 强制释放系统内存

    # sysctl -w vm.drop_caches=3

  • rsync服务的安装和使用

    服务器端配置:
    # yum -y install xinetd

    # vi /etc/xinetd.d/rsync
    将如下代码

    service rsync
    {
    disable = yes
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/rsync
    server_args = –daemon
    log_on_failure += USERID
    }
    中的 disable = yes 改成 disable = no

    然后启动 xinetd
    # /etc/init.d/xinetd start 或 service xinetd restart
    注意:如果服务器上装有防火墙记得要打开端口,默认端口是873

    # vi /etc/rsyncd.conf
    [download]
    path=/data/download
    read only=yes
    uid=nobody
    gid=nobody
    hosts allow=*

    rsync同步发送给目标服务:

    rsync -vzrtopg –progress –delete /test/aaa rsync://192.168.1.1:873/data/test

    其中 data 是 目标机器 rsync 服务的模块

    其他不想关的命令:

    查看分隔符文件指定列的值(列编号从1开始):

    awk -F ^A ‘{if ($2!=0 && $3==81065 && $5==207817) print }’ xxxx.log.20140828* | wc -l

    其中的 ^A 是 unicode \u0001 ,可使用 ctrl + v + a 打出来。

    tcp 抓包:

    tcpdump -Avvnns 0 -i any ‘host xxx.com and (((ip[2:2] – ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)’

    命令返回和域名 xxx.com 交互的 tcp 数据包

  • redis安装和sentinel集群模式

    install:

    mkdir /data/download -p
    cd /data/download

    ///You need tcl 8.5 or newer in order to run the Redis test

    wget http://sourceforge.net/projects/tcl/files/Tcl/8.5.15/tcl8.5.15-src.tar.gz/download
    tar xzvf tcl8.5.15-src.tar.gz -C tcl8.5.15-src
    cd tcl8.5.15-src/unix/
    ./configure –prefix=/data/lib/tcl8.5.15
    make
    make install
    ln -s tcl8.5.15 tcl

    export PATH=/data/lib/tcl/bin:$PATH
    #export LD_LIBRARY_PATH=/data/lib/tcl/lib:$LD_LIBRARY_PATH

    wget wget http://download.redis.io/releases/redis-2.8.13.tar.gz
    tar -xf redis-2.8.13.tar.gz
    cd redis-2.8.13
    make
    #make test
    #make PREFIX=/data/lib/redis install

    make PREFIX=/data/lib/bin/redis-2.8.13 install

    cd /data/lib/redis
    mkdir conf
    mkdir logs
    mkdir var
    cp /data/lib/redis-stable/redis.conf /data/lib/redis/conf

    ——————————————————-
    $ pwd
    ——————————————————-

    /home/redis/app/redis

    ——————————————————-
    $ ll bin
    ——————————————————-

    -rwxr-xr-x 1 redis redis 4580235 Jul 28 16:16 redis-benchmark
    -rwxr-xr-x 1 redis redis 22233 Jul 28 16:16 redis-check-aof
    -rwxr-xr-x 1 redis redis 45467 Jul 28 16:16 redis-check-dump
    -rwxr-xr-x 1 redis redis 4675985 Jul 28 16:16 redis-cli
    -rwxr-xr-x 1 redis redis 6201291 Jul 28 16:17 redis-sentinel
    -rwxr-xr-x 1 redis redis 6201291 Jul 28 16:16 redis-server

    ——————————————————-
    $ ll
    ——————————————————-

    drwxrwxr-x 2 redis redis 4096 Jul 28 16:17 bin
    drwxrwxr-x 2 redis redis 4096 Jul 28 20:13 conf
    drwxrwxr-x 2 redis redis 4096 Jul 30 17:55 data
    drwxrwxr-x 2 redis redis 4096 Jul 28 19:44 logs
    -rwxr-xr-x 1 redis redis 108 Jul 28 16:15 shutdown.sh
    -rwxr-xr-x 1 redis redis 106 Jul 28 16:40 startup.sh
    -rwxr-xr-x 1 redis redis 79 Jul 28 20:12 stn-shutdown.sh
    -rwxr-xr-x 1 redis redis 138 Jul 28 17:03 stn-startup.sh
    drwxrwxr-x 2 redis redis 4096 Jul 28 15:00 temp
    drwxrwxr-x 2 redis redis 4096 Jul 28 20:19 var

    ——————————————————-
    $ cat stn.conf
    ——————————————————-
    port 26379
    dir “/data/redis/app/redis-2.8.13/temp”
    sentinel monitor mymaster 172.16.16.156 6379 2
    sentinel down-after-milliseconds mymaster 10000
    sentinel auth-pass mymaster password
    sentinel config-epoch mymaster 1
    sentinel leader-epoch mymaster 1

    # Generated by CONFIG REWRITE
    sentinel known-slave mymaster 172.16.16.155 6379
    sentinel known-slave mymaster 172.16.16.157 6379
    sentinel known-sentinel mymaster 172.16.16.156 26379 89348644a66ba88bf7dec6d67a6e210080576051
    sentinel known-sentinel mymaster 172.16.16.157 26379 e4104de666d036dbbb3c47926b1b9a3177ec1549

    sentinel current-epoch 1

    ——————————————————-
    cat startup.sh
    ——————————————————-

    # start redis in sentinel mode
    export pwd=`dirname “$0″`
    $pwd/bin/redis-server $pwd/conf/redis.conf

    ——————————————————-
    cat shutdown.sh
    ——————————————————-

    # shutdown redis
    export pwd=`dirname “$0″`
    $pwd/bin/redis-cli -h 127.0.0.1 -p 6379 -a password shutdown

    ——————————————————-
    cat stn-startup.sh
    ——————————————————-

    # start redis in sentinel mode
    export pwd=`dirname “$0″`
    $pwd/bin/redis-server $pwd/conf/stn.conf –sentinel >> $pwd/logs/stn.log &

    ——————————————————-
    cat stn-shutdown.sh
    ——————————————————-

    kill -9 `ps -ef | grep -v grep | grep redis | grep 26379 | awk ‘{print $2}’`

    ——————————————————-