ttii写著 ‘用了linux也有些时候了,终于决定写一点东西,给大家共勉,起到互相交流之目的。
写这篇文章是针对使用linux的管理员,爱好者,对linux安全性很关心的同僚们,希望对大家有所帮助。

用了linux也有些时候了,终于决定写一点东西,给大家共勉,起到互相交流之目的。
写这篇文章是针对使用linux的管理员,爱好者,对linux安全性很关心的同僚们,希望对大家有所帮助,
废话就不多说了,进入正题吧 ..
再说安全设置之前,我想先说说关于发行版和安装的问题,对于发行版,我相信大都知道,linux发行版实在是太多了我也不止一次在很多网站的文章,很多书籍上看到过议论那种发行版是最好的,其实我个人认为,在linux世界中,没有最好的这种说法,只要自己习惯,熟悉的一种版本,那么我就可以说他是最好的,写这篇文章,我也试着找了很多资料,试图找到一个大家都觉得常用的,熟悉的,最后,我觉得redhat linux真的很不错,虽然它的内核比较庞大,而且效率不使所有发行版中最高的,但是它的普遍性,易用性和软件升级支持,应用软件支持方面是值得提出的,这些发面也正是一个好的linux发行版需要具有的 这篇文章建立在redhat linux 7.3版之上,所有的软件设置均在这个版本上测试通过。
说到这里,可能大家要问,为什么我要用redhat 7.3现在不是有很多吗,就redhat来说就有redhat 8.0, redhat 9.0还有什么redhat 高级企业版,等等。这么多新的东西为什么不用呢?这个问题问得很好,这正是我要说的安装和选择发行版是要注意的一点。

1、版本的选择

我使用redhat也有很长时间了,个人认为,redhat的.0版本都属于大版本升级的第一个版本,这个版本往往很多软件包不是很稳定,而且容易出现故障,对于管理员来说linux绝大部分是用来作为服务器使用的,那么要最为服务器,最最大的首要问题就是稳定,其次最重要的也是安全,所以如果你是管理员,而非狂热的爱好者,发烧友,我建议你选择redhat 7.3,redhat 的版本号,后面跟了小版本号的就是软件包有很多更新和修改的,虽然这个更新可能不是最新,但是至少它是这个稳定版本中最新最稳定的,不知大家理解这个问题没有,后面我将详细介绍一下版本的升级问题,那里我将会说明这个理论。

2、安装方式

选择好了安装发行版,那么我们就开始安装了,其实安装的时候只有几个需要注意的地方,其一就是分区,其二就是安装的软件包
分区的讲究就是你需要针对你的应用来规划分区,过去看过很多论述linux是否有一个最佳的分区方案,虽然很多人也提出了很多优秀的分区方案,但是我觉得还是需要更具自己的应用作的分区才是最佳的分区,下面各个分区方案,但是纯属建议,还是要更具自己的需要来作。
个人认为,标准的服务器,至少扩常用的分区,因此建议将硬盘划分为以下的样子,/boot swap / /var /usr /home /tmp
大小更具自己的应用来,/不能小于1G,/usr 和 /var都要大一点,因为大部分软件在里面,其他几个更具需要来,说到swap我想关于这个区的大小争议也比较大,我在综合了很多朋友的意见后,总结出一条规则,如果你的内存小于1G那么分为内存的2倍,如果大于1G那么就分最大2G的swap,这样做是为什么呢?因为swap大家都知道,是虚拟内存的空间,小了又不能发挥最好的作用,大了又浪费空间,这个大小是具体的理由就是,内存大的话,那么应用程序占用的虚拟空间就小,但是为了完全满足服务器的内存需要,据很多朋友的经验,还有我切身的体验,这种分法可以说是一个最佳的方案了,特别对于数据库等大型应用程序的内存需要来讲,而且很多服务器的内存都是1G-2G左右。
安装软件包,讲究的是安装得越少越精越好,但是redhat开始安装的时候,作为一个服务器,下面的几个软件包组需要选择
Networ support(网络支持)
Messaging and web tools(可选择安装,一些联网的工具如ncftp等)
Router/Firewall(防火墙软件,需要安装,但是他有一点不好把ipchian,iptables,ipwf等都安装了,后面将解释如何删除)
Network managed workstation(管理用工具)
Utilities(常用工具,备份工具等)
虽然我们现在安装是简单的选择了这几个软件包组,我们在后面的安全设置时将会删除一些不用的包,这将在后面说。

3、更新软件

虽然redhat 7.3是更新过的版本,但是其中还有很多软件包有漏洞,其中最大的漏洞就是2.4.18的一个漏洞,它会导致ext3文件系统崩溃,我就遇到过很几次(据ext3开发小组称,这种现象是在特定的操作和条件下才会产生的,一般用户很少出现这种现象),虽然很多现在已近解决这个问题,但是7.3没有更新内核的话还是不稳定的,更新有两种方式,一种时下在更新的软件包手动的用rpm –Uvh 来更新,另外一种也是我推荐的方式,使用up2date来更新,这可是一个好东西,它能很方便的更新你的系统,而且是更具你安装的软件包来更新的,他不会把bind8更新为bind9,不会把redhat 7.3更新到redhat 9.0,这样就确保了你目前使用的版本的稳定性和完整性,它只是针对这个版本的软件包进行了修正,版本号一般就是这样变得,比如iptables ,7.3的rpm 版本是1.2.5那么更新后就是1.2.8修正了很多漏洞错误,但是并没有作大的调整,确保了你的使用和与应用程序的兼容性。
Up2date的使用,在自动升级之前,建议几个操作,
第一个,由于redhat 7.3版自带的up2date有SSL的bug,因此,需要取下在一个最新的up2date来更新,下载地址
https://rhn.redhat.com/errata/RHSA-2003-267.html
第二个,一般来说,我们都不希望up2date自动更新内核,然后内核的更新直接解决很多重大漏洞,特别是新安装的redhat 7.3就有ext3崩溃的漏洞因此,我建议大家自己先手工升级内核,当然使用rpm 包来升级,这样节约很多时间,开始我就说过,虽然redhat不是效率最高的,但是确实做得最普遍的一个系统,rpm的方便就完全体现了这点优势,redhat 7.3内核的下载地址
http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i386.rpm
http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i586.rpm
http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i686.rpm
对于你自己的系统,你可以用uname –a看看目前的是i386还是i686然后根据这个来选择下载的内核升级包
建议最好使用rpm –ivh 来升级,这样可以保留原来的内核,确保没有问题再将原来内核rpm –e掉,这个rpm包非常简单甚至你不用修改你的lilo.conf或者grub.conf的配置文件,它自动给你加入了,你需要做的就是重起然后选择新的
内核启动就行了
做完了内核的升级,用新内核重起后就是up2date的时候了
运行rhn_register随便注册一个号码(这个要保密哦,我自己研究的,rhn网络的升级实际上是收费的服务,但是一个邮箱一个账号是免费的,但是一个账号只有一个升级系统的权限,你可以通过rhn的网络来登录修改这个权限给其他的机器,不过这样太麻烦了,而且redhat7.3的升级基本上稳定了,只需要在安装第一次升级一下就行了,所以我们就随便注册帐号来升级下:P)根据提示,它默认选择了你机器上所有的包,为你升级,没关系,一路next最后finish然后回到控制台,接下来就是激动人心的升级了,运行命令
up2date –u
就开始升级了,这个过程看你的网络了,大约有1小时左右
它会自动为你下载安装,虽然不用重起,但是建议你还是重起一下,确保新内核和新的软件包能够正确使用
到此为止,系统更新就做完了,下面就是比较重要的安全设置了

4、安全设置

