西格玛向量™

分类存档: Linux

Fedora14下pgsnmpd的安装

Author:西玛哒   IN:IT悟语, Linux, 软件   标签: , ,    评论: 0

景介绍:

net-snmp 是一套简单网络管理协议snmp(Simple Network Management Protocol)的支持工具,它基于BSD许可发布了支持SNMP v1, SNMP v2c 与 SNMP v3,并可以使用 IPV4 及 IPV6 的工具包,用以从SNMP设备上获取信息,达到监视设备运行及相关衍生目的。
postgresql是同样以BSD协议发布的对象关系型数据库,它和Mysql,Oracle等数据库一样具有丰富的数据库功能,可以用于建站等诸多目的。
数据库的运行需要保证其良好的稳定性,特别是一些对数据操作比较敏感的关键项目,需要对数据库的运行进行监视,这里就需要为net-snmp实现接口,开源项目pgsnmpd便实现了这个功能。
项目主页:
http://pgfoundry.org/projects/pgsnmpd
继续阅读 »

05-02
2011

Gentoo下也有彩蛋~

Author:西玛哒   IN:IT悟语, Linux   标签:    评论: 2

在早先的文章中,曾经提过在Ubuntu中apt-get的母牛彩蛋。今天发现Gentoo中也有一样的~
#emerge moo
have fun~
5633924984 a193c5e90d Gentoo下也有彩蛋~

04-18
2011

Gentoo USE标记全记录(转编自论坛)

Author:西玛哒   IN:IT悟语, Linux   标签: ,    评论: 0

USE 标记系统是Gentoo 系统的精髓之一,一个好的USE标记设定能让系统的好钢用在刀刃上,虽然轻量却依旧功能齐全。之前没有好好研究USE标记,基本上都是拿别人的直接用了。
今天在论坛上看到一篇总结USE标记的帖子,就无耻的转过来了,权当是做个笔记吧。

继续阅读 »

04-12
2011

蛋疼的startdict使用方法

Author:西玛哒   IN:IT悟语, Linux, 软件   标签: ,    评论: 0

自从配好了Gentoo之后就一直在写****的论文翻译,由于英文对我来说目前就是个灾难,因此除了Goole Translate之外,一个本地的电子辞典是十分必要的。
Linux下的辞典当然是雷打不动的startdict喽,我使用的是xfce4,所以需要安装startdict +gtk

  emerge -av startdict
  emerge -s startdict-

China Overlay 的Portage中放了不少实用的辞典,省了不少麻烦,按需安装即可。
当然,我还是搞到了500M+的超级辞典库,为了把他们放到我的辞典目录还真费了我一番心思,由于辞典库解压后,每一个辞典都在一个独立的文件夹内,而/usr/share/stardict/dic只有一个文件夹,里面放置了所有辞典,因此需要遍历这些文件夹,将所有文件拷贝过去。这里借用了一个遍历脚本:
继续阅读 »

03-30
2011

试用VimRepress写博客

Author:西玛哒   IN:IT悟语, Linux   标签: , ,    评论: 2

最近在配置我的vim ,目前一切安好,由于之前多次失败,现在已经有丰富的乱码问题解决经验,
乱码已经不是问题了。

   #include 
   int testing;

本文使用 www.isspy.com 那里获得的vimrepress插件书写,仅作测试~

03-23
2011

mini2440 Helloworld驱动

Author:西玛哒   IN:C/C++, IT悟语, Linux, 硬件与嵌入式   标签: , ,    评论: 1

 

  Mini2440 是基于S3C2440(2410工业版) 的Arm9平台,实验平台已经移植了Linux,目前正打算添加RF24L01接口驱动程序。

  首先建立Helloworld驱动程序,作为驱动开发的模版,记录如下:

   一、建立编译环境:

   mini2440开发环境

    编译器 : arm-linux-gcc    3.4.1

    linux内核版本 : 2.6.32.2

    解压并记录内核源码树 位置例:/opt/FriendlyARM/mini2440/linux-2.6.32.2

   二、编写驱动程序文件:

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello modulen");
    return 0;
}
 继续阅读 » 
03-01
2011

apt-get 的彩蛋

Author:西玛哒   IN:IT悟语, Linux   标签:    评论: 0

之前用过一段时间的Ubuntu/Debian 系列,倒是对apt-get稍微熟悉,不过,彩蛋什么的是绝对没有想到过,程序员总是会适当的幽默自己,并把这种幽默传递出去。^_^

       #apt-get moo

   
