近况。

小美。。自从十二月五号辞职以后。我和小美同学就一直奔波在面试的路上。一天两家。上午一家下午一家。。老遇到骗子公司。。很无奈。小美同学很犟。非得找到一个税后3K的工作才上班 。。一直到现在。昨天刚把她送走。去了一家公司。没待上十天就又辞了。受不了一些人一些事。。轻松的氛围。没有压力。没人管。但这不是我要的生活。我需要一个压着我大步往前迈的平台。。高速发展的时期。我相信我的决定是对的。不是冲动。。人在解决温饱的情况下不能为了钱而自己失去判断力。。石头同学。加油。我相信以后一切会好起来的。当你回头看这些事情的时候。不过是人生失意之时。不必害怕。不必担心。会好起来的。会好起来的。。相信自己~~~

 

明天回家过年。。看望爸妈。~

shell问题小解

#!/bin/bash
#filname:offservice

#service=`chkconfig –list|grep 3:on|awk -F” ”  ‘{print $1}’`
service=`chkconfig –list|grep 3:on|cut -d’0′ -f1`
for i in $service
do
        echo “chkconfig –level 35 $i off”
done

openservice=(crond iptables network sshd syslog portmap ipmi)
for j in $openservice
do
        echo “chkconfig –level 35 $j on”
done

看出来有什么问题了吗?

红色部分总得不到正确的结果,改为

openservice=“crond iptables network sshd syslog portmap ipmi”
for j in $openservice
do
        echo “chkconfig –level 35 $j on”
done

或者

openservice=(crond iptables network sshd syslog portmap ipmi)
for j in ${openservice[@]}
do
        echo “chkconfig –level 35 $j on”
done

就正确了

 

原因:

*和@没有理解正确

*为当作一个参数进行赋值

@为当作几个参数进行赋值

而数组$openservice为数组第一个元素,所以得到的错误的结果

27岁后月薪低于8K,会被淘汰吗?