其实linux的安全已经比较好了,我们做得初浅的安全讨论,无非就是关闭服务,设置一定的防火墙,如果大家对防黑客和高级的安全设置感兴趣的话,那么请关注我下几篇文章,我将向大家介绍有关简单的IDS等等防黑技术,谢谢
关闭不用的服务,这个问题,很多文章都提出过,我个人认为最有效的关闭方法如下,大家都知道,linux中控制服务的有chkconfig ,ntsysv等等,其实这些工具控制的服务都是linux已sysV的风格保存的服务启动项目,其实都是/etc/rc.d/下面的东西,已rc3.d为例,3表示init3时要做的项目,里面的文件都是一些连接,S开头表示启动,K开头表示终止,所以rc0.d里面基本都是K开头的,所以大家不用害怕觉得linux的服务多么神秘,这里介绍两个简单可行的控制服务的办法
运行ntsysv控制服务
使用ntsysv关闭服务只开
crond 可定义计划任务
network 网络
random 生成随机数,用于ssh的会话对称密钥的生成
sshd ssh服务器端
syslog 系统日志服务
xinetd 超级进程(下面没有服务要用的话,可以关闭)
其实xinetd是类似于init这个超级进程的一个进程,不过可以完全关闭它,因为下面都是些没有用服务监听程序,对于一般的服务器,基本上只需要上面ntsysv所列的服务就行了,其他的都关闭,当然如果你要web当然要开httpd了J
服务关闭完了以后,就是去掉一些不用的用户,用vipw
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#news:x:9:13:news:/var/spool/news:
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
#vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
#rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
#rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
#nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
#nscd:x:28:28:NSCD Daemon:/:/bin/false
#radvd:x:75:75:radvd user:/:/bin/false
去掉这些用户
上出多余的rpm包
rpm -e softname
rpm -e autofs-3.1.7-28
rpm -e gd-devel-1.8.4-4
rpm -e up2date-2.7.86-7.x.3
rpm -e pump
rpm -e apmd
rpm -e lsapnptools
rpm -e redhat-logos
rpm -e mt-st
rpm -e kernel-pcmcia-cs
rpm -e setserial
rpm -e redhat-release
rpm -e eject
rpm -e kudzu
rpm -e gd
rpm -e raidtools
rpm -e mailcap
rpm -e setconsols
rpm -e gnupg

修改/etc/fstab
只给分区必须的权限
像这样LABEL=/bakups /bakups ext3 nosuid,noexec 1 2

noexec表示不能在这个分区运行程序,nosuid不能使用nosuid的程序,根据情况自行设置其他分区,一般来说/tmp,/usr都要nosuid

到此我们做了一些基本的安全设置,当然你也可以考虑,比如启用wheel组,只能让wheel组的用户能够变为su但是一般来说管理员都不用考虑这些,因为只有你一人能够登录这台机器,:),这些细节的设置我也会在下篇文章详细说明,应为毕竟这不是我这篇文章主要的东西。他们会同IDS等内容在下一篇文章详细呈现给大家。

5、防火墙设置

上面的基本安全设置做完了,那么接下来一个比较主要的安全就是防火墙,这是很重要的,如果你的设置没有作得很好,也许软件还有一些漏洞,但是防火墙设置得好的话,基本上可以帮你弥补这些问题,给大家一个基本的单个服务器的防火墙脚本,里面不包括端口转发,伪装等网关功能的内容,如果大家对这方面有兴趣,欢迎给我来信探讨
#!/bin/bash

#启用转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward

#显示开始信息
echo “Start FireWall for this server…”

#清空目前的规则
iptables -F

#编辑默认策略为不能通过,数据接入链
iptables -P INPUT Drop

#转发链默认drop
iptables -P FORWARD Drop

#数据输出链默认drop
iptables -P OUTPUT Drop

#输出链允许源地址是xxx.xxx.xxx.xxx的数据输出,也可以指定网卡例: –i eth0
iptables -A OUTPUT -s xxx.xxx.xxx.xxx -j ACCEPT

#接入链允许端口为15818的源地址为xxx.xxx.xxx.xxx的数据通过
iptables -A INPUT -p tcp -d xxx.xxx.xxx.xxx –dport 15818 -j ACCEPT

#如果需要添加端口就在下面修改,xxx处添加端口号
#iptables -A INPUT -p tcp -d xxx.xxx.xxx.xxx –dport xxx -j ACCEPT

#允许所有udp包通过
iptables -A INPUT -d xxx.xxx.xxx.xxx -p udp -j ACCEPT

#限制ping包每一秒钟一个,10个后开始
iptables -A INPUT -p icmp -d xxx.xxx.xxx.xxx -m limit –limit 1/s –limit-burst 10 -j ACCEPT

#限制IP碎片,每秒钟只允许100个碎片,防止DoS攻击
iptables -A INPUT -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT

恭喜你,到目前为止,你有一个相对安全的系统了,但是记住,最重要还是你要把root的密码记住哦,呵呵,希望写了这么多,对大家有所帮助,这是我最大的愿望,希望大家觉得我写得还行的话任意拷贝,广泛传播,但是不要修改哦,如果觉得有什么问题希望和我探讨的话,我也虚心接受大家的意见和建议,请给我email:ttii@linuxaid.com.cn,希望和大家成为朋友,共同学习linux探讨问题,为中国的软件事业贡献我的微薄之力,谢谢

 ttii写著 ‘其实说起IDS我想管理员朋友们一定不陌生,不过我还是想简单的说一下IDS的定义,这样更有利于大家理解后面的应用,这篇文章还是基于redhat7.3的,为什么呢?希望大家看过我的第一篇文章《浅谈linux安全》,在建立了那种系统的基础上,我们来实现IDS吧。

其实说起IDS我想管理员朋友们一定不陌生,不过我还是想简单的说一下IDS的定义,这样更有利于大家理解后面的应用,这篇文章还是基于redhat7.3的,为什么呢?希望大家看过我的第一篇文章《浅谈linux安全》,在建立了那种系统的基础上,我们来实现IDS吧。
IDS就是入侵监测系统的简称,其主要的作用,我个人理解就是能够收集入侵的蛛丝马迹,然后报告你,当然也不确保它的准确性,这要看软件的分析能力了,现在有很多收费和免费的IDS应用程序,其中比较强的是snort,可能大家都知道的(是地球人都知道:))就是Tripwire,它也是一种入侵监测系统,不过它是监视你的文件是否被修改
今天我给大家介绍一种,没有太繁华的功能,简单实用,能够有效地阻止很多攻击,能够对非法的端口扫描做出反应,经过配置,极端一点的作法甚至能够将扫描你的人的端口反扫描回来,而且阻断它对你主机的所有连接(服务器可不能这么做哦,要不一天阻断几百人,过短时间老板就来说了:最近业绩不好呢?呵呵,服务器真是可怜)

1、理论介绍篇

言归正传,这个软件就是portsentry感知攻击的IDS应用
下载地址
ftp://194.199.20.114/linux/redhat/6.2/en/powertools/i386/i386/portsentry-0.99.1-1.i386.rpm
下载后就是安装了不用我多说
rpm –ivh portsentry-0.99.1-1.i386.rpm

先说说portsentry有什么厉害的功夫吧,他能做下面的事情
1、 丢弃所有使用route命令返回到主机的数据包
2、 自动更新/etc/hosts.deny来阻断基于xinetd的连接,简单的阻断一台主机
3、 自动使用防火墙ipchian,ipfwadm等来阻断连接,相当于添加一条厉害的规则,这个比较实用而且安全的
4、 日志的额外连接,他能将观察到的扫描记录到日志,这个功能很有用,你可以什么都不做,但是不能不没有日志的生成,这样让你有空就看看谁再搞你的宝贝服务器吧
5、 自定义的操作,可能对扫描你主机的机器做一些操作,比如反扫描,呵呵然后记录信息,比较酷吧
说了这么多好处,下面我们来在机器上实现一下吧,安装完毕后,你能够在
/usr/psionic/portsentry
下看到一些文件
ignore.csh 用于忽略的主机脚本
portsentry 执行程序
portsentry.conf 主要配置文件
portsentry.ignore 忽略的主机
portsentry.history 运行和阻断主机才会产生,记录详细的阻断信息
现在开始配置,实现我们的功能吧
vi portsentry.conf
这个文件看上去有几个章节,现在我分别介绍一下它们的配置
其实大家一看他的配置文件基本上都有个数了,配置文件写得很好,我在这里就不一一翻译了,呵呵比我E文好得多了,说几个重要配置吧
Port Configurations
定制那些端口希望被监控,如果你有特殊的端口,加入,就能被监控,注意用逗号分割。