5245894075 318332baa8 apt get 的彩蛋
有时候还真是不明白为什么都爱拿母牛开玩笑…

12-09
2010

UNIX的救赎

Author:西玛哒   IN:Linux, SigTwit, 笑看人生   标签:    评论: 0

Those who do not understand Unix are condemned to reinvent it, poorly.
                                              ----Henry Spencer
不懂Unix 的人注定最终还要重复发明一个蹩脚的Unix。
                                      ——亨利·斯宾赛   1987 年11 月

是的,没错,UNIX 不是电影演员,也不是不是什么哲学家,不是某子、某克斯人名的缩写,而是一种计算机操作系统。你我可能都不熟悉它,我甚至也说不出它现在具体都用在哪儿,也许说BSD,Linux,Mac的各种猛兽操作系统上仍然是Unix的灵魂附体。然而Unix已经不仅仅是一个操作系统了,并且它的概念也并不能说明什么问题。即便是学过了电脑的我们最多也只是知道除了windows的疆域之外,还有广阔的领土,他们打从C语言诞生前就在那儿,优雅的跨越四分之一个世纪,踏过PC、windows和互联网井喷式扩张的版图,正如所说的那样:

Unix is not so much an operating system as an oral history.

与其说Unix 是个操作系统,不如说是一部口述的历史。

<author>Neal Stephenson</author>

他比我们大部分的人都要年长很多。然而即便如此,我也从来没有想过UNIX可以出现我生活中在除了打开一个console去玩儿vim和gcc之外的任何角落。也从来没有想过UNIX拥有什么哲学。想来,自己没有想什么“哲学”之类的东西已经很久了。

但,正如触发我所思所想的书中提到的那样:

哲学:很有所谓

在从CSDN上看到了对《UNIX编程艺术》|“The.Art.of.UNIX.programming”一书的推荐之后,想起之前看到这本书时,并不觉得它对我Coding有什么帮助,于是就打入冷宫了,惭愧之极。如今找出来仔细的阅读了一遍,发现其中的很多东西实在是太给力了。最直接的感受便是:

凡事都有哲学,写操作系统、编程序和日常生活中,没有什么区别。

哲学很有所谓,现在反而在我们的生活中很少再有哲学的思考。大家过着快餐一样的生活,不去思考原则信仰。然而UNIX却维系着这样一个庞大的疆域,这里的人们有着他们的行为准则,没有什么法律要求他们这么做,然而他们如此自觉的遵守着他们点滴积累下来的一切“哲学”,如此富有哲理,我实在想不出作为程序员如何能独占这样美妙的东西。我觉得这足以让沉淀了几千年的景德镇文化大叫情何以堪了,所以在粗粗略读了这些原则之后,我实在是想分享一些东西:

生活与程序都需要系统,代码生活于UNIX,我们生活与China 、US什么的whatever~ 但是系统与“系统”没有本质的区别,如果我们失去的哲学的方向,也许,UNIX的哲学是一场救赎

这一切与编程和无关。

UNIX 十七戒

在《UNIX编程艺术》中,作者给了UNIX哲学一些通俗的描述:

Unix 哲学(同其它工程领域的民间传统一样)是自下而上的,而不是自上而下的。

Unix 哲学注重实效,立足于丰富的经验。你不会在正规方法学和标准中找到它,它更接

近于隐性的半本能的知识,即Unix 文化所传播的专业经验。它鼓励那种分清轻重缓急的

感觉,以及怀疑一切的态度,并鼓励你以幽默达观的态度对待这些。

UNIX有很多复杂的哲学、也有很多领域内如同马克思黑格尔之类的灵魂人物,每个人有不同的说法,然而他们的思想一致的看起来都有些假。仿佛他们开了个代表大会商量过一样。这些哲学莫不如说是他们手中诞生代码的行为准则,作者将这些原则总结成了UNIX的十七条戒律,这是他们在程序世界中的定义:

1. 模块原则:使用简洁的接口拼合简单的部件。

2. 清晰原则:清晰胜于机巧。

3. 组合原则:设计时考虑拼接组合。

4. 分离原则:策略同机制分离,接口同引擎分离。

5. 简洁原则:设计要简洁,复杂度能低则低。

6. 吝啬原则:除非确无它法,不要编写庞大的程序。

7. 透明性原则:设计要可见,以便审查和调试。

