1. 现象
(1)重启公司测试机IBM 520,风扇正常运转,指示灯也正常(一只是绿的没有闪烁),说明硬件正常。
(2)ping 不通
(3)抽出机器的液晶面板查看状态,现示为:standby; 查看HMC状态(按液晶面板上的第一个键,按到01,再按第二个键就可以看到HMC的状态了):正常
2.诊断过程和处理过程
(1)本机没有配显卡,也没有集中在HMC server上管理,所以只能利用本机的HMC管理。
(2)联通本机HMC,配置自己的pc的ip与HMC的ip在一个网段(HMC的ip可以在液晶面板上看到,按液晶面板上的第一个键,按到30,再按第二个键可以看到30*,再按第三个键,按到30000,再按第二个键就可以看到HMC 的IP了)
(3)物理联通之后,用HMC软件连接到server上的HMC,查看状态,发现是分区没有被激活。手动激活就可以(激活之后就会加载类似grub的东西,直到启动操作系统就噢ok了)。
3.总结
(1)IBM的小机的启动大概有两大步骤:硬件质检、启动操作系统。中间有一个重要步骤是激活分区(可以配置为自动和手动,IBM推荐用手动方式,个人对此有点不理解)
(2)在启动到standby的状态下说明硬件完好,standby可以理解为硬件已经处于备用状态;同时也说明硬件处在没有被使用的状态(操作系统没有起来:可能是没有装操作系统,可能是没有激活分区)
netfilter/iptables是linux系统自带的免费防火墙,能够实现防火墙、NAT(网络地址翻译)和数据包分割功能
netfilter工作在内核层,iptables工作在用户层,可以方便用户定义规则集的表结构。
【iptables选项介绍】
netfilter的用户控制命令是iptables,通过iptables建立适当的规则添加到内核中实现信息数据包的过滤。
iptables的一般语法如下:
iptalbes [-t table] command [match] [target]
一条iptables规则包含4个基本元素,
1)表(table)
[-t table] 选项允许使用标准表之外的任何表。有三种可以使用的表选项:filter、nat和mangle。
2)命令(command)
command部分是iptables命令的最重要部分,它告诉iptables命令要做什么,例如,插入规则、将规则添加到
链的末尾或删除规则。主要有如表1所示的命令。
表1 iptables常用命令
-A或--append 该命令将一条规则附加到链的末尾
-D或--delete 通过用-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则
-P或--policy 该命令设置链的默认目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使
用此链的策略
-N或--new-chain 用命令中所指定的名称创建一个新链
-F或--flush 如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所
有规则。此参数用于快速清除
-L或--list 列出指定链中的所有规则
-R或--replace 替换指定链中一条匹配的规则
-X或--delete-chain 删除指定用户的的定义链,若没有指定链,则删除所有的用户链
-C或--check 检查数据包是否与指定链的规则相匹配
-Z或--zero 将指定链中所有规则的byte计数器清零
3)匹配(match)
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为
两大类:通用匹配和特定于协议的匹配。这里,将研究可用于采用任何协议的信息包的通用匹配。下面是一些重
要的且常用的通用匹配及其说明,如表2所示。
表2 通用匹配说明
通用匹配 说 明
-p或--protocol 该通用协议匹配用于检查某些特定协议。协议示例有TCP、UDP、ICMP、用逗号分隔的任何这三
种协议的组合列表以及ALL(用于所有协议)ALL是默认匹配。可以使用!符号表示不与该项匹配
-s 或 --source 该源匹配用于根据信息包的源IP地址来与它们匹配。该匹配还允许对某一范围内的IP地址进行匹
配,可以使用!符号,表示不与该项匹配。默认源匹配与所有IP地址匹配
-d 或 --destination 该目的地匹配用于根据信息包的目的地IP地址来与它们匹配。该匹配还允许对某一范围内IP
地址进行匹配,可以使用!符号表示不与该项匹配
--sport 指定匹配规则的源端口或端口范围
--dport 指定匹配规则的目的端口或端口范围
-i 匹配单独的网络接口或某种类型的接口设置过滤规则
4)目标(target)
前面已经讲过,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之
外,还有许多可用的目标选项。下面是常用的一些目标及其示例和说明,如表3所示。
表3 目标项说明
目 标 项 说 明
ACCEPT 当信息包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地)
DROP 当信息包与具有DROP目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被
指定为-j DROP
REJECT 该目标的工作方式与DROP目标相同,但它比DROP好。和DROP不同,REJECT不会在服务器和客户机上
留下死套接字。另外,REJECT将错误消息发回给信息包的发送方。该目标被指定为-j REJECT
RETURN 在规则中设置的RETURN目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如INPUT之
类的主链,则使用该链的默认策略处理信息包。它被指定为-jump RETURN
LOG 表示将包的有关信息记录入日志
TOS 表示改写数据包的TOS值
【iptables使用实例】
实际使用规则如下:
只允许某个ip访问某个端口
#iptables -A INPUT -p tcp -s 61.145.251.36 --dport 16322 -j ACCEPT
-A 在INPUT链中增加,
-p 表示协议
-s 表示源地址
--dport 表示目的端口
-j 目标操作
其他的ip都拒绝
#iptables -A INPUT -p tcp --dport 16322 -j REJECT
删除一条规则(删除INPUT链中第一条规则,具体可以man iptables)
#iptalbes -D INPUT 1
插入一条规则(插入到INPUT链中第二条规则)
#iptables -I INPUT 2 -p tcp -s 61.145.251.63 --dport 16322 -j ACCEPT
限制某个网口的访问(eth0 的端口访问插入一条规则)
#iptables -I INPUT 3 -p tcp -s 61.145.251.66 -i eth0 --dport 16322 -j ACCEPT
#iptables -I INPUT 4 -p udp -s 61.145.251.66 -i eth0 --dport 16322 -j ACCEPT
限制某个网段的访问
#iptables -I INPUT 5 -p tcp -s 192.168.0.0/16 -i eth1 --dport 3306 -j REJECT
对于iptables的一些其他选项可以查看使用手册:man iptables
和iptables并行的还有iptables-save和iptables-restore命令,分别用来保存和恢复规则
保存规则到iptables-save.txt
#iptables-save > iptables-save.txt
从保存文件中恢复
#iptables-restore < iptables-save.txt
对于已经含有规则的表格,可以先iptables-save,然后做修改,最后再iptables-restore。
【参考文档】
http://os.51cto.com/art/201108/283160.htm
一、从DataGridView中直接导出数据到Excel文件
经过上网找资料,终于找到一种可以直接将GridView中数据导出到Excel文件的方法,归纳方法如下:
1、 注:其中的字符集格式若改为“GB2312”,导出的部分数据可能为乱码;
导出之前需要关闭分页部分,若分页只导出首页的数据;
/// <summary>
/// 下载数据
/// </summary>
/// <param name="FileType">文件类型</param>
/// <param name="FileName">Excel表名</param>
private void Excel(string FileType, string FileName)
{
try
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
//返回与指定代码页关联的数据
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
//attachment表示作为附件下载,filename指定输出文件名称
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
//指定文件类型
Response.ContentType = FileType;
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
//定义一输入流
StringWriter tw = new StringWriter(myCItrad);
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.gvJstList.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
catch (Exception err)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "js", "showInfo('ctl00_Contentplaceholder2_ValidationSummary1',1,'发生错误:" + err.Message.Replace("\r\n", "\\r\\n").Replace("'", "‘") + "')", true);
return;
}
}
如上代码如果处理一般的GridView导出应该是没有问题的,但是如果GridView的AutoGenerateDeleteButton,AutoGenerateEditButton,AutoGenerateSelectButton有的设置为True了,或者GridView中有HyperLinkField类型的字段,那么就会抛出形如“类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常!
那么他的解决方案是:对WebForm窗体的VerifyRenderingInServerForm方法进行Override!
代码如下:
public override void VerifyRenderingInServerForm(Control control)
{
//OverRide 为了使导出成Excel可行!
}
2、/*如导出的表中有某些列为编号、身份证号之类的纯数字字符串,如不进行处理,则导出的数据会默认为数字,例如原字符串"0010"则会变为数字10,字符串"1245787888"则会变为科学计数法1.236+E9,这样便达不到我们想要的结果,所以需要在导出前对相应列添加格式化的数据类型,以下为格式化为字符串型*/
在上面的代码中添加以下代码:
foreach (GridViewRow dg in this.gridview1.Rows)
{
dg.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
dg.Cells[5].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
dg.Cells[6].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
dg.Cells[8].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
}
或者是在DataGridView事件RowDataBound中添加以下代码:
if(e.Row.RowType == DataControlRowType.DataRow )
{
e.Row.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
e.Row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
参考资料如下:
http://www.cnblogs.com/stewen/archive/2008/03/26/1122778.html
http://www.soaspx.com/dotnet/asp.net/Control/control_20100322_3371.html