Advanced Stealth Scan Detection Options
监控的范围,
ADVANCED_PORTS_TCP=”1024″
ADVANCED_PORTS_UDP=”1024″
表示监控的范围在1024之下的端口,如果你希望监控如65423这样的端口,那么将这是数字设置大些

Configuration Files
就是配置文件位置,一般不用修改

Ignore Options
忽略的端口设置

Dropping Routes
丢弃路由方案
一般用这个可以
KILL_ROUTE=”/sbin/route add -host $TARGET$ reject”
其他的可以根据操作系统来定,或者根据实际来定
也可以写入一段iptalbes 的代码,后面有

TCP Wrappers
这就是我说得简单的加入hosts.deny来阻断发起扫描的主机
KILL_HOSTS_DENY=”ALL: $TARGET$ : DENY”
把原来那句关闭,上面这句打开,我们用的都是redhat哦

External Command
扩展命令,可以执行很多自定义操作,比如nmap扫描你的主机,反扫描他,后面事例中给他家说说

Port Banner Section
理论上是可以给监听你服务的人一个警告,修改PORT_BANNER=这行,写点吓人的话,不过我也不知道其作用不,呵呵

设置完毕后,用portsentry –stcp来启动,这样能够防止SYN等隐蔽的扫描,你可以找个机器用nmap等扫描器扫描一下,看看日志是不是记录了?你的主机是不是被添加到/etc/hosts.deny了。

有几点需要注意的,据说实施了portsentry后一些扫描软件可能会挂起,汗~~~不过我觉得不像,但是确实能防止一点点,
第二,据说portsentry把你的网卡开为混杂模式,但是据我观察网卡并没有变为混杂模式,不过还是提醒大家,因为混杂模式可能会降低系统的反应,就要看你自己权衡了。
个人认为,服务器上实施portsentry软件,不用作出什么反应,只需要记录就行了,定期的查看一下,我觉得能做的就是去掉路由啊,或者nmap扫描入侵的主机,可以这样做,让他自动反扫描扫描你的主机

External command部分
加入
KILL_RUN_CMD=”/usr/bin/nmap –O $TARGET$”>> /var/log/scanIP.log
然后可以在/var/log/scanIP.log中查看这些主机的信息。你扫描他哦,呵呵
最后记得运行哦,忘记给大家说几种运行参数了
-tcp 基本简单的监听tcp
-udp 基本简单监听udp
-stcp 建议使用这个参数,可以监听带欺骗的tcp扫描,比如SYN,FIN等扫描,很强
-atcp 禁止所有portsentry.conf中指定的连接,必须手工配置合法的主机,不建议使用
-sudp 同stcp差不多,不过是udp
-adup 和atcp差不多,不过是udp

注意,如果你需要转贴到你的网站或者论坛,可以随意转贴,也请你发邮件告诉我一声转到什么地方了,谢谢,我的联系方式qq:8537798,email:ttii@sohu.com’

 据丹麦安全公司Secunia最近首次发布的一份统计显示,微软Windows应用程序要比人们想象中更加安全,而Mac OS X的安全性却比预计的要差。

据丹麦安全公司Secunia最近首次发布的一份统计显示,微软Windows应用程序要比人们想象中更加安全,而Mac OS X的安全性却比预计的要差。

  Secunia是在分析了其2003至2004年期间对超过3500款产品的安全调查后得出上述结论的,它向人们展示了真正安全的企业应用程序和操作系统。

  Secunia将调查的每一款产品分散于图表之中,并列出各自安全漏洞的数量、类型和严重程度。Secunia表示,相关数据显示出人们向来认为OS X是相对安全的操作系统这一看法是没有根据的。

  近两年来,Secunia针对软件的安全问题发表了36份安全建议。Secunia的首席执行官Niels Henrik Rasmussen表示:“Secunia现在展示的安全统计将使大家大开眼界,而且有一些可能是令人困惑的消息。比如,Mac OS X安全的神话已比打破!”

  Niels Henrik Rasmussen认为,微软软件由于其普及程度极高,因此通常情况下只要Windows出现安全漏洞微软就要承受来自多方面的重大压力。统计表明,Mac OS X并不比其他操作系统具有独特的安全性。在危急漏洞数量的比例方面, 33%的OS X漏洞属于“高度”或“极端”危急等级,而XP Professional只有30%。

SP,Service Provider的缩写,可以直译成服务提供商

CP,Content Provider的缩写,即内容提供商

3G,3rd Generation的缩写,指第三代移动通信技术

NGN:Next/New Generation Network的缩写,下一代网络或新一代网络

SMS,Short Messaging Service的缩写,也就是短信

MMS,Multimedia Messaging Service的缩写,中文意为多媒体短信服务

IVR, Interactive Voice Response的缩写,表示互交式语音自动应答系统

WAP,WirelessApplicationProtocol的缩写,意为无线应用协议

WML,Wireless Makeup language的缩写,无线注标语言

BREW,Binary Runtime Environment for Wireless 的缩写,是QUALCOMM公司为无线数据应用程序开发和执行提供的通用内容

J2ME,Java 2 Platform micro Edition的缩写,JAVA2的微型版本 只支持JAVA标准规范中所定义的核心类函数库的子集

GPS,GlobalPositioningSystem的缩写,即全球卫星定位系统

GSM,Global system for Mobile communications的缩写,全球移动通讯系统

UMTS,Universal Mobile Telecommunication System的缩写,通用移动通信系统

GPRS,General Packet Radio Service的缩写,通用分组无线业务

EDGE,Enhanced Data Rate for GSM Evolution的缩写,即增强型数据速率GSM演进技术

CDMA,Code Division Multiple Access的缩写,表示码分多址、扩频多址


  
第一场较量:曹老大VS3323号话务员(曹老大操一口东北口音)
  
您好,您有什么事情需要帮助?女话务员一口温柔标准普通话。

喂!喂!

您好!

喂,话务员吗?是我的电话吗?

是,您有什么业务需要咨询?先生

我说打你这个电话要钱不?

您像我们咨询业务是免费的,不收您任何费用!

哦,不要钱啊!那就好啊!我是一东北人,在外跑买卖,知道不!

先生请问您有什么业务需要咨询吗?

有啊,当然有!我想上网啊!你看我能上网不!

那就要看您的手机支持不支持上网功能了!

支持肯定支持,就是吧我这个手机贵呀,40和弦地,能唱歌还是彩屏地

那它支持哪种上网功能呢是WAP还是GPRS呢?

G(计)P(屁)R(捺)S(乃丝)是啥玩意儿?

(那边一片寂静,想是话务员正无奈的郁闷,这边兄弟们正捂这肚子被笑憋的脸通红)

喂!服务员!喂!

先生那是一种上网功能,没有它你就不能上网,不是G(计)P(屁)R(捺)S(乃丝)
是GPRS!

GPR(捺) S(乃丝)吗?

RS

GPR(捺) S(乃丝)

R

R(捺)小姐别纠正咧,从上学我就念捺。你看我这个支持啥功能啊?

先生我是不知道的,因为我不知道您是什么手机,您可以到营业大厅办理一下,到那我
们的工作人员会给你开通的,带好您本人的身份证

啥!还得到那去呀,我到那能碰见你不?

先生我们这里只是服务台,不可以的!