8. 健壮原则:健壮源于透明与简洁。

9. 表示原则:把知识叠入数据以求逻辑质朴而健壮。

10. 通俗原则:接口设计避免标新立异。

11. 缄默原则:如果一个程序没什么好说的,就沉默。

12. 补救原则:出现异常时,马上退出并给出足够错误信息。

13. 经济原则:宁花机器一分,不花程序员一秒。

14. 生成原则:避免手工hack,尽量编写程序去生成程序。

15. 优化原则:雕琢前先要有原型,跑之前先学会走。

16. 多样原则:决不相信所谓“不二法门”的断言。

17. 扩展原则:设计着眼未来,未来总比预想来得快。

这些看起来有些太专业了,然而他们着实可以运用于我们的日常生活:

1、模块原则: 没有万能药

不要指望生命中你能创造一个万能的自我角色,你就如同程序中的一个模块,你要做的是简洁而准确的做好自己的事情,你做的事情将与这个世界上所有的其他人一起,构成这个世界完整的功能。

2、清晰原则: 清晰胜于机巧

用清晰的方法做事,不要饶太多的弯子,否则总有一天自己会被自己的弯子绕晕。

3、组合原则: 沟通十分重要

正如程序中模块之间要通信一样,人要学会与别人沟通,从别人那里正确的了解信息,并且向别人清晰的输出你能提供的信息。不在于沟通的多么优雅,而在于让对方感到舒适,清晰的得到你要表达的东西(正如数据的传输一样)。

4、分离原则:分清不同的角色

正如程序的设计需要分层一样,人的生活也要分层。你有家庭环境,有与朋友、同事一起工作的环境。认清自己的角色,而把所有的事情都混为一谈的做法是危险的,无论对自己、他人还是整个“系统”而言。

5、简洁原则:简洁即美

“错综复杂的美妙事物”听来自相矛盾。Unix 程序员相互比的是谁能够做到“简

洁而漂亮”并以此为荣,这一点虽然只是隐含在这些规则之中,但还是很值得公开

提出来强调一下。

—Doug McIlroy

大道至简,不要仅仅因为虚荣心理就去鼓捣那些最错综复杂的东西。了解你该做什么,用简洁的方式做好它。

6 、吝啬原则: 如果你明知道没有用,那就不要做

不要浪费时间在犯过的错误或者已经证实无用的工作上,鼓起勇气走新路是好事儿,鼓起勇气跳进陷阱只能叫做愚勇。

7、透明性原则: 让事情有条理

生活有时候会有很多bug,就像软件崩溃了一样,一个有条理的设计能让你一眼看出问题出在哪儿,生活也是如此,在你能掌控的范围内保证事情条理清晰绝对没有坏处。

8、健壮原则:   磨练自己,或是给自己留条后路

生活无处不在的压力面前,不一定你的生活系统就是十全十美的,当然,你要保证考虑到了所有可能发生的最坏情况,和如何去处理你考虑不到的应急情况。这确实需要磨练和经验,然而重要的是意识,最起码的一点,在可能的时候要给自己留后路。

9、表示原则:   自己有什么和想要什么

生活和程序无论如何都会有输出,如果你的生活和程序都正常并符合“哲理”,那么没有什么“输出”是没用的,正如Rob Pike, 最伟大的C 语言大师之一, 在《Notes on C Programming》中所说的那样:编程的核心是数据结构,而不是算法。同理,我们生活的核心不是我们怎么做了什么事儿,而是我们所有的东西和所寻求的东西,正如那些数据一样重要。你可以用很笨的方法搞到你要的,然而如果你不知道它们是啥或是不知道它们被你放在了哪儿,那就麻烦了。

10、通俗原则: 创新不等于毫无来由的标新立异和自作聪明

不要把事情都寄托在别人能谁够理解你的基础上,特别是你自认为与众不同的时候。尽量和大家一样做事,所谓低调做人。如果你有真正的创新,它不久就会变成这个庞大系统的新的“通俗原则”,所以不必担心自己碌碌无为。

11、缄默原则:如果没什么好说的,就保持沉默

不经过大脑的胡说八道是没有任何好处的,发表意见要经过认真的思考,确定是否有必要之后在一个正确的时机、在一个正确的地点,说给正确的人。正如一个程序一样,你觉得某些软件的弹窗在你不需要的时候会让你有好感吗?

12、补救原则: 老老实实的承认错误并在第一时间补救