前段时间看了一篇文章,叫做《IT人为什么难以拿高薪》,颇有感触,于是写下这篇文章,希望与各位XDJM共勉~
能够看到这个帖子的每个XDJM,我们大家都不是含着金钥匙出生的富二代,因此,我们的一切成就需要自己的努力,这里面有痛苦,有彷徨,有挫折,我们是否能够咬牙坚持下去?
首先,在中国这么一个人口众多的国家,尤其是在北京、上海这种一线城市,如何脱颖而出很重要,本科学历,四级证书已经成了最基本的标志(这里没有任何歧视意义,但是如果没有学历,很多垃圾公司会连面试的机会都不给),不用给我讲个例说有些人高中没毕业也能很成功,是,我身边就有一个实例,我曾经面试过一个90后的小男孩,高中都没毕业就不喜欢上学,只是酷爱系统运维(注意,我写的是酷爱)。第一次面试就让我感觉其非常有潜力,于是将他介绍给我前公司的老板,现在,差不多半年的时间,他的薪水已经由3.5K上升到了13K,远远高于我在公司时的薪资水平,呵呵,为什么,因为他玩命到疯狂的地步,每天没有任何的生活空间,坚持每晚2-3点才睡觉,疯狂的学习Linux系统运维的一切知识,诸君,如果你没有这份坚持与执着,那就认真去考个学历,并且把英语搞好,我不是说有了这两样东西就会成功,你同样需要努力,但是相比之下,机遇更多一些~
其次,我们应该有一个良好的职业发展方向,我周围有很多朋友,也见过很多人,包括应届毕业生和工作了两三年的朋友,甚至有的朋友都工作了快5年的时间,仍然拿很低的薪水,勉强维持生计,聊天的时候会感觉自己很迷茫,不知道能做什么,也不知道该做什么,这里,熊熊希望提醒大家,IT已经不是曾经的泡沫经济时代了,希望理性对待,如果你不是那块料(我的导师曾经说过一句话,IT人的成功是拿钱和命堆起来的,所谓钱就是疯狂的买书,看资料,命当然就是玩命学习了),那么在你还没有进入这行之前,请三思。如果你已经选择了IT这个行业,那么恭喜你,虽然这个行业现在人数众多,但是90%还都停留在最初级的IT民工层次,只要你肯付出努力,你就会站在金字塔尖~
至于IT发展方向,我本不想多说,每个人的想法不一样,但是我还是希望唠叨几句,算是个建议吧,首先,大家可以去各大招聘网站浏览,热门的职位,如项目经理、技术总监甚至CTO等,还是以软件开发为主,毕竟,我们要考虑一个公司的组成架构(不考虑人力行政及财务后勤等职能部门),对于一个大型互联网企业来说,拳头部门是他的产品与研发部门,这两个部门支撑着整个网站乃至整个公司的核心,没有产品没有平台谈其他的都没有任何意义。至于收益部门,肯定是销售和市场这两个部门,不管在哪个公司,只要你有成熟的产品,这两个部门的精英们就会想尽一切办法将其变为收益;再次是售前售后支持部门,一个好的产品并不是卖出去就算成功了,更重要的是客户的良好反馈,百年老店靠的是什么――口碑!最后,才轮到系统运维部门,做好了,是公司信息化部门,做不好,就会沦落成网管部门,任何其他部门的小鱼小虾都会踩你一脚,老板还不会向着你,因为,在老板的眼里,你只是为其维护硬件,适应的节约成本罢了(而且,在他眼里,你每次节约成本会带来更多的成本投入,比如我们的数据库经常需要升级内存 ^_^),所以,能不能做好,如何规划好,很重要~
对于软件开发方向,熊熊强烈建议学习C++或者C这种语言,相比其他语言,这两种语言囊括了所有能做的事情,而且用这两种语言的薪水,一般都是其他语言的2倍以上;第二类,建议.NET平台下的C#语言,也许会有人认为微软平台的产品很垃圾,我想说的是,存在即合理,Linux如果有那么多人去测试,去攻击,一样会撑不住,而且,用得起微软的,都是有钱的公司,这样的公司,薪水也不会低吧,呵呵;第三类,LAMP,这里,好像不是纯开发了,其实,我想说的是,如果你选择PHP,就必须深入理解LAMP,我见过很多号称PHP很好的开发,只是用Zend等成熟的框架进行编码开发,并不深入理解PHPMySQL的架构,更不理解Linux架构,那样的话,你的薪水怎么可能上的去;第四类,本人非常熟悉但一直不想说的Java,好像是从01年开始,Java这种语言迅速占领了我们的视线,学习Java的热潮使得熊熊也一度迷茫过,Java语言的培训学校也如同雨后春笋一般层出不穷,然后,近十年以后的今天,Java语言走到什么程度了呢,那就是,一个应届毕业生甚至可以号称自己精通Java语言,我承认我身边有很多真正的Java高手,他们的薪水不低,但是对比我认识的其他语言的高手,还是差了一大截,如果非要选择Java,我希望你能够有机会去一个大型公司做ERP(比如国内的用友、金蝶、浪潮通软),否则就深入研究一下嵌入式吧(J2ME),这也是未来的发展方向,至于用JSP做网站,我劝还是算了,除非你能牛到成为架构师(不是PM,是真正的架构师),不然真的是在浪费青春,充其量只是代码民工罢了~
对于系统运维来说,这是熊熊最熟悉的职业了,但是也是熊熊最深恶痛绝的一个职业之一,运维的程度不一样,决定运维的水平良莠不齐,而且,做运维最重要在于是否有足够的权限,没有权限的SA是痛苦的,是郁闷的,而且学习不到任何东西,如果你做一个运维,感觉每天很清闲,那么恭喜你,只能说明两件事,不是你的水平真的高到了一定层度,就是你运维的环境实在太小,作为一个合格的SA,良好的日志记录与系统规划能力非常重要,谦虚谨慎,戒骄戒躁~
再来说说数据库,DBA是熊熊最向往之而且希望为其奋斗一生的职位之一,数据的魅力无处不在,在当今社会,任何一个稍具规模的公司(手工作坊就算了),无论是否与IT行业有关,数据都是其必不可少的组成部分,各种各样的数据均需要数据库来承载与维护(无论是大型的数据仓库,如DB;还是流行的OracleMS SQLMySQLSybase等;甚至是微型的VFAccess等),一个好的DBA的作用显得极为重要,不仅需要能够进行日常维护,对于数据库本身的优化(包括数据库系统架构优化与SQL优化)及数据库整体架构设计,更是锻炼DBA的一个重要工作,重要的开发工作(核心部分存储过程)也要由DBA来完成,没有人比DBA更了解数据库中各个库与表的合理架构,再高级的数据挖掘和BI等,那就是超级DBA的职责范围了~
最后谈谈系统集成职位,这个职位是熊熊刚刚接触不久,但是又深有感触的职位,想做好这个职位,不在于你的技术水平要有多高,但是对各种技术一定要非常了解,就是要做个博采众长的人,而且,重点是你的文档能力与沟通演讲能力(文档能力决定你上可以向领导有所交代,下可以向客户有所演示),这也是为什么很多技术很好的人做不好系统集成高级职位的原因,深入理解需求,并能将其准确的用书面和语言表达出来,这才是重中之重,当今社会需要复合型人才,闷头苦干一辈子只能做个高级工程师(建议看看唐骏自传)~
各位在北京或上海这种一线城市打拼的兄弟们,如果你们今年已经到25岁,还没有到27岁,请一定要努力,相信我,只要你肯努力,你的薪水能够在2年内达到6K以上(最保守数字),如果你到27岁的时候,还不能达到月薪8K,或者说完全没有这个潜力(潜力的保守值是你已经最少拿到6K的月薪),那么我只能对你说很遗憾,你会被社会淘汰了,这是很残酷却又很现实的存在,设想一下,我们现在本科毕业后,一般的年龄都在22岁左右,到27岁已经有了5年的工作经验,在北京或上海这种绝对一线城市,如果你拿不到这个数,你如何养家糊口,如何给你爱的人幸福,现在的女孩子都是现实的,没房没车的生活不是每个女孩子都愿意跟你过的(已经有女友的不要拍砖,那我只能祝贺你小子很幸运,而且,好好善待你女友吧,毕竟,没有面包的爱情是不牢靠的,人家肯跟你,你就要加倍努力回报),做IT人一定要有一个良好的职业规划,知道我一年后应该达到什么水平,三年后应该达到什么层度,五年后应该达到什么地位,这样下去才不会迷茫~
总之路在自己脚下,自己过得怎么样,只有自己心里明白,我写这篇文章的目的,没有任何针对性,只是希望每一个读了它的XDJM都能共勉之,并预祝各位XDJM尽早实现自己的人生价值~