那我到那还得花6块钱车费哩,麻烦你先告诉我上网能干啥?

您开通上网功能之后可以下载铃声图片,还可以玩游戏!

啥?!还能玩游戏!

对!

那能玩CS(乃丝)不?

(对方又是一阵寂静,估计话务员正在狂笑,可是没有听到声音,失败……)

不能!请问您还有其他业务需要咨询吗?

有!

请讲!

我就是想问问咋上网!
(对方挂机,没听到话务员笑声,较量以失败告终)
  

第二场较量:董老三VS1127号话务员(懂老三操一儿童口音)
  

您好,您有什么业务需要帮助!

您好,姐姐!

你好,你有什么事情需要帮助!

姐姐,我我想发发短信!

发短信怎么了?

我不会发!

你可以让你爸爸妈妈教给你发啊!

不嘛,我要让姐姐帮我发!我是给我隔壁班的那个那个女生发的,不能让我爸妈知道,
姐姐也不能告诉他们啊!

(对方不语,想是在笑)

姐姐你不理我了?

小朋友我们不能帮你,因为我们只是咨询业务!

那你不能教教我啊!

你会拼音吗?

会昨天我们大班的刚学的a o e……我会读了,姐姐你看我都会读。
(对方又一阵寂静,然后挂机,第二场继续以失败告终)

  
第三场较量 魏老八VS1021号话务员 (魏老大刚开是接了一个是个男话务员,气晕,直
接挂机,后拨通了1021,终于是个女的说话了。老八一口河北纯正地方方言,没说过普
通话)

  
您好,您有什么事情需要帮助?

喂,你好啊?听地懂俺说话不?

先生可以的!

刚才那个说听不懂俺缩(说)话哩!

现在还可以,您有什么业务需要咨询啊!

俺这四(是)标准话不?

先生(话务员有点笑的意思,气有点喘),您的话我可以听清,请说您想咨询的业务好
吗?

你们缩(说)地四(是)标准话吗?俺听周(这个)别扭!俺就四想问一下啊,这个短
信包是走摸(怎么)回四(事)啊!

短信包是你办理之后短信包月的一项业务!

不四给个包啊?

不是!(话务员笑着喷出了气说)不是!

哦,不四给个挎着地包啊?

不是!

他们缩(说)短信包短信包发发短信给个包哩!

不是!

俺寻思它给个包哩,俺这快要放假咧,俺包不够我寻思给个包哩!

没有的!

它走摸(怎么)个包月法!

这个呢您需要办理一下,您要是没有办理呢,也没有关系的,它不是给书包!

哦,不四啊!

请问您还有其他业务需要咨询吗?

有,俺这四动感地盘地卡,俺地底盘听俺地,俺能上网不!

那要看您的手机支持不!有没有GPRS功能?

俺不知道啊!

那您看一下您的手机说明书!

俺这个没,没有缩(说)名苏(书)啊!俺这四(是)四手地手机拉,买地旧地。

那您可以到我们营业大厅办理一下,带上你的机主身份证!

哦,还得去那啊,娘哎!离俺这老远哩,俺没法去哩,俺这四(是)个村儿!要四上了
网要钱不?

您开通这项业务是不要钱的,您要是下载里面的东西安数流量收取,1KB3分钱!

KB四嘛玩意啊?

这是名词,代表您下载东西的多少!

哦,俺还四不知道!那俺还四不开通咧!

没关系的!请问您还有什么业务需要咨询吗?

有,这个手机卡四嘛玩意啊?四先有地手机啊还四先有地卡啊?
(对方一阵巧击键盘的声音,并发出无奈的笑声)

这个问题不在我们服务范围之内!

哦,不在范围子(之)内啊!那他们跟俺说俺这手机有蓝牙四(四)走摸(怎么)回四
(事)呢?

蓝牙是你手机本身自带的一种功能,它可以传输信息!

哦,明白点咧,有绿牙不!

呵呵,没有,先生您要是没有其他业务请您挂机,我们只允许10分钟通话时间,现在是
9分18秒,您要是不明白的话请您一会继续拨打!

哦,那麻烦你了小姐啊,再见吧!你地笑好甜啊!(挂机)
(费尽周折,终于逗笑了一个……)

出于维护和发展移动业务的考虑,国内某电信公司需要对现有系统做大规模的改善。他们要求只能以现有系统为基础进行处理能力的扩充。由于该公司的全部业务都采用集中处理方式,因此,关键业务系统的数据必须做到实时异

地备份,并且应有主机系统和网络系统的热备份。根据实际情况,可考虑在同城建立灾难备份中心,或在异地建立灾难备份中心。

 

 

备份中心内按业务需求配备了生产业务主机,以及其他关键业务主机,其配置略低于目前的生产主机。安装所有的应用软件,配路由器一台(能力同生产系统相当)、Hub若干台、备份线路若干条(接入的电信分局应不同于生产系统)。数据的实时异地备份是最关键的一部分,由于在第一阶段实施中,该公司已购置了一台Symmetrix 8730,因此,备份中心再配置一台Symmetrix 8000系列产品,采用EMC的远程镜像软件SRDF和数据备份软件EDM,通过一条或多条通信线路,实现数据的远程实时备份。

 

高性能的集成化备份

 

对于事务密集型的在线企业来讲,想有效地进行数据备份,就必须在高速和在线之间进行取舍,如果备份工作进行得很快,在线运行就不得不停止;如果数据库的规模有数百GB或更大,备份工作造成的停顿不仅耗费很长时间,还会大大提高成本。因此,要在满足企业备份数据库需要和确保关键应用之间取得平衡一直是一个难题。EMC EDM高性能的集中化备份与恢复正是为解决这一问题而提出的。

 

EDM集成备份方式

 

EDM提供三种不同的企业信息备份方式:EDM Symmetrix Connect、EDM Symmetrix Path 和 EDM Enterprise Network,分别用来满足特定的备份环境和需要。

 

EDM Symmetrix Connect是一个高性能数据库备份方案。其工作方式是,在磁盘和磁带之间进行数据传送,完全摈弃CPU/应用服务器和网络,利用Symmetrix 的I/O 功能,提供每小时数百GB的备份速率。Symmetrix Connect 利用复制的生产数据体(本地或远程),运行不间断的时间点备份,提供高可用性,实现与 EMC TimeFinder 和SRDF(Symmetrix Remote Data Facility)的全面集成。

 

EDM Symmetrix Path是快速的Windows NT备份解决方案。通过 Symmetrix Path从EDM备份客户机和Symmetrix系统直接连接到EDM系统,使网络不用传送备份数据。EDM Symmetrix Path 支持储存在Symmetrix系统或本地磁盘中的数据备份,并利用Symmetrix和服务器,通过Ultra SCSI与光纤通道连接,超高速传送备份数据(容灾系统结构如图所示)。

 

 

 

 

在使用Symmetrix Connect和Symmetrix Path进行备份时,一个 EDM系统可以同时备份当前局域网和广域网中的企业数据,为所有主要数据库、应用和平台提供支持。其并行流软件结构支持在一台客机上执行多个同时备份(EDM可以同时支持多达50个备份数据流)。

 

EDM在线数据备份方式

 

除直接连接EDM与Symmetrix之外,EDM还支持在线备份和恢复数据库(包括关系型数据库Oracle、Informix和Sybase)。EDM还在联机网络备份中支持在Oracle和Lotus Notes等协同软件上运行SAP R/3应用。

 

EDM的在线数据库备份能力,通过Oracle、Informix、Sybase和SAP提供的标准备份工具实现,因此,备份工作严格按照数据库和数据库管理员的要求进行。通过允许利用EDM的调度和报告,及磁带库管理和故障拷贝管理等企业级功能,EMC提高了上述数据库的标准备份能力。

 