在出了错误的时候,不要狡辩或是为了“面子”做无谓的行为,要赶快集中精力将你的错误造成的损失降到最低。这无论是从自身发展角度还是对于别人和你的工作都是最好的选择。

这 里还有一个原则:“宽容地收,谨慎地发”,要尽量包容别人,而在自己做事情的时候要谨慎,即使出错也要保证明确的知道自己错在哪儿,以便自己更正或是在别人的帮助下更正自己的行为。

13、经济原则:   把能省的时间都省掉

时间和精力的价值绝对大于金钱,所以,在这个庞大的社会系统中,我们把精力集中与我们擅长的事情上,而其他的事情交给其他的人去做。所谓术业有专攻,正如“宁花机器一分,不花程序员一秒”,生活中我们学会要把事情交给社会这台“机器”去做。

14、生成原则:  把事情按照顺序串起来,而不是一个个手工的去做

工作、知识和机遇有时候是有继承关系的,就像一些程序可以去配置和生成另一些程序,我们不必也不应该浪费时间去一点点找和做,如果我们掌握了使用这个顺序的方法,就可以更轻松的生活。

15、 优化原则: 雕琢前先得有原型,跑之前先学会走

不要想着你做的事情一下子就是最好的,事情都要有循序渐进的过程,而且大部分时候你会做的很烂,别灰心,优化和进步都要一点点进行。

16、 多样原则 : 你完全不可能完全独立于其他人,也不可能永远不改变自己

一个僵化、封闭、不愿与外界沟通的软件,简直就是一种病态的傲慢。人也是如此,你和这个世界永远脱不了干系,而且你总要不断的完善自己使自己适应社会,不可能有人一出生就什么都应付得来。

17、扩展原则:   着眼未来,未来总比预想快。

这条本身就是它的原则。

综上十七条,广阔而全面的概括了UNIX的哲学准则,然而,我还是喜欢一些总括的哲学总结:

UNIX的原则

更好的,或者说我更喜欢的表述是Unix 管道的发明人、Unix 传统的奠基人之一的Doug McIlroy 在[McIlroy78]中所说的:

Write programs that do one thing and do it well.

只做一件事,并把它做好

Write programs to work together.

以团队的方式合作

Write programs to handle text streams, becauset hat is a universal interface.

时刻面对挑战,牢记你面对的是整个世界

我的翻译出于我对这些原则的理解,当然,还有一个更好的原则,那就是各种编程大师们奉为圭臬的“KISS”原则:

Unix01 UNIX的救赎

我不知道如何翻译这个原则,我也不想翻译它,因为它的韵味本身就是它原则的组成部分。正如之前乔布斯大神演讲中提到过的“Stay  hungry,Stay  foolish”一样,还是原汁原味一点比较好吧。每个人有不同的理解,但是它的内容是明显的。生活并没有那么复杂,而把它变复杂的正是我们自己。

救赎

这个词用的有些大了,然而我指的是救赎我自己,恐怕也不过分,但愿这些原则能让我活的更加简单,而不会因为某数字和某企鹅的娱乐新闻而动摇自己,也不会为了高墙之内的各种不给力事件而碌碌无为,总有一些事情需要我去做,而我只需要做好自己。我知道我改变不了什么,但愿UNIX能,当然,我也有自己的原则,虽然同样是借来的:

世界由两部分组成,你和除了你之外的一切,改变了自己,就改变了世界的一半。

当我们都能够用自己的原则与UNIX作比较的时候,我们会发现我们的“系统”中,所看到的种种丑态,都是些浮云罢了。

一个Shell,一次救赎,一个clear,还原我世界原本的样子。

11-08
2010

wordpress for android试用

Author:西玛哒   IN:Android, IT悟语, Linux, 软件   标签:    评论: 3

  和我的“欲望”邂逅已经转眼间成为过去时了。不知不觉已经忘掉了s60下那极卡无比的用户体验。android确实很华丽,操作也十分流畅。
  正因为此,这个必争之地也让之前用户千求万求的官方级应用成了标准配置。比如wordpress。我一向认为官方的东西做的不会太精致,看来这也分场合。
  功能基本上全了,起码发文章传图片不是大问题,要改的着实也有,不过,一个好的开始是很让人欣慰的^-^。
  本文通过wordpress for android发送。

09-04
2010

Linux系统管理之植物大战僵尸(二)