【转】 使用MySQL计划任务

转载自 Java骑兵
最终编辑 zimu312500

原先,LAMP的程序员为了完成一些周期性的数据库操作任务,总是不得不借助于操作系统的帮助,比如Windows的计划任务,或者Linux的contab。MySQL5.1终于新增了Event Scheduler功能,可以直接在后台实现一下定时性的作业。但不知道什么原因,在英文版的参考手册中,位于触发器和视图之间的第20章Event Scheduler,在中文版中被删减掉了,手册的其他部分也没有丝毫提到它,好像它根本就不存在一样,所以它的知名度不是很高。有兴趣的读者可以参考http://dev.mysql.com/doc/refman/5.1/en/events.html获得比较完整的帮助。
1.1 开启
     MySQL的Event Scheduler是根据预先安排的计划进行数据库操作的数据库对象,可以看作是一种“时间触发器”。Event实际上是被一个特殊的event scheduler线程执行的,假如它正在运行的话,可以通过SHOW PROCESSLIST命令看到它。全局变量event_scheduler用来设定是否服务器端运行执行计划任务,该变量有如下三种值:
      OFF:计划任务处于停止状态,event scheduler线程没有运行。是event_scheduler的默认值;
      ON:计划任务处于运行状态,event scheduler线程启动,并执行所有的计划任务;
      DISABLED:该值将致使计划任务不可运行
     你可以使用下列的任意一句开启计划任务:
           SET GLOBAL event_scheduler = ON;
           SET @@global.event_scheduler = ON;
           SET GLOBAL event_scheduler = 1;
           SET @@global.event_scheduler = 1;