EDM可以灵活地连接联网企业中的多台服务器。EDM网络备份功能支持多厂商的客户机,包括Sun、IBM、HP、NCR、Digital、Sequent、Pyramid、Silicon Graphics、Novell和 Microsoft,以及EMC Celerra 文件服务器系列等。

 

远程数据迁移怎么做?

 

SRDF是Symmetrix 的远程镜像软件,该软件建立在两个独立的Symmetrix系统之间,实现完全的、实时的数据镜像,而两系统间的距离可以近在咫尺,也可以相距千里。SRDF为企业提供两套实时生产数据,企业在数据中心现场发生灾难时,可确保另有一套完整的生产数据安全可用,达到容灾级别的数据高可用性。

 

SRDF的实现包括:远程链路卡(RLA)、两套或多套Symmetrix系统、SRDF软件许可证以及Symmetrix之间的光纤或电信线路。Symmetrix之间的连接在3公里以内采用多模光纤直接连接,3公里到66公里之间,采用适当的转发扩展装置混合连接多模、单模光纤,超过60公里,则可采用电信线路T1/ E1或T3/E3。

 

SRDF远程镜像软件可以用来建立数据库镜像,在远程SRDF站点上的镜像可视为一个BCV,并用来备份数据库。而集成TimeFinder和SRDF,可以为数据库提供完全不中断的备份和故障恢复能力。在备份完成时,可以恢复SRDF或TimeFinder BCV链路,自动实现数据体重新同步化。

评价:重点在数据库备份

亮点:EMC公司提供了一个基于EMC Symmetrix的容灾解决方案EDM。EDM是一个快速、可靠的数据库备份和恢复方案,EDM将软件、硬件和服务结合在一起,提供高性能的集中备份方式,该系统可以满足最大型企业数据库的备份和恢复需要。EDM的独特之处在于,在磁盘和磁带之间的数据传送,完全摈弃了CPU/应用服务器和网络,利用Symmetrix 的I/O 功能,提供每小时数百GB的备份速率,其好处在于不占用网络和主机资源,同时提高了备份和恢复的速度。

EDM Symmetrix Path备份方式是现有最快速的NT备份解决方案,可将EDM备份客户机和EMC Symmetrix系统直接连接到EDM系统,使网络不再需要传送备份数据,极大地提高了系统的灵活性。另外EDM所拥有的并行流软件结构,支持在一台客户机上执行多个同时备份,可以同时支持多达50个备份数据流。

不足:在数据库备份时仍需依靠Oracle、Informix、Sybase和SAP等提供的标准备份工具才能实现。

问:怎么才能关掉一个用任务管理器关不了的进程?我前段时间发现我的机子里多了一个进程,只要开机就在,我用任务管理器却怎么关也关不了

  答1:杀进程很容易,随便找个工具都行。比如IceSword。关键是找到这个进程的启动方式,不然下次重启它又出来了。顺便教大家一招狠的。其实用Windows自带的工具就能杀大部分进程:

  c:\>ntsd -c q -p PID

  只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了。NtsdNtsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅 NTSD 中所附的帮助文件。用法:开个cmd.exe窗口,输入:

  ntsd -c q -p PID

  把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上”PID(进程标识符)”,然后就能看见了。

  答2:xp下还有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名!!

附:NTSD 中所附的帮助文件