Author:西玛哒   IN:IT悟语, Linux   标签:    评论: 0

//本来想明天发的,然而,由于一些原因,还是赶出来吧

//版权问题,恩 我什么都不知道

日子过了一天又一天的过去了,僵尸和植物们在你的计算机系统里面相处的很和睦,你也陆陆续续为很多植物和僵尸建立了他们的用户,直到有一天你对他们说你打算读博士的事情,导致大家的心情很不好:植物们担心你会读僵尸专业的博士,而僵尸们却又担心你读植物学博士,就在你的犹豫中,僵尸们聘请来了Dr.Zomboss,作为他们的特别好友顾问……
本次的考验是以上次题目为基础制作的,因此,如果没有或者删除了上次的东西,还要做些准备工作。
首先,建立两个组,分别为Plants和Zombies,分别存放僵尸与植物。
命令:
groupadd -g (gid) groupname
代码:
#groupadd -g 1003 Plants
#groupadd -g 1004 Zombies
在两个组中增加一些用户
命令:
#useradd -m -g (groupname) (username)
Dr.Zomboss刚刚入住到大脑技术开发区8号路,就给你列出来一些你必须帮他解决的问题:
a) 列出你的计算机系统上现在僵尸组有哪些用户,植物组有哪些用户?(植物用户们所在组叫做Plants,gid=1003;僵尸用户们所在组叫做Zombies,gid=1004。可以先用grep抓取用户文件中的:gid:取得对应组用户的每行内容,然后使用awk截取其中使用:分割出来的第一列,要求将awk的内容保存在文件中,起名叫做abc.awk(外部脚本),请写出你所执行的这条命令,以及你的abc.awk文件中的内容)。
我们知道,用户信息存放在/etc/passde文件中,因此,我们需要首先从/etc/passwd中获取两个组pid对应的用户信息
命令:
#grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd                    //gid要换成组号 如1003
grep 命令可以通过例如:1003:: 匹配所有包含这个信息的行(grep的用法请man)
获取的信息通过管道传送给awk 截取第一列输出
grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -F”:” ‘{print $1}’
Selection 005 Linux系统管理之植物大战僵尸(二)
awk主要作用是分割信息流,-F“:”表示用:符号分割信息,并将第一列($1)输出
若采取awk脚本,原理相同:
#vim getusr.awk
BEGIN{
FS=”:”                      //设置分割符为 :
}
{print $1}               //输出
使用awk脚本进行输出,并将结果保存到文件中备用
#Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -f getusr.awk
#Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -f getusr.awk > ~/tmp/Zombies_Users
Selection 006 Linux系统管理之植物大战僵尸(二)
b) 若上面找出的Zombies组的用户名已经保存~/temp/Zombies_Users的文件中,请你至少提供使用两条不同的命令过滤并打印出包含有“Zombies(不区分Z字母大小写)字符串的用户名,写出这两条不同的命令(可以使用grep、perl或sed等)。
建立两个测试用户: zombietester nozombiys
使用grep:
#grep  -E [Zz]ombies ~/tmp/Zombies_Users             //正则表达式匹配[Zz]就是不区分大小写
使用Sed:
sed  -n -e [Zz]ombies ~/tmp/Zombies_Users                    //同上
Selection 008 Linux系统管理之植物大战僵尸(二)
c) Dr.Zomboss带来了自己的笔记本电脑,他想让你给他共享一下你的互联网,以便他也能够上网。(共享上网实际上就是在你的计算机上构建一套NAT系统,其工作包括打开proc文件系统中的IPv4转发功能,用iptables命令设置内部网络(192.168.0.0/24)能够通过你的以太网口eth0伪装上网,请列出你所执行的命令)。
首先进行本地网络的构建本机用Virtualbox组网,Host(Debian)能够通过eth0访问网络,ip地址为10.0.2.15
同时有网卡eth1,ip地址192.168.0.1,Guest机(Windows)eth1 ip地址为192.168.0.88,与Host机eth1网卡直连。
(TODO:会尽快写出virtualbox中本地虚拟局域网的配置方法)
在Host机上进行相关网络配置:
Selection 010 Linux系统管理之植物大战僵尸(二)
开启IPv4转发:
#echo 1 > /proc/sys/net/ipv4/ip_forward
进行NAT系统构建,通过Host的eth0口转发:
#iptables -t nat -F     //免除之前的干扰,清空原有nat配置
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT –to-source 10.0.2.15      //设置SNAT