1.2 创建
     Event Scheduler作为一种数据库对象,其增删改的DDL语句与其他对象非常相似,无非CREATE、ALTER、DROP等,创建的基本语法是:
          CREATE EVENT        (1)
          [IF NOT EXISTS]        (2)
          event_name         (3)
          ON SCHEDULE schedule      (4)
          [ON COMPLETION [NOT] PRESERVE]   (5)
          [ENABLE | DISABLE]       (6)
          [COMMENT ‘comment’]       (7)
          DO sql_statement        (8)
     逐条介绍:
     (1) 创建Event嘛,这俩关键字当然不能少了
     (2) 如果不存在同名的数据库对象才创建
     (3) 计划任务的名字。作为数据库对象,都有一个本库内唯一的名字做标识
     (4) 计划任务的计划,重点就在这儿。有两个关键字来设定任务的执行计划:AT和EVERY:
          AT指定的是一个一次性计划,后面跟着一个时间戳,后续的sql语句将在指定的时间被执行一次;
          EVERY指定的是一个周期性计划,在该子句中可以指定从某时间点到某时间点期间,每隔某周期就执行一次该任务。
     (5) 任务整个执行完毕后,该计划任务对象是否还在数据库中保留。默认不保留
     (6) 有效或失效。默认有效
     (7) 真正要执行的语句

1.3 实例
      首先是一个一次性计划任务的例子,该任务在指定的2008-02-06 23:59:00这个时间点,向messages表中插入一条记录:
          CREATE EVENT e_totals
          ON SCHEDULE AT ‘2006-02-10 23:59:00′
          DO
          INSERT INTO messages VALUES (null, ‘admin’, ‘过年了!’, ‘祝大家鼠年发大财!!!’, ‘127.0.0.1’,NOW());
      下面是一个周期性计划任务的例子,该任务在2008-02-06 23:59:00开始的一年内,每隔1小时就删除掉messages表的早先的10条记录:
          CREATE EVENT e_hourly
          ON SCHEDULE
          EVERY 1 HOUR STARTS ‘2007-02-10 23:59:00′ ENDS ‘2008-02-10 23:59:00′
          DO
          DELETE FROM messages limit 10;

     计划任务属于数据库服务器端的对象,创建好后,只要开启了event_scheduler,就可以自动触发执行了,不用在前台进行任何干预。当然一定要记住,只有MySQL5.1以上版本才支持该对象。

Create event e_test on schedule every 24 hour do

Insert into table1(..) select … from table2 where pdate < DATE_FORMAT(now(), ‘%Y-%m-%d’);

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiedushi/archive/2008/11/06/3236122.aspx


mysql分区

本节讨论在MySQL 5.1中可用的分区类型。这些类型包括:

         RANGE分区基于属于一个给定连续区间的列值,把多行分配给分区。参见18.2.1节,“RANGE分区”

         LIST分区类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。参见18.2.2节,“LIST分区”

         HASH分区基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。参见18.2.3节,“HASH分区”

         KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。参见18.2.4节,“KEY分区”

RANGE分区

CREATE TABLE employees (   

id INT NOT NULL,   

fname VARCHAR(30),   

lname VARCHAR(30),   

hired DATE NOT NULL DEFAULT ‘1970-01-01′,   

separated DATE NOT NULL DEFAULT ‘9999-12-31′,   

job_code INT NOT NULL,   

store_id INT NOT NULL)

 PARTITION BY RANGE (store_id) (   

 PARTITION p0 VALUES LESS THAN (6),   

 PARTITION p1 VALUES LESS THAN (11),   

 PARTITION p2 VALUES LESS THAN (16),   

 PARTITION p3 VALUES LESS THAN (21)

)

 

LIST分区

CREATE TABLE employees (  

  id INT NOT NULL,   

 fname VARCHAR(30),   

 lname VARCHAR(30),   

 hired DATE NOT NULL DEFAULT ‘1970-01-01′,  

  separated DATE NOT NULL DEFAULT ‘9999-12-31′,   

 job_code INT,   

 store_id INT)

PARTITION BY LIST(store_id)   (

 PARTITION pNorth VALUES IN (3,5,6,9,17),   

 PARTITION pEast VALUES IN (1,2,10,11,19,20),   

PARTITION pWest VALUES IN (4,12,13,14,18),   

PARTITION pCentral VALUES IN (7,8,15,16))

 

HASH分区

CREATE TABLE employees (   

 id INT NOT NULL,  

  fname VARCHAR(30), 

   lname VARCHAR(30),  

  hired DATE NOT NULL DEFAULT ‘1970-01-01′,   

 separated DATE NOT NULL DEFAULT ‘9999-12-31′,  

  job_code INT,    

store_id INT)

PARTITION BY HASH(store_id)

PARTITIONS 4;

 KEY分区