usage: ntsd [-?] [-2] [-d] [-g] [-G] [-myob] [-lines] [-n] [-o] [-s] [-v] [-w] [-r BreakErrorLevel] [-t PrintErrorLevel] [-hd] [-pd] [-pe] [-pt #] [-pv] [-x | -x{e|d|n|i} ] [– | -p pid | -pn name | command-line | -z CrashDmpFile] [-zp CrashPageFile] [-premote transport] [-robp] [-aDllName] [-c “command”] [-i ImagePath] [-y SymbolsPath] [-clines #] [-srcpath SourcePath] [-QR \\machine] [-wake ] [-remote transport:server=name,portid] [-server transport:portid] [-ses] [-sfce] [-sicv] [-snul] [-noio] [-failinc] [-noshell] where: -? displays this help text command-line is the command to run under the debugger — is the same as -G -g -o -p -1 -d -pd -aDllName sets the default extension DLL -c executes the following debugger command -clines number of lines of output history retrieved by a remote client -failinc causes incomplete symbol and module loads to fail -d sends all debugger output to kernel debugger via DbgPrint -d cannot be used with debugger remoting -d can only be used when the kernel debugger is enabled -g ignores initial breakpoint in debuggee -G ignores final breakpoint at process termination -hd specifies that the debug heap should not be used for created processes. This only works on Windows Whistler. -o debugs all processes launched by debuggee -p pid specifies the decimal process Id to attach to -pd specifies that the debugger should automatically detach -pe specifies that any attach should be to an existing debug port -pn name specifies the name of the process to attach to -pt # specifies the interrupt timeout -pv specifies that any attach should be noninvasive -r specifies the (0-3) error level to break on (SeeSetErrorLevel) -robp allows breakpoints to be set in read-only memory -t specifies the (0-3) error level to display (SeeSetErrorLevel) -w specifies to debug 16 bit applications in a separate VDM -x sets second-chance break on AV exceptions -x{e|d|n|i} sets the break status for the specified event -2 creates a separate console window for debuggee -i ImagePath specifies the location of the executables that generated the fault (see _NT_EXECUTABLE_IMAGE_PATH) -lines requests that line number information be used if present -myob ignores version mismatches in DBGHELP.DLL -n enables verbose output from symbol handler -noio disables all I/O for dedicated remoting servers -noshell disables the .shell (!!) command -QR <\\machine> queries for remote servers -s disables lazy symbol loading -ses enables strict symbol loading -sfce fails critical errors encountered during file searching -sicv ignores the CV record when symbol loading -snul disables automatic symbol loading for unqualified names -srcpath specifies the source search path -v enables verbose output from debugger -wake wakes up a sleeping debugger and exits -y specifies the symbol search path (see _NT_SYMBOL_PATH) -z specifies the name of a crash dump file to debug -zp specifies the name of a page.dmp file to use with a crash dump -remote lets you connect to a debugger session started with -server must be the first argument if present transport: tcp | npipe | ssl | spipe | 1394 | com name: machine name on which the debug server was created portid: id of the port the debugger server was created on for tcp use: port= for npipe use: pipe= for 1394 use: channel= for com use: port=,baud=, channel= for ssl and spipe see the documentation example: … -remote npipe:server=yourmachine,pipe=foobar -server creates a debugger session other people can connect to must be the first argument if present transport: tcp | npipe | ssl | spipe | 1394 | com portid: id of the port remote users can connect to for tcp use: port= for npipe use: pipe= for 1394 use: channel= for com use: port=,baud=, channel= for ssl and spipe see the documentation example: … -server npipe:pipe=foobar -premote transport specifies the process server to connect to transport arguments are given as with remoting Environment Variables: _NT_SYMBOL_PATH=[Drive:][Path] Specify symbol image path. _NT_ALT_SYMBOL_PATH=[Drive:][Path] Specify an alternate symbol image path. _NT_DEBUGGER_EXTENSION_PATH=[Drive:][Path] Specify a path which should be searched first for extensions dlls _NT_EXECUTABLE_IMAGE_PATH=[Drive:][Path] Specify executable image path. _NT_SOURCE_PATH=[Drive:][Path] Specify source file path. _NT_DEBUG_LOG_FILE_OPEN=filename If specified, all output will be written to this file from offset 0. _NT_DEBUG_LOG_FILE_APPEND=filename If specified, all output will be APPENDed to this file. _NT_DEBUG_HISTORY_SIZE=size Specifies the size of a server’s output history in kilobytes Control Keys: Quit debugger Break into Target Force a break into debuggee (same as Ctrl-C) Debug Current debugger Toggle Verbose mode Print version information ntsd: exiting – press enter —

 

通常情况下人们在服务器端采用各种冗余磁盘阵列(RAID)技术来保护数据,中高档的服务器一般都提供了昂贵的硬件RAID控制器。对于资金实力有限的中小企业来讲,在Linux下通过软件来实现硬件的RAID
功能,这样既节省了投资,又能达到很好的效果。何乐而不为呢?

作为一个面向服务器的网络型操作系统,Linux对数据的安全和存取速度给予了高度重视,从2.4版内核开始Linux就实现了对软件RAID的支持(关于 RAID的背景知识请见附文),这让我们可以不必购买昂贵的硬件RAID设备,就能享受到增强的磁盘I/O性能和可靠性,进一步降低了系统的总体拥有成本。下面就让我们看一个Redhat Linux AS 4下的软件RAID配置实例吧。

系统配置情况

假设某单位新上了一套使用Oracle数据库的能量采集系统,该系统数据量极大并且读写非常频繁,实时性要求高,高峰时有近40名用户在线,对数据库服务器的磁盘子系统提出了很高的要求。由于预算比较紧张,经过多方比较,最终选择了采用Linux系统做软件RAID5的方案。

其配置情况如下:

● 操作系统为RedHat Linux AS 4;

● 内核版本为2.6.9-5.EL;

● 支持RAID0、RAID1、RAID4、RAID5、RAID6;

● 五块36GB SCSI接口的磁盘,其中RedHat AS 4安装在第一块磁盘,其它四块组成RAID 5用来存放Oracle数据库。

在RedHat AS 4下实现软件RAID是通过mdadm工具实现的,其版本为1.6.0,它是一个单一的程序,创建、管理RAID都非常方便,而且也很稳定。而在早期 Linux下使用的raidtools,由于维护起来很困难,而且其性能有限,在RedHat AS 4下已经不支持了。

实现过程

1.创建分区

五块SCSI磁盘分别对应/dev/sda、/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde。其中第一块磁盘/dev/sda分两个区,用于安装RedHat AS 4和做交换分区,其他四块磁盘每块只分一个主分区,分别为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1,并且将分区类型指定为“fd”,这将使Linux内核能将它们识别为RAID分区,且在每次引导时自动被检测并启动。创建分区使用fdisk命令。

# fdisk /dev/sdb

进入fdisk命令行后,使用命令n创建分区,命令t改变分区类型,命令w保存分区表并退出,命令m为帮助。

2.创建RAID 5

这里使用了/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四个设备创建RAID 5,其中/dev/sde1作为备份设备,其他为活动设备。备份设备主要起备用作用,一旦某一设备损坏可以立即用备份设备替换,当然也可以不使用备份设备。命令格式如下:

# mdadm -Cv /dev/md0 -l5 -n3 -x1 -c128 /dev/sd[b,c,d,e]1

命令中各参数分别表示如下作用:“-C”指创建一个新的阵列;“/dev/md0”表示阵列设备名称;“-l5”表示设置阵列模式,可以选择0、1、4、 5、6,它们分别对应于RAID0、RAID1、RAID4、RAID5、RAID6,这里设为RAID5模式;“-n3”指设置阵列中活动设备的数目,该数目加上备用设备的数目应等于阵列中的总设备数; “-x1”设置阵列中备份设备的数目,当前阵列中含有1个备份设备;“-c128”指设置块的尺寸为128KB,缺省为64KB;“/dev/sd[b, c,d,e]1”指当前阵列中包含的所有设备标识符,也可以分开来写,中间用空格分开,其中最后一个为备份设备。

3.查看阵列状态

当创建一个新阵列或者阵列重构时,设备需要进行同步操作,这一过程需要一定时间,可以通过查看/proc/mdstat文件,来显示阵列的当前状态以及同步进度、所需时间等。

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[3] sde1[4] sdc1[1] sdb1[0]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [UU_]

[>………………..] recovery = 4.3% (1622601/37734912) finish=1.0min speed=15146K/sec

unused devices:

当新建或重构完成后,再次查看/proc/mdstat文件:

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[0]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices:

通过以上内容,可以很清楚地看出当前阵列的状态,各部分所代表的意思如下:“[3/3]”中的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,如果有一个设备损坏,则第二位数将减1;“[UUU]”标记当前阵列可以正常使用的设备情况,现假设/dev/sdb1出现故障,则该标记将变成 [_UU],这时的阵列以降级模式运行,即该阵列仍然可用,但是不再具有任何冗余;“sdd1[2]”指阵列所包含的设备数为n,若方括号内的数值小于 n,则表示该设备为活动设备,若数值大于等于n,则该设备为备份设备,当一个设备出现故障的时候,相应设备的方括号后将被标以(F)。 
 
 

4.生成配置文件

mdadm的缺省配置文件为/etc/mdadm.conf,它主要是为了方便阵列的日常管理而设置的,对于阵列而言不是必须的,但是为了减少日后管理中不必要的麻烦,还是应该坚

 

持把这一步做完。

在mdadm.conf文件中要包含两种类型的行:一种是以DEVICE开头的行,它指明在阵列中的设备列表;另一种是以ARRAY开头的行,它详细地说明了阵列的名称、模式、阵列中活动设备的数目以及设备的UUID号。格式如下:

DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

ARRAY /dev/md0 level=raid5 num-devices=3 UUID=8f128343:715a42df: baece2a8: a5b878e0

以上的这些信息可以通过扫描系统的阵列来获取,命令为:

# mdadm -Ds

ARRAY /dev/md0 level=raid5 num-devices=3 UUID=8f128343:715a42df: baece2a8: a5b878e0

devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1

使用vi命令,按照规定的格式编辑修改/etc/mdadm.conf文件

# vi /etc/mdadm.conf

5.创建文件系统并挂接(mount)使用

RAID5已经启动并处于运行状态,现在要做的就是在其上创建一个文件系统,这里使用mkfs命令,文件系统类型为ext3。命令如下:

# mkfs -t ext3 /dev/md0

当新的文件系统生成之后,就可以将/dev/md0挂接到指定的目录了。命令如下:

# mount /dev/md0 /mnt/raid

为了让系统在启动时自动将/dev/md0挂接到/mnt/raid,还需要修改/etc/fstab文件,添加如下内容:

/dev/md0 /mnt/raid ext3 defaults 0 0

故障模拟

上面的实例,让我们对Redhat Linux AS 4的软件RAID功能有了一定的认识,并且通过详细的步骤说明了如何创建RAID5。有了RAID做保障,电脑里的数据看起来似乎已经很安全了,然而现有的情况还是不能让我们高枕无忧,想一想,万一磁盘出现故障怎么办?下面我们模拟一个更换RAID5故障磁盘的完整过程,希望以此丰富大家处理RAID5故障的经验,提高管理和维护水平。

我们仍然沿用上面的RAID5配置,首先往阵列中拷贝一些数据,接下来开始模拟/dev/sdb1设备故障。不过,对于无备份设备的RAID5的模拟过程也要经过如下三步,只是阵列重构和数据恢复是发生在新设备添加到阵列中之后,而不是设备损坏时。

1.将/dev/sdb1标记为已损坏的设备

# mdadm /dev/md0 -f /dev/sdb1

查看当前阵列状态

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[4](F)

75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [_UU]

[=>……………….] recovery = 8.9% (3358407/37734912) finish=1.6min speed=9382K/sec

unused devices:

因为有备份设备,所以当阵列中出现设备损坏时,阵列能够在短时间内实现重构和数据的恢复。从当前的状态可以看出,阵列正在重构,且运行在降级模式,sdb1[4]的后面已经标上了(F),活动设备数也降为2个。

经过几分钟后,再次查看当前阵列状态。

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[2] sde1[0] sdc1[1] sdb1[3](F)

75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices:

此时阵列重构已经完成,数据恢复完毕,原有的备份设备sde1成为了活动设备。

2.移除损坏的设备

# mdadm /dev/md0 -r /dev/sdb1

查看当前阵列的状态:

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[2] sde1[0] sdc1[1]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices:

损坏的sdb1已经从阵列中移掉。

3.将新设备添加到阵列中

因为是模拟操作,可以通过下面的命令再次将/dev/sdb1添加到阵列中。如果是实际操作则要注意两点:一是在添加之前要对新磁盘进行正确的分区;二是添加时要用所添加设备的设备名替换/dev/sdb1。

# mdadm /dev/md0 -a /dev/sdb1

查看当前阵列的状态:

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdb1[3] sdd1[2] sde1[0] sdc1[1]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices:

这时sdb1作为备份设备再次出现在阵列中

常用阵列维护命令

1.启动阵列

# mdadm -As /dev/md0

该命令指启动/dev/md0阵列,其中“-A”指装载一个已存在的阵列;“-s”指查找mdadm.conf文件中的配置信息,并以此为依据启动阵列。

#mdadm -As

该命令指启动mdadm.conf文件中的所有阵列。

#mdadm -A /dev/md0 /dev/sd[b,c,d,e]1

如果没有创建mdadm.conf文件则可以采用上面这种启动方式。

2.停止阵列

# mdadm -S /dev/md0

3.显示指定阵列的详细信息

# mdadm -D /dev/md0

链接

RAID简介

RAID 是冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。它是把多个磁盘组成一个阵列,当作单一磁盘使用。它将数据以分段(striping)的方式分散存储在不同的磁盘中,通过多个磁盘的同时读写,来减少数据的存取时间,并且可以利用不同的技术实现数据的冗余,即使有一个磁盘损坏,也可以从其他的磁盘中恢复所有的数据。简单地说,其好处就是:安全性高、速度快、数据容量大。

磁盘阵列根据其使用的技术不同而划分了等级,称为RAID level,目前公认的标准是RAID 0~RAID 5。其中的level并不代表技术的高低,RAID 5并不高于RAID 4 ,RAID 0并不低于RAID 2 ,至于选择哪一种RAID需视用户的需求而定。下面分别对常用的RAID 0、RAID 1、RAID 5进行简单的介绍。

1.RAID 0

特点:它是将多个磁盘并列起来,成为一个大硬盘。在存取数据时,将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。在所有的级别中,RAID 0的速度是最快的。但没有数据冗余,阵列中任何一个磁盘坏掉,意味着所有数据丢失。

磁盘利用数:n(假设有n个磁盘)。

配置条件:最低两块磁盘,且分区大小尽量相同。

应用领域:对高磁盘容量及高速磁盘存取有特殊需求,而又不计较其高故障率的工作。当然,如果你正在使用集群,RAID 0 无疑是提高磁盘I/O性能的最好方法,因为在这种情况下,你就不用担心冗余的问题了。

2.RAID 1

特点:使用磁盘镜像(disk mirroring)的技术,在一个磁盘上存放数据的同时也在另一个磁盘上写一样的数据。因为有了备份磁盘,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。尽管其写入数据的速度比较慢,但因其数据是以分段的方式作储存,因而在读取时,它几乎和RAID 0有同样的性能。

磁盘利用数:n/2。

配置条件:最低两块磁盘,且分区大小尽量相同。

应用领域:数据库、金融系统等一些对数据有着高可靠性要求的领域。再者就是系统中写数据量比较少,而读数据量又比较多的情况下可以采用这一模式。

3.RAID 5

特点:以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个磁盘上。这样,任何一个磁盘损坏,都可以根据其他磁盘上的校验位来重建损坏的数据。并行读写数据,性能也很高。

磁盘利用数:n-1。

配置条件:最低三块硬盘,且分区大小尽量相同。

应用领域:适合于事务处理环境,例如民航售票处、销售系统等。

生活中,有些食物的搭配组合已经是由来已久,其美妙的口味也被人们所接受,习惯上也觉得这些种搭配是顺理成章的了。但从健康的角度讲,还是不科学的,人家健康专家可是有着充足的理由呢。这里给您列出12种被健康专家列为错误的(我认为该是:不科学的)菜肴搭配。不过,不这样吃,有的东西还真不好吃,我想少这么吃也许问题不大吧。如果您很重视健康,还是听从专家们的忠告,别跟我似的,总是傻吃、贪吃。
  
1.土豆烧牛肉:由于土豆和牛肉在被消化时所需的胃酸的浓度不同,就势必延长食物在胃中的滞留时间,从而引起胃肠消化吸收时间的延长,久而久之,必然导致肠胃功能的紊乱。   

2.小葱拌豆腐:豆腐中的钙与葱中的草酸,会结合成白色沉淀物——草酸钙,同样造成人体对钙的吸收困难。

3.豆浆冲鸡蛋:鸡蛋中的粘液性蛋白会与豆浆中的胰蛋白酶结合,从而失去二者应有的营养价值。   

4.茶叶煮鸡蛋:茶叶中除生物碱外,还有酸性物质,这些化合物与鸡蛋中的铁元素结合,对胃有刺激作用,且不利于消化吸收。   

5.炒鸡蛋放味精:鸡蛋本身含有许多与味精成分相同的谷氨酸,所以炒鸡蛋时放味精,不仅增加了鲜味,反而会破坏和掩盖鸡蛋的天然鲜味。   

6.红白萝卜混吃:白萝卜中的维生素C含量极高,但红萝卜中却含有一种叫抗坏血酸的分解酵素,它会破坏白萝卜中的维生素C。一旦红白萝卜配合,白萝卜中的维生素C就会丧失殆尽。不仅如此,在与含维生素C的蔬菜配合烹调时,红萝卜都充当了破坏者的角色。还有胡瓜、南瓜等也含有类似红萝卜的分解酵素。   

7.萝卜水果同吃:近年来科学家们发现,萝卜等十字花科蔬菜进入人体后,经代谢很快就会产生一种抗甲状腺的物质———硫氰酸。该物质产生的多少与摄入量成正比。此时,如果摄入含大量植物色素的水果如橘子、梨、苹果、葡萄等,这些水果中的类黄酮物质在肠道被细菌分解,转化成羟苯甲酸及阿魏酸,它们可加强硫氰酸抑制甲状腺的作用,从而诱发或导致甲状腺肿。   

8.海味与水果同食:海味中的鱼、虾、藻类,含有丰富的蛋白质和钙等营养物质,如果与含有鞣酸的水果同食,不仅会降低蛋白质的营养价值,且易使海味中的钙质与鞣酸结合成一种新的不易消化的物质,这种物质会刺激胃而引起不适,使人出现肚子痛、呕吐、恶心等症状。含鞣酸较多的水果有柿子、葡萄、石榴、山楂、青果等。因此这些水果不宜与海味菜同时食用,以间隔两个小时为宜。   
9.牛奶与橘子同食:刚喝完牛奶就吃橘子,牛奶中的蛋白质就会先与橘子中的果酸和维生素C相遇而凝固成块,影响消化吸收,而且还会使人发生腹胀、腹痛、腹泻等症状。

10.酒与胡萝卜同食:最近,美国食品专家告诫人们:酒与胡萝卜同食是很危险的。专家指出,因为胡萝卜中丰富的β胡萝卜素与酒精一同进入人体,就会在肝脏中产生毒素,从而引起肝病。特别是在饮用胡萝卜汁后不要马上去饮酒。   

11.白酒与汽水同饮:因为白酒、汽水同饮后会很快使酒精在全身挥发,并生产大量的二氧化碳,对胃、肠、肝、肾等器官有严重危害,对心脑血管也有损害。   

12.吃肉时喝茶:有的人在吃肉食、海味等高蛋白食物后,不久就喝茶,以为能帮助消化。殊不知,茶叶中的大量鞣酸与蛋白质结合,会生成具有收敛性的鞣酸蛋白质,使肠蠕动减慢,从而延长粪便在肠道内滞留的时间。既容易形成便秘,又增加有毒和致癌物质被人体吸收的可能性。

生病不能吃的东西:

感    冒: 香蕉,橘子,芦荀汁,冰,羊肉,姜母鸭,烟酒

咳   嗽: 冰淇淋,橘子,炸,烤,辣,花生,酒,甜食 急

性 胃 炎 : 油炸食物,酒,辣椒,糯米

慢 性 胃 炎 : 生冷食物,酸酵食物,甜食

肠   炎 : 香蕉,蕃石榴

胃 肠 胀 闷 : 花生,蕃薯,蛋发酵类,豆类

急慢性肝炎 : 鹅(鸡,鸭)肉皮,肥猪肉,烟酒,不熬夜心
 
脏 病 : 暴饮暴食,高胆固醇,太咸食物

肾 脏 病 : 啤酒,汽水,咸鱼,笋干,咸菜

糖 尿 病 : 甜,酒,油腻,炸烤,高热量食物

低 血 压 : 芹菜,宜早睡多运动

高 血 压 :太咸食物,蛋黄,动物内脏,乳酪,动物性油,脑髓

消化性溃疡:豆类,竹笋,咸菜,糯米类品,酒,菠萝,辣椒,
番石榴

怀 孕 时 : 酒,烟,咖啡

跌打骨膜炎 : 香蕉,竹笋,酒,酸菜,

辣椒 跌 打 损 伤 :猪头骨肉,醋,花生,甜食,香蕉,啤酒

痔 疮 便 血 :烟,酒,辣椒,油炸物

风湿性关节炎:啤酒,香蕉,肉类,避寒露雨水

敏性体质: (荨麻疹,湿疹,哮喘,过敏性鼻炎)海产,芋头,芒果, 冰,桂圆 ,荔枝

脑神经衰弱(失眠症): 辣椒,酒,咖啡,葱,蒜

1.在陷入情网的时候,有些人丢了头脑,另一些人丢了心。When falling in love, some lose their head, others lose their heart.

2.幸福是良好的健康加上糟糕的记性。

Happiness is good health and a bad memory.

3.唯有爱可以把黑暗囚在波港湾里。

Love is the only thing that holds the dark at bay.

4.爱是两个人玩的双赢游戏。

Love is a game that two can play and both win.

5.爱不是从相互凝视之中获得的,倒是可以由同朝一个方向眺望而产生。这是生活给予我们的教训。

Life has taught us that love does not consist in gazing at each other but in looking outward together in the same direction .

6.一位父亲能为他的孩子做的最要紧的事是爱他们的母亲。

The most important thing a father can do for his

children is loving their mother.

7.爱是无尽的宽恕,是惯常的温柔目光。

Love is an act of endless forgiveness, a tender look which becomes a habit.

8.人在爱中超越自我。

To be in love is to surpass oneself.

9.男人的爱情门户在眼睛,女人则是在耳朵。

Love enters a man through his eyes; a woman through her ears.

10. (对女人来说) 有三类男人:智慧的情人,尊荣的情人,势利的情人。

There are three classes of men: lovers of wisdom, lovers of honor, lovers of gain.

11.女人定规是要让人爱,而不是让人理解。

Women are meant to be loved, not to be understood.

12.没有丑女人,只有不懂得如何使自己显出美丽的女人。

There are no ugly women; there are only women who not know how to look pretty.

13.想要别人爱你的话,就要去爱别人,做一个可爱的人。

If you would be loved, love and be lovable.

14.如果有人爱你,你就该做个值得人爱的人。

If you be loved, be worthy of love.

15.具备爱的无知和笨拙胜过缺乏爱的智慧和技巧。

Ignorance and bungling with love are better than wisdom and skill without love.

16.不成熟的爱说:“我爱你,因为我需要你。”成熟的爱说:“我需要你,因为我爱你。”

Immature love says:“I love you because I need you。”Mature love says:“I need you because I love you”

17.爱不在深厚,乃在久长。

Love me little, love me long.

18.没有信任就没有爱。

Where there is no trust, there is no love.

19.总结过去,放眼未来,把握现在。

Learn from the past, look to the future.Live in the present.
20.快乐起来吧!快乐才是明智的。

Be happy. It is a way of being wise.

21.喜剧是悲剧加上时间。

Comedy is tragedy plus time.

22.爱是春天有植物,用它的生机使一切散发出芬芳气息,即使是它所处身的废墟,也充满了希望。

Love is a springtime plant that perfumes everything with its hope, even the ruins to which it clings

23.不要轻视那无论何时总显得快乐无忧的人,有些事情是你所不懂的,而他懂。

Do not scorn the person who is perpetually happy. He does know something you don’t。

24.我是一个理想主义者,我不知道将往何处,但我正在赶路。

I’m an idealist。I don’t know where I’m going, but I’m on my way。

25.我只晓得一个责任,那就是施爱。

I know of only one duty, and that is to love.

26.对于人类生存问题,唯一令人满意的答案是:爱。

Love is the only satisfactory answer to the problem of human existence.

27.真理一从人的嘴里说出来就走了样。

Truth is fiction when spilled from the lips of a man.

28.一个对爱保持清醒的人无法去爱。

People who are sensible about love are incapable of it.

29.争吵总比寂寞好。

Contention is better than loneliness.

30.当面刺痛你的是你的好朋友。

Good friends stab you in the front.

31.如果有什么事情比被爱着更好的话,那就是爱着。

If there is anything better than being loved, it’s loving.

32.结婚是两个人的结合:其中一个总是忘了生日而另一个从来不会忘记。

Marriage is the alliance of two people, one of whom never remembers birthdays and the other who never forgets.

33.爱情就象一个砂漏,当脑子倒空的时候心就被填满了。

Love is like an hourglass, with the heart filling up as the brain empties.

34.匮乏压抑了人的一些小欲望而强化了重大的欲望,就如风吹灭蜡烛而煽旺篝火。

Absence extinguishes small passions and increases great ones, as the wind blows out a candle,and fans a bonfire.

35.我给你的忠告是:结婚吧!如果你找到一个好妻子,你是幸福的;如果妻子不贤,你则会成为哲学家。

My advice to you is to get married. If you find a good wife, you’ll be happy; if not, you’ll become a philosopher.

36.但愿坏习惯象心一样易碎。

If only bad habits could be broken as easily as hearts!

37.当爱被沾污时,金钱成了代用品。

When love turns into dust, money becomes the substitution.

38.爱使人健全;奉献或接受皆然。

Love cures people; both the ones who give it, and the ones who receive it.

39.浪漫植根于幻觉之上,而当我们爱上某个人时,我们也爱上他为我们营造的幻觉。

Romance is built on illusion, and when we love someone, we love the illusion they have created for us.

40.恋爱与咳嗽无法掩藏。

Love and a cough cannot be hidden.

41.爱是一笔财富。

Love is wealth.

42.爱情和理智不能并存。

It is impossible to love and be wise.

43.男人喜欢追逐那些象弄湿了的香皂般令人难以捉摸的女人——哪怕是讨厌洗澡的男人。

Men like to pursue an elusive woman like a cake of wet soap——even men who hate baths.

44.世上没有女人的话,男人可以活得象神仙。

Were there no women, men might live like gods.

45.寻求男女平等的女性缺乏雄心壮志。

Women who seek to be equal with men lack ambition.

46.女性泪眼矇眬之时,视线受阻的是男性。

When a female has tears in her eyes, the one who cannot see is the male

47.想象力比知识更重要。

Imagination is more important than knowledge.

48.当你出生时,你啼哭而世界欣喜。善度你的一生,使得你离世的时候,世界哭泣而你欣喜。

When you were born, you cried and the world rejoiced. Live your life so that when you die, the world cries and you rejoice.

49.很早以前我就懂得,永远不要与猪争斗。因为你会弄得很脏,而猪就喜欢你这样。

I learned long ago, never to wrestle with a pig. You get dirty, and besides, the pig likes it.