Selection 014 Linux系统管理之植物大战僵尸(二)

经过配置,已经可以通过NAT实现Guest机通过eth0口访问网络。
在Dr.Zomboss的带领下,僵尸们纷纷购买了笔记本电脑,他们认为你的四核计算机甚至没有TP-LINK的宽带路由器好用,因为你的计算机没有一个能够为他们自己分配IP地址、网关和DNS的服务,他们要求安装这个服务并完成IP地址、网关和DNS的自动分配(提示,安装DHCP服务,建议使用dhcp3-server软件,并设置向下分配的DNS为210.30.96.2,分配的IP地址段为192.168.1.100至192.168.1.200,分配的默认网关是192.168.1.1。
首先需要在Host机Debian上安装dhcp3-server软件:
#apt-get install dhcp3-server
配置dhcp3-server的配置文件:
设置子网自动获取IP地址与DNS 范围在192.168.0.100 到192.168.0.200之间
#vim /etc/dhcp3/dhcpd.comf
######################dhcpd.comf############################
ddns-update-style none;
option domain-name “sigmav.debian”;                    //名称
option domain-name-servers xxx.xx.xx.xx;    //DNS地址
default-lease-time 3600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {   //网段 地址设置
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;                                     //设置网关
}
###########################################################
重启dhcp3-server服务
#/etc/init.d/dhcp3-server restart
查看启动信息
#tail /var/log/message            //验证安装
通过以上配置Guest机通过设置DHCP自动获取功能,可以实现上网。
3. 写一个脚本:每隔五分钟运行一次,将当前的时间和当前的CPU空闲率(平均值)保存在一个名为“年-月-日的文件(文件位于/var/log文件夹下),例如/var/log/2010-04-13文件中保存这一天如下格式的内容:
2-05-99.01    其中2-05表示记录的时间是2点5分,99.01表示当前的CPU空闲率是99.01%。
建立脚本文件~/Shells/cpulog.sh 内容如下:
关于脚本的写法,建议参看《Linux Shell Scripting with Bash》
注意脚本中,变量获取要用“括起来。
#########################CPULOG.SH##################################
#!/bin/bash
# A sh to log the cpu idle rate to $log file
# Sigmax6@Sigmav.net
# Prepare the files
logdate=`date +%F`;               #  获取变量logdate ,date +%F 是获取YYYY-MM-DD  格式的日期
# log=`/var/log/$logdate`;         最终要获取/var/log/$logdate文件进行输出
#//———————————————————————————————
# Calc the cpu idle rate               计算CPU使用率
#当然 如果安装了sysstat 可以直接 sar -u 1 获取cpu使用率
#idlerate=`sar -u 1 | tail -1 | awk ‘{print $8}’`;       用sar获取cpu使用率 最后一行第八列是平均空闲率
#//———————————————————————————————
# Cpu idle rate=100*idle/(CPUTIME=user+nice+system+idle+iowait+irq+softirq)
# Set two time point to take the idle1 idle2 && CPUTIME1 CPUTIME2
# The avg is 100*(idle2-idle1)/(CPUTIME2-CPUTIME1)
idle1=`head -1 /proc/stat | awk ‘{print $5}’`;
CPUTIME1=`head -1 /proc/stat | awk ‘{print $2+$3+$4+$5+$6+$7+$8}’`;
# Sleep 10 s to reach timepoint 2
sleep 10;                 #等待10s 建立两个时间点用来计算平均值
# End of Sleep
idle2=`head -1 /proc/stat | awk ‘{print $5}’`;
CPUTIME2=`head -1 /proc/stat | awk ‘{print $2+$3+$4+$5+$6+$7+$8}’`;
idle=$[$idle2-$idle1];            #时间段内空闲时间差
CPUTIME=$[$CPUTIME2-$CPUTIME1]; #时间段内CPU总时间差
# Use bd to calc the float numbers
idlerate=$(echo “scale=2;100*$idle/$CPUTIME”|bc);    #这里使用bc命令,将除法交由bc运算,设置

#scale=2保证两位小数。

# Set the log time info as ?H-mm-idlerate
timeinfo=`date +%k-%M-`;                                                      #设置log项的头部信息 xH-mm格式
# Out put log file
if test -f /var/log/$logdate; then
echo “$timeinfo$idlerate” >> /var/log/$logdate;              #如果文件存在,则追加
else
echo “$timeinfo$idlerate” > /var/log/$logdate;                 #如果不存在,则创建写入
fi
############################################################
2、修改/etc/crontab 文件 增加计划任务:
*/5 *  * * *  root  /root/Shells/cpulog.sh
重新启动cron服务 使计划任务生效。
#/etc/init.d/cron restart
Selection 019 Linux系统管理之植物大战僵尸(二)

#################################################################

日子过了一天又一天的过去了,僵尸和植物们在你的计算机系统里面相处的很和睦,你也陆陆续续为很多植物和僵尸建立了他们的用户,直到有一天你对他们说你打算读博士的事情,导致大家的心情很不好:植物们担心你会读僵尸专业的博士,而僵尸们却又担心你读植物学博士,就在你的犹豫中,僵尸们聘请来了Dr.Zomboss,作为他们的特别好友顾问……
进行题目前,为了方便测试,先进行一些准备工作。
首先,建立两个组,分别为Plants和Zombies,分别存放僵尸与植物。
命令:
Groupadd -g (gid) groupname
代码:
Groupadd -g 1003 Plants
Groupadd -g 1004 Zombies
在两个组中增加一些用户
命令:
Useradd -m -g (groupname) (username)
Dr.Zomboss刚刚入住到大脑技术开发区8号路,就给你列出来一些你必须帮他解决的问题: a) 列出你的计算机系统上现在僵尸组有哪些用户,植物组有哪些用户?(植物用户们所在组叫做Plants,gid=1003;僵尸用户们所在组叫做Zombies,gid=1004。可以先用grep抓取用户文件中的:gid:取得对应组用户的每行内容,然后使用awk截取其中使用:分割出来的第一列,要求将awk的内容保存在文件中,起名叫做abc.awk(外部脚本),请写出你所执行的这条命令,以及你的abc.awk文件中的内容)。10’
首先从/etc/passwd中获取两个组pid对应的用户信息
命令:
Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd
获取的信息通过管道传送给awk 截取第一列输出
Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -F”:” ‘{print $1}’
若采取awk脚本,原理相同:
#vim getusr.awk
BEGIN{
FS=”:”
}
{print $1}
#Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -f getusr.awk
#Grep icon sad Linux系统管理之植物大战僵尸(二) gid):: /etc/passwd|awk -f getusr.awk > ~/tmp/Zombies_Users
b) 若上面找出的Zombies组的用户名已经保存~/temp/Zombies_Users的文件中,请你至少提供使用两条不同的命令过滤并打印出包含有“Zombies(不区分Z字母大小写)字符串的用户名,写出这两条不同的命令(可以使用grep、perl或sed等)。6’
建立两个测试用户: zombietester nozombiys
使用grep:
grep  -E [Zz]ombies ~/tmp/Zombies_Users
使用Sed:
sed  -n -e [Zz]ombies ~/tmp/Zombies_Users
c) Dr.Zomboss带来了自己的笔记本电脑,他想让你给他共享一下你的互联网,以便他也能够上网。(共享上网实际上就是在你的计算机上构建一套NAT系统,其工作包括打开proc文件系统中的IPv4转发功能,用iptables命令设置内部网络(192.168.0.0/24)能够通过你的以太网口eth0伪装上网,请列出你所执行的命令)。12’
首先进行本地网络的构建,Host(Debian)能够通过eth0访问网络,ip地址为10.0.2.15
同时有网卡eth1,ip地址192.168.0.1,Guest机(Windows)eth1 ip地址为192.168.0.88,与Host机eth1网卡直连。
在Host机上进行相关网络配置:
开启IPv4转发:
#echo 1 > /proc/sys/net/ipv4/ip_forward
进行NAT系统构建,通过Host的eth0口转发:
#iptables -t nat -F     //免除之前的干扰,清空原有nat配置
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT –to-source 10.0.2.15
经过配置,已经可以通过NAT实现Guest机通过eth0口访问网络。
在Dr.Zomboss的带领下,僵尸们纷纷购买了笔记本电脑,他们认为你的四核计算机甚至没有TP-LINK的宽带路由器好用,因为你的计算机没有一个能够为他们自己分配IP地址、网关和DNS的服务,他们要求安装这个服务并完成IP地址、网关和DNS的自动分配(提示,安装DHCP服务,建议使用dhcp3-server软件,并设置向下分配的DNS为210.30.96.2,分配的IP地址段为192.168.1.100至192.168.1.200,分配的默认网关是192.168.1.1,请在本题目中写出使用apt-get安装该软件的命令,以及你在该软件的配置文件(这个自己上网找找?)中的设置)。10’
安装dhcp3-server软件:
#apt-get install dhcp3-server
配置dhcp3-server的配置文件:
设置子网自动获取IP地址与DNS 范围在192.168.0.100 到192.168.0.200之间
#vim /etc/dhcp3/dhcpd.comf
######################dhcpd.comf############################
ddns-update-style none;
option domain-name “sigmav.debian”;
option domain-name-servers 210.30.96.2,202.118.66.6,202.118.66.8;
default-lease-time 3600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;
}
重启dhcp3-server服务
#/etc/init.d/dhcp3-server restart
查看启动信息
#tail /var/log/message
通过以上配置Guest机通过设置DHCP自动获取功能,可以实现上网。
3. 写一个脚本:每隔五分钟运行一次,将当前的时间和当前的CPU空闲率(平均值)保存在一个名为“年-月-日的文件(文件位于/var/log文件夹下),例如/var/log/2010-04-13文件中保存这一天如下格式的内容:
2-05-99.01    其中2-05表示记录的时间是2点5分,99.01表示当前的CPU空闲率是99.01%。(提示,获取当前CPU空闲率使用sar命令“sar –u 1即可,需要抓取平均值,并用awk截取CPU空闲率一列,脚本的定时运行需要使用计划任务,时间日期的特定写法需要使用date命令,脚本中的打印输出可以使用echo命令,本题目要求列出你对计划任务列表文件的修改,以及修改后生效的方法;列出你的脚本文件的内容;当然鼓励用其他使用脚本完成的方法)。14’    1、建立脚本文件~/Shells/cpulog.sh 内容如下:
#########################CPULOG.SH##################################
#!/bin/bash
# A sh to log the cpu idle rate to $log file
# Sigmax6@Sigmav.net
# Prepare the files
logdate=`date +%F`;               #The name of the log YYYY-MM-DD
# log=`/var/log/$logdate`;         #Path of the log file
# Calc the cpu idle rate
# Cpu idle rate=100*idle/(CPUTIME=user+nice+system+idle+iowait+irq+softirq)
# Set two time point to take the idle1 idle2 && CPUTIME1 CPUTIME2
# The avg is 100*(idle2-idle1)/(CPUTIME2-CPUTIME1)
idle1=`head -1 /proc/stat | awk ‘{print $5}’`;
CPUTIME1=`head -1 /proc/stat | awk ‘{print $2+$3+$4+$5+$6+$7+$8}’`;
# Sleep 10 s to reach timepoint 2
sleep 10;
# End of Sleep
idle2=`head -1 /proc/stat | awk ‘{print $5}’`;
CPUTIME2=`head -1 /proc/stat | awk ‘{print $2+$3+$4+$5+$6+$7+$8}’`;
idle=$[$idle2-$idle1];
CPUTIME=$[$CPUTIME2-$CPUTIME1];
# Use bd to calc the float numbers
idlerate=$(echo “scale=2;100*$idle/$CPUTIME”|bc);
# Set the log time info as ?H-mm-idlerate
timeinfo=`date +%k-%M-`;
# Out put log file
if test -f /var/log/$logdate; then
echo “$timeinfo$idlerate” >> /var/log/$logdate;
else
echo “$timeinfo$idlerate” > /var/log/$logdate;
fi
############################################################
2、修改/etc/crontab 文件 增加计划任务:
*/5 *  * * *  root  /root/Shells/cpulog.sh
重新启动cron服务 使计划任务生效。
#/etc/init.d/cron restart
4、查看log文件 验证计划任务已经正常工作。    4. 你的主机被ISP选为了NGN(下一代互联网)的测试用户,他们给你自动分配了一段IPv6的地址,并提出了一些要求: a) 为你的主机添加一条IPv6的DNS服务器2001:da8:8000:1:202:120:2:100
b) 测试一下你到主机www.dlut.edu.cn的IPv6链路是否畅通
c) 看看你的IPv6链路到主机www.dlut.edu.cn的路由是什么样的
A:echo “nameserver 2001:da8:8000:1:202:120:2:100 “>> /etc/resolv.conf
B:ping6 www.dlut.edu.cn
C:traceroute6 www.dlut.edu.cn
写出完成上述三条任务所要执行的命令以及其完整参数。8’
04-27
2010
loading...