Blog

  • 使用rpmbuild制作squid rpm包

    制作RPM包有很多好处,可以较快安装部署喜欢的配置,参数;对于大批量安装省时省力,是一件事半功倍的事。

    制作RPM需要准备好源码包和spec文件,安装好依赖和编译工具,熟悉制作RPM包的几个目录。
    制作rpm包目录说明:
    BUILD解压的目录
    BUILDROOT假定的安装目录(变量为$RPM_BUILD_ROOT%{buildroot})
    RPMS存放制作好的rpm包
    SOURCES存放源码包
    SPECS存放spec文件
    SRPMS存放srpm包

    这里制作squid的rpm包只需要将源码包放置到SOURCES中,再切换到SPEC目录中,运行

    rpmbuild -ba squid.2.7.spec

    在制作过程中需要注意的:

    制作RPM包不能使用root用户,因为权限过大,操作错误会造成较大影响。

    使用普通用户制作时,rpmbuild的宏定义可以在~/.rpmmacros中定义

    在spec中使用自定义宏的方法 %define macro_name value

    在spec中使用宏的方法是 %{macro_name}

    在spec中注释用#,注释信息中不可用%

    制作squid RPM包build过程时,出现的错误及解决

    出现../include/squid_md5.h:27:2: error: #error Cannot find OpenSSL MD5 headers
    解决:需要安装好openssl相关组件

    yum install -y openssl*

    出现rpmbuild: error: Installed (but unpackaged) file(s) found Solution
    解决:需要在段files写全目录

    %files%defattr(-,root,root,-)/path/to/dir//path/to/file/

    squid源码包下载地址:http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE5.tar.bz2

    squid.2.7.spec内容

    %define squid_user squid
    #---RPM包信息
    #描述信息
    Summary:        hupu web proxy and content serving.
    #软件包名
    Name:           squid
    #软件包版本
    Version:        2.7.STABLE5
    #rpm包的发行版本,RPM包制作者自己定义,第几次制作找个包就写几次。
    Release:        3%{?dist}
    #rpm包的下载地址,如果没有下载地址可以写成源码包的官方地址
    URL:            http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE5.tar.bz2
    #RPM包的密钥,可以去源码包找对应的密钥,涉及到版权信息。
    License:        Creative Commons Attribution Sharealike 2.5 License
    #rpm包的所属组
    Group:          System Environment/Daemons
    #指定rpm包的源文件,地址在_topdir/SOURCES
    Source0:        squid-2.7.STABLE5.tar.bz2
    #Source1:        squid.conf
    #指定rpm包的虚拟目录,类似DNS的chroot
    BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
    #取消自动添加依赖关系
    AutoReq: no
    #描述信息
    %description
    Squid is a fully-featured HTTP/1.0 proxy which is almost (but not quite - we're getting ther
    e!) a fully-featured HTTP/1.1 proxy. Squid offers a rich access control, authorization and l
    ogging environment to develop web proxy and content serving applications. Squid offers a ric
    h set of traffic optimization options, most of which are enabled by default for simpler inst
    81 lines yanked                                                                                                          1,1           Top
    #rpm包的所属组
    Group:          System Environment/Daemons
    #指定rpm包的源文件,地址在_topdir/SOURCES
    Source0:        squid-2.7.STABLE5.tar.bz2
    #Source1:        squid.conf
    #指定rpm包的虚拟目录,类似DNS的chroot
    BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
    #取消自动添加依赖关系
    AutoReq: no
    #描述信息
    %description
    Squid is a fully-featured HTTP/1.0 proxy which is almost (but not quite - we're getting ther
    e!) a fully-featured HTTP/1.1 proxy. Squid offers a rich access control, authorization and l
    ogging environment to develop web proxy and content serving applications. Squid offers a ric
    h set of traffic optimization options, most of which are enabled by default for simpler inst
    allation and high performance.
    
    #准备安装,解压 cd等都这这里进行
    #rpmbuild -bp
    %prep
    %setup -q
    
    #编译信息
    #rpmbuild -bc
    %build
    export DESTDIR=%{buildroot}
    ./configure --prefix=/usr/local/webserver/squid --enable-arp-acl --enable-snmp --enable-dlmalloc --with-pthreads --enable-epoll --enable-poll --disable-internal-dns --enable-stacktrace --enable-removal-policies=heap,lru --enable-delay-po
    ols --enable-storeio=ufs,aufs,diskd,coss,null --enable-external-acl --with-large-files --enable-large-files --enable-async-io --enable-dl-malloc --enable-ssl --enable-auth=basic,digest,negotiate,ntlm --enable-icmp --enable-large-cache-fi
    les
    make %{?_smp_mflags}
    
    #安装信息
    %install
    %{__rm} -rf %{buildroot}
    make install DESTDIR=%{buildroot}
    #%{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}/usr/local/webserver/squid/etc/
    
    #可以写一下脚本,安装前,安装后,卸载前,卸载后等脚本
    %pre
    if [ $1 == 1 ]; then
        /usr/sbin/useradd -s /bin/false -r %{squid_user} 2>/dev/null || :
    fi
    %preun
    %post
    %postun
    
    #清除buildroot目录下的信息,以便不影响下次制作
    %clean
    %{__rm} -rf %{buildroot}
    
    #指定安装后的文件
    %files
    %defattr(-,%{squid_user},%{squid_user},0755)
    /usr/local/webserver/squid/bin/
    /usr/local/webserver/squid/libexec/
    /usr/local/webserver/squid/sbin/
    /usr/local/webserver/squid/share/
    %config(noreplace)  /usr/local/webserver/squid/etc/*
    
    #日志信息
    %changelog
    * Mon Jun 03 2013 -
    - second build
    * Fri May 31 2013 - Yangyang <[email protected]>
    - first build

    参考:

    http://wiki.centos.org/zh/HowTos/SetupRpmBuildEnvironment

    http://mageedu.blog.51cto.com/4265610/1205205

     

  • ubuntu安装配置nodejs

    安装nodejs,npm

    apt-get install nodejs
    apt-get install npm

    编写hello.js

    var http = require('http');
    http.createServer(
    function(req, res){
    res.writeHead(200, {'Content-Type':'text/plain'});
    res.end('hello node.js');
    }
    ).listen(8124,"127.0.0.1");
    console.log('Server running at http://127.0.0.1:8124/');

    运行

    node hello.js

    打开浏览器即可看到

    hello node.js

  • excel中vlookup函数的应用

    需求:ip与主机名对应,现在选出几个ip来,要能在右侧自动生成对应的主机名。

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    按上面的参数顺序用语言描述为:查找的值,查找的区域,查找的目标值所在的列,精确查找还是模糊查找

    如果查找出现N/A这种情况,可以用iferror使其变为空,2007及以上版本适用

    =IFERROR(vlookup(1,2,3,0),0)

    更多查看:http://baike.baidu.com/view/3170068.htm?fromId=3153205

    视频教程:http://v.youku.com/v_show/id_XMzI5NDE0MDE2.html

  • 通过ipmitools设置ipmi

    使用DELL的远程控制卡可以方便的管理服务器

    在CentOS中可以使用ipmitools管理 IPMI( Intelligent Platform Management Interface).

    要使用选程控制卡,一般需将一根网线插入控制卡中并设置ip,在BIOS的Integrated Dell Remote Access Controller (iDRAC)中设置 Dedicated (专用),遇到设置是shared(共享),发现控制卡的网卡灯不亮,分配了静态ip也没法用,这时就需要改成Dedicated 。

    用ipmitool设置dedicated

    ipmitool delloem lan set dedicated

    DELL的R410, R610按Ctrl+E进入设置界面
    DELL C6100 R620按F2进入设置界面

    在centos安装OpenIPMI:

    yum install OpenIPMI OpenIPMI-tools

    设置开机启动

    chkconfig ipmi on

    启动ipmi服务

    service ipmi start

    例子:

    设置固定ip

    ipmitool -I open lan set 1 ipsrc static
    ipmitool -I open lan set 1 ipaddr 10.10.1.x
    ipmitool -I open lan set 1 netmask 255.255.255.0
    ipmitool -I open lan set 1 defgw ipaddr 10.10.1.1
    ipmitool -I open lan set 1 access on

    设置自动获取ip,如果一时获取不到,需要切断机器的电源,等待5分钟之后,先插上网线再接上电源

    ipmitool -I open lan set 1 ipsrc dhcp

    查看控制卡信息

    ipmitool lan print 1

    查看管理地址

    ipmitool lan print 1 | grep 'IP Address'
    

    为加强安全,修改默认的SNMP通讯串

    ipmitool -I open lan set 1 snmp COMUNIATION
    查看有哪些用户可以web登陆
    ipmitool -I open user list 1

    得到:

    ID  Name         Callin  Link Auth  IPMI Msg   Channel Priv Limit
    1                true    false      true       ADMINISTRATOR
    2   admin        true    false      false      NO ACCESS
    列出来的序号为2的为root用户,为administration权限,(默认密码是root或calvin),现在更改其密码
    ipmitool -I open user set password 2
    输入两次密码即可。
    同理,序号为1的为一个user普通用户null,更改其密码
    ipmitool -I open lan set 1 password
    对用户的限制
    用户的启用:ipmitool user enable
    对用户进行权限控制:ipmitool user priv
    上面的都是在操作系统内对本机的远程管理卡进行设置和查看,对远端操作可以使用以下命令:
    ipmitool -H 192.168.8.137 -U root -P root sensor |grep -i temp
    查看event log
    ipmitool -v -H 10.10.1.38  -U root -P root sel list
    清空 event log
    ipmitool sel clear
    也可以控制远端ipmi的电源
    ipmitool -I lan -H 10.1.199.212 -U root -P root chassis power off/reset/on/status
    控制远端ipmi的引导方式
    ipmitool -I lan -H 10.1.199.212 -U root -P root chassis bootdev pxe/disk/cdrom
    关于设置的生效问题:
    到目前测试的情况来看,将机器关机断电后,3分钟再加电开机,这样生效最靠谱。
    但实时生效是我们的目标,但效果不是很好
    网上说ipmitool mc reset cold是重启BMC,但我试了一下,是重置,网上的东西一定要质疑。
    参考:
    设置iDRAC
    设置ipmi
    补充:
    对于Dell多刀的C系列服务器,使用最上面的方法用ipmitool修改网卡模式dedicated为shared会提示
    Error in setting nic selection (Invalid command)

    C系列,如C6100,要用dell自已出的工具 bmc tool来设置网卡的共享模式

    下载地址 http://poweredgec.com/,提供tgz和rpm安装包。我这里下载tgz包,解压之后执行

    [root@jpuyy ~]# ./bmc nic_mode get
     dedicated
    [root@jpuyy ~]# ./bmc nic_mode set shared
    [root@jpuyy ~]# ./bmc nic_mode get
     shared

    Dell C系列bmc工具使用手册http://poweredgec.com/files/QSG_PowerEdge_C_System_Management.pdf

    返回第n个节点。

    bmc node_number
  • 在上海找工作及面试总结

    这些天找工作(2013年4月12日-2013年5月13日),有朋友和家人的关心帮忙。一个人有难处的时候,会有人帮你一把,在这期间不要总是花心思想怎么回报别人,因为别人想的可能只是拉你一把,回不回报无所谓。

    这段时间找工作及面试,不管是公司还是我自己,确实是非常耐心、细致、负责:

    从公司来讲,用一个人能不能产生价值,会不会坏公司的事,而且IT用人成本挺高;
    从个人来讲,换工作,生活工作的圈子就会发生很大的变化,职业路线也会发生变化,几年的生活就会发生很大变化,而且将付出自己最棒的年轻时光。

    在找工作中越是被拒绝,就越是要坚信:

    我正在经历的是大多数年轻人都需要经历的低谷,我的态度会决定我将来的发展方向;
    越是被拒绝,越是达不到职位要求,就越坚定离开上一家公司是对的;
    一定要耐心,绝不放低要求,坚信自己能找到合适的工作;
    找适合的工作,而不是最好(给钱最多)的工作,IT这行太耗人了,最好是选有兴趣,加班适度的。

    《浪潮之巅》中有一句话,“错过现在中国发展的快车,就像一百五十年前错过美国发展一样可惜”,那么什么怎么才能搭上这个快车?不安于现状,保持进步,抓住时机,胆子足够大。

    以下是这一个月来面试的清单及简单回忆,找工作这件事是双方的选择过程,但我还是特别感谢每一家公司给我的面试机会。

    2013-04-17 皇家网络,工作职责和兴趣点不交融,面完没有消息
    2013-04-17 创享桥,打电话过来让我做英文自我绍,没有做好准备,英文简历写的也不行;那个人事说,要实在很自信,可以帮我争取一下面试,我竟脑子抽了一下打了退堂鼓,失去了面试机会。
    英文简历的问题说明了,做事情,和自己相关的事情,一定要细心做到位(简历、博客)都一样。
    2013-04-23 快钱 ,但由于技术达不到linux系统工程师,只有监控岗,虽然公司挺牛,但监控不是我想干的,25号收到最终否定的答复
    2013-04-24 启明计算机 是做私有云的,公司是那种挺传统的公司,工作的地方还有摄像头,给人感觉不太好,聊的还挺不错的,但最终没有答复
    2013-04-26 博雅 是忽悠人去培训的,pass
    2013-04-28 百姓网 特有范儿的公司,先是邮件笔试题目(四道),然后电话面试,觉得可以会安排到公司的面试,地处徐家汇,一对一面试,分三个人一个一个来,虽然聊天试的面试氛围很轻松,但是有很多问题问的很细,能考察一个人对细微知识的掌握。好多问题里可能暗藏陷阱,比较悲剧,问一些笔试里中写的脚本我都没答上来。最后一个是非技术面试,问了一些上海有多少辆出租车,你最擅长什么,最近在读什么书,五年之后你会做什么,你觉得你人生最大的失败是什么。没有什么标准答案。晚上给了邮件回复,这样的公司比较好,要不要你有定论了会尽早说出来。
    2013-04-27 中软国际 外包公司
    2013-05-02 虎扑体育网 不错的专门性网站,笔试答的不怎么好,聊下来但挺适合我的,最终也录了我
    2013-05-03 盛大网络 笔试感觉就是一张考卷,答的不行,接下来也没有消息了
    2013-05-06 2345.com 挺大的公司,问了几个技术题之后觉得我技术不够,建议我好好历练技术。
    2013-05-07上午 拉朋 定位人群是用手机找工作,我是北方人,又跑常州上学,又跑南京工作,现在又跑到上海,确实有可能是担心我的稳定性问题。
    2013-05-07下午 盛浪 游戏公司 身体耗得快,待遇差
    2013-05-08 双杨 外包给上海证监会,挺适合我,但是可能工作压力较大,身体耗的也快
    2013-05-10 细博生物 给各大医院做网站,较适合我,无社保,管住
    2013-05-13上午 爱数 软件行业非互联网行业,系统配置管理工程师,不适合我
    2013-05-13下午 微汇 新浪支付,前影应该不错,但是是系统管理配置工程师,配合开发做东西,不适合我

    最后能入职虎扑,5月13号拿到offer,5月20日入职,是很满意的结果了。

    nanjing-shanghai-train-tickets
    nanjing-shanghai-train-tickets
  • 毕业一年回常大聚会

    过了年就在群里嚷嚷说聚会,4月清明的时候没聚成,最终4月30号,大家从不同地方赶来学校,就像以前开学时候一样。不过班上24个人,只来了12个人。

    我提前一天到学校,常州的2路车还是那么给力

    常州2路
    常州2路

    住在我们学校唯一我们县里的老乡那里,在他们宿舍里洗了个澡,穿着短裤在阳台上抽烟,晚上的学校特别安静,又回到了大学无忧无虑的日子。这位张同学很厉害,几个月比我上一年班挣的都多。

    ttyo也来学校玩,和她去食堂吃饭,随口说出的一句话让自己都很触动的话: 我来打汤,你去拿筷子。两个人才吃了十二块钱。

    30号大家来了,我们宿舍有三个带家属,哈哈。才毕业一年,大家变化不是很大。午饭吃饭喝酒要比学校稍微上一个档次,平均每人80,然后是ktv,晚上烧烤。

    吃吃学校的早饭,在教室坐坐,在校园走走,长椅上坐坐。

    常州大学
    常州大学

    吃吃学校旁边最喜欢的金沙的蛋炒饭。不油腻却很香,能吃出蛋香味,饭香味,软硬适中,吃完不觉得口干,是我吃过的最好吃的蛋炒饭。

    金沙蛋炒饭
    金沙蛋炒饭

    该走了,大家和毕业的时候一样各奔东西。