Skip to content


思科2950恢复出厂设置

1、关闭交换机
2、按住面板前MODE按钮不放,加电。进入switch:
3、flash_init
4、load_helper
5、dir flash:
6、delete flash:config.text
7、delete flash:vlan.dat
8、重启

Posted in 网络设备.

CPU精简指令集和复杂指令集的区别

经常看到计算机课程上介绍PowerPC是采用精简指令集的CPU,酷睿CPU是复杂指令集。那么到底精简指令集和复杂指令集有什么区别呢?

以下内容摘自百度百科:在计算机指令系统的优化发展过程中,出现过两个截然不同的优化方向:CISC技术和RISC技术。CISC是指复杂指令系统计算机(ComplexInstructionSetComputer);RISC是指精减指令系统计算机(ReducedInstructionSetComputer)。这里的计算机指令系统指的是计算机的最低层的机器指令,也就是CPU能够直接识别的指令。随着计算机系统的复杂,要求计算机指令系统的构造能使计算机的整体性能更快更稳定。最初,人们采用的优化方法是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度,这种计算机系统就被称为复杂指令系统计算机,即ComplexInstructionSetComputer,简称CISC。另一种优化方法是在20世纪80年代才发展起来的,其基本思想是尽量简化计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现,这种计算机系统就被称为精简指令系统计算机.即ReducedInstructionSetComputer,简称RISC。RISC技术的精华就是通过简化计算机指令功能,使指令的平均执行周期减少,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度。

OK通过上述内容大家基本可以知道,复杂指令集就是将更多功能步骤集成在了CPU中。例如烹饪西红柿鸡蛋的步骤包括:购买西红柿和鸡蛋,清洗食材,打鸡蛋,炒鸡蛋,放西红柿继续炒,放糖,放盐,炒熟之后盛盘上桌。这样已连续的步骤被集成在CPU内部。外部程序需要烹饪西红柿鸡蛋的时候只需要向CPU下达指令说:“烹饪西红柿鸡蛋”就可以了。复杂指令集就是将琐碎的步骤实现集成到了CPU内部,例如INTEL的SSE3等。

精简指令集就是在CPU中只有容器,调料等基本指令。需要人们在软件中写上如何协调这些指令的步骤,例如你需要向CPU下达指令说:买西红柿,清晰食材,打鸡蛋,炒鸡蛋,放西红柿继续炒,放糖,放盐,炒熟之后盛盘上桌。

由此可见当两个人比赛做饭的时候,复杂指令集的参赛者只需要不停的说“做饭做饭”就可以了。而精简指令集的参赛者需要不停的重复做饭的整个过程和步骤。如果精简指令集的参赛者嘴巴够快才能赶上复杂指令集的参赛者,但是这个“嘴巴”其实取决于内存和CPU之间的带宽是否足够。当然精简指令集也同样存在优越性,复杂指令集要通过不断增加指令的复杂程度和指令的数量来提高性能所以才会越做越大越做越耗电,而精简指令集相比较无疑体积更小更加省电。

上面只是举了一个较为偏激的例子而已,你可以认为是针对于嵌入式精简指令集和普通酷睿(X86)架构的一个比较,这个是不对等和不公平的。IBM PowerPC可是堪比至强性能的呢,这是怎么回事呢?IBM在70年代末期提出复杂指令集存在很多缺点:1,随着应用需求,复杂指令集不可能无止境的增加指令。2,实际程序运行过程中80%的指令,只占一个处理器指令系统的20%,被频繁使用的指令只是一些取、存和加这些最简单的指令。3,CPU厂商不同,复杂指令集也不同,程序的可移植性会非常差,即便可以运行效率也会相差较大(所以我常说服务器要用INTEL处理器,因为更多的程序以调用INTEL指令集为依据)。针对复杂指令集的弊端才提出了精简指令集。

IBM PowerPC无疑拥有更强劲的处理性能与更大的内存带宽,但是其精简指令集的CPU决定了只能在某个特定应用领域才能完胜至强。因为PowerPC本身硬件设计和软件设计更具备针对性。例如并发控制、数据存取。

总结:精简指令集也好,复杂指令集也罢都是CPU运行功能和实现应用的方法而已。在特定领域和行业选择不同指令集CPU才是王道。手机和火星登陆车里边永远无法放进去X86,个人家用电脑日趋强劲的多应用多功能化也永远不要奢望使用IBM PowerPC。

有人说精简指令集架构平台下对于程序员的要求会更高呢?其实未必。在写程序时精简指令集和复杂指令集开发代码上并没有特别大的差异,真正转换成特定CPU指令架构底层语言是依靠编译器实现的。也就是你的代码技能在精简指令集用,也能在复杂指令集用,主要取决于你的编译器编译出的汇编语言适用于何种架构。

Posted in 杂七杂八.

cacti自定义模板显示routeros拨号数量

使用了几个月cacti的确被其强大的绘图功能所震撼,更重要的是不只能使用snmp默认支持的oid创建图形绘图还可以自定义图形模板。由于工作需求,需要记录几台routeros的pppoe拨号数量。于是就动手做了一个。

大约流程为:寻找可以直接使用的OID → 创建必须的系统脚本 → 添加数据输入方法 → 添加数据模板 → 添加图形模板 → 主机使用图形模板 → 添加绘图 即可完成全部的操作。

一、寻找OID:借助强大的搜索引擎,我看到了这个帖子:http://forums.cacti.net/viewtopic.php?f=12&t=12280 貌似老外和咱也有相同的需要呢。尝试执行命令:

 

# snmpwalk -On -v 2c -c public 192.168.1.96 .1.3.6.1.2.1.2.2.1.2
.1.3.6.1.2.1.2.2.1.2.3 = STRING: shang
.1.3.6.1.2.1.2.2.1.2.4 = STRING: xia
.1.3.6.1.2.1.2.2.1.2.7 = STRING: <pppoe-as00817>
.1.3.6.1.2.1.2.2.1.2.11 = STRING: <pppoe-as00487>
.1.3.6.1.2.1.2.2.1.2.13 = STRING: <pppoe-as00767>
.1.3.6.1.2.1.2.2.1.2.14 = STRING: <pppoe-as00787>
.1.3.6.1.2.1.2.2.1.2.15 = STRING: <pppoe-as00666>
.1.3.6.1.2.1.2.2.1.2.19 = STRING: <pppoe-as00815>
.1.3.6.1.2.1.2.2.1.2.21 = STRING: <pppoe-as00031>
.1.3.6.1.2.1.2.2.1.2.29 = STRING: <pppoe-as00741>
.1.3.6.1.2.1.2.2.1.2.30 = STRING: <pppoe-as00729>
.1.3.6.1.2.1.2.2.1.2.35 = STRING: <pppoe-as00688>
.1.3.6.1.2.1.2.2.1.2.37 = STRING: <pppoe-as00174>
.1.3.6.1.2.1.2.2.1.2.39 = STRING: <pppoe-as00739>
.1.3.6.1.2.1.2.2.1.2.41 = STRING: <pppoe-as00142>
.1.3.6.1.2.1.2.2.1.2.42 = STRING: <pppoe-as00013>
.1.3.6.1.2.1.2.2.1.2.45 = STRING: <pppoe-as00010>
.1.3.6.1.2.1.2.2.1.2.46 = STRING: <pppoe-as00577>
.1.3.6.1.2.1.2.2.1.2.47 = STRING: <pppoe-as00662>
.1.3.6.1.2.1.2.2.1.2.49 = STRING: <pppoe-as00632>
.1.3.6.1.2.1.2.2.1.2.53 = STRING: <pppoe-as00052>
.1.3.6.1.2.1.2.2.1.2.54 = STRING: <pppoe-as00310>
.1.3.6.1.2.1.2.2.1.2.55 = STRING: <pppoe-as00169>
.1.3.6.1.2.1.2.2.1.2.56 = STRING: <pppoe-as00123>
.1.3.6.1.2.1.2.2.1.2.57 = STRING: <pppoe-as00775>
.1.3.6.1.2.1.2.2.1.2.58 = STRING: <pppoe-as00600>
.1.3.6.1.2.1.2.2.1.2.59 = STRING: <pppoe-as00058>
.1.3.6.1.2.1.2.2.1.2.61 = STRING: <pppoe-as00030>
.1.3.6.1.2.1.2.2.1.2.62 = STRING: <pppoe-as00726>

 

 

这OID的确是可以使用的,只是没有一个OID能直接显示出来在线总人数,只是列出了所有在线人数。

Continued...

Posted in Linux教程, 杂七杂八. Tagged with .


删除xenserver中状态不正常的虚拟机

导入一个虚拟机模板的时候出现了问题可能是中途断开过还是什么其他的原因导致出现一个黄色的箭头,取消导入也无法解决。最终找到如下解决方法:

1,xe vm-list    #查看需要操作的虚拟机uuid

2,xe vm-reset-powerstate uuid=60207d23-979e-ef86-2ede-455bf3504eee force=true    #重置电源状态

3,xe vm-destroy uuid=60207d23-979e-ef86-2ede-455bf3504eee     #删除对应虚拟机

Posted in 虚拟化.

RHEL6&CentOS6一个网络接口多个IP地址配置方法

首发:转载请注明出处http://www.whypc.info
使用centos6有一段时间了。今天突然想在一个网卡上设置两个IP分别为:192.168.1.104和192.168.11.104。使用过去的方法复制ifcfg-eth0一份为ifcfg-eth0:x重启network服务器之后使用ifconfig-a命令发现没有启用eth0:x接口。之后查找资料找到方法,一切归功于以下这篇文章,请猛击这里

CentOS6和RHEL6新版本中默认在2345级别启动了一个叫做NetworkManager的服务,经过对照,该服务在Centos5和RHEL5中也是存在的,只是默认没有启动。如下方法进行查看:

在CentOS6查看
[root@mov network-scripts]# chkconfig --list|grep -i network
NetworkManager  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
network         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
在CentOS5查看
[root@ftpsrv ~]# chkconfig --list|grep -i network
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

于是设置RHEL6&Centos6单接口多IP的方法有两种。
第一种可能是大家比较容易接受的一种。就是停掉NetworkManager服务之后按照之前CentOS5或者RHEL5配置的方法,复制ifcfg-eth0为ifcfg-eth0:0之后更改ifcfg-eth0:0即可。

[root@mov network-scripts]# service NetworkManager stop
[root@mov network-scripts]# chkconfig –level 2345 NetworkManager off

 

第二种方法,相信是RedHat比较推荐的一种方法。既让所有的子接口IP设置都在ifcfg-eth0一个网卡配置文件当中实现,方法如下:

[root@mov network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
TYPE=Ethernet
NM_CONTROLLED=yes   #使用NetworkManager服务来管理该接口,如果该接口不想让
USERCTL=yes         #NetworkManager管理可以写成no
ONBOOT=yes    #UERCTL是指其他用户是否可以使用NetworkManager管理工具控制连接或断开
HWADDR=E4:1F:11:45:1A:AC
IPADDR=192.168.1.104   #接口的第一组IP
PREFIX=24              #接口的第一组ip对应子网
IPADDR2=192.168.11.104  #接口的第二组IP
PREFIX2=24               #接口的第二组IP对应子网
GATEWAY=192.168.1.100   #网关,第二个网关可以使用GATEWAY2
DNS1=8.8.4.4            #DNS设置,取消了/etc/resolv.conf的设置,
DNS2=8.8.8.8            #就算你设置了,也会从resolv.conf删除。

 

我个人推荐第二种方法,如果你使用了你会发现异常方便。当你使用vi将IPADDR2=192.168.11.104更改为IPADDR2=192.168.11.105的时候,不需要重新启动任何服务(不用servicen network restart)新的IP地址就已经启用了。

但是目前依然存在问题。就是我不知道如何使用命令查看在一个网卡接口上绑定的多个IP地址。ifconfig -a显然已经不可行了。

Posted in Linux技术.

openvz提示:vzquota on failed [3]

一天开启openvz虚拟机的时候总也失败,查看日志获取以下内容:

Container is not running

vzquota on failed [3]

命令行启动提示错误如下:

vzctl start 156
Starting container ...
vzquota : (error) Quota on syscall for id 156: Device or resource busy
vzquota : (error)       Possible reasons:
vzquota : (error)       - Container's root is already mounted
vzquota : (error)       - there are opened files inside Container's private area
vzquota : (error)       - your current working directory is inside Container's
vzquota : (error)         private area
vzquota : (error)       Currently used file(s):
/vz/private/156/var/log
vzquota on failed [3]
--------------------------------------------------

最终解决方法如下:

[root@stkgdl conf]# lsof 2> /dev/null | egrep '/vz/root/540|/vz/private/540'
bash 786 root cwd DIR 8,3 4096 8192388 /vz/private/540/fs/root
[root@stkgdl ~]# ps auxfww |grep 786
root 786 0.0 0.0 2348 1344 pts/0 Ss+ 09:22 0:00 | \_ -bash
[root@stkgdl ~]# kill -s 9 786

[root@stkgdl ~]# vzctl start 540
Starting VE ...
VE is mounted
Setup slm memory limit
Setup slm subgroup (default)
Setting devperms 20002 dev 0x7d00
Setup ioprio: 4
Adding port redirection to VE(1): 4643 8443
Adding IP address(es) to pool: 203.191.150.111
arpsend: 203.191.150.111 is detected on another computer : 00:13:d3:bf:1e:96
vz-net_add WARNING: arpsend -c 1 -w 1 -D -e 203.191.150.111 eth0 FAILED
Adding IP address(es): 203.191.150.111
arpsend: 203.191.150.111 is detected on another computer : 00:13:d3:bf:1e:96
vz-net_add WARNING: arpsend -c 1 -w 1 -D -e 203.191.150.111 eth0 FAILED
Hostname for VE set: localhost.localdomain
File resolv.conf was modified
VE start in progress...

Posted in 虚拟化.

DA面板提示过期续费

很久没有登录DA了,今天登录admin发现提示过期。命名是终身授权,可能和服务器长时间关机有关系。授权没有更新下来。于是采用如下方法手动更新解决:

cd /usr/local/directadmin/scripts
./getLicense.sh 123 1234
service directadmin restart

123 = client ID
1234 = License ID

 

Posted in Linux技术.

破解Windows Server2008口令

猜测以下方法可能对活动目录中Administrator密码不管用。

  1. 主機 BIOS 使用光碟機開機
  2. 使用 Windows Server 2008 R2 Standard Edition 光碟片開機
  3. 在【系統復原選項】視窗中選擇【使用可協助修正 Windows 啟動問題的修復工具。選取要修復的作業系統】後按【下一步】
  4. 選擇【命令提示字元】
  5. 此時應該在光碟機的槽,請切換到您的系統槽,例如 C:,之後切換到 【Windows\System32】資料夾下
  6. 將【放大鏡 Magnify.exe】執行檔備份,執行指令 【rename Magnify.exe Magnify.exe.bak】
  7. 改用【命令提示字元 cmd.exe】執行檔取代剛才的放大鏡執行檔,執行指令【copy cmd.exe Magnify.exe】
  8. 將主機重新啟動並退出光碟片
  9. 在登入畫面時點選左下角工具列,然後勾選【放大鏡 (也就是要呼叫 命令提示字元)】後按下【確定】,此時就會彈出【命令提示字元】視窗
  10. 使用指令【net user administrator "weithenn"】 將管理者密碼修改為 weithenn,接著就可以關閉命令提示字元視窗
  11. 使用剛才設定的管理者密碼登入 Windows Server 2008

转自:http://www.weithenn.org/cgi-bin/wiki.pl?Windows_2008_Server-%e5%bf%98%e8%a8%98%e7%ae%a1%e7%90%86%e8%80%85%e5%af%86%e7%a2%bc

Posted in Windows技术.

X3650连接DS3400阵列柜无法启动的解决

最近在设置IBM X3650和DS3400阵列柜连接安装Linux操作系统的时候发现一个诡异的现象。就是安装好HBA卡之后连接这阵列柜原本正常启动和安装正常的Linux启动不了。开机屏幕提示“Hard Disk 0 boot failed”,过会儿屏幕上出现一个软盘的图并且让按下F1。想到了可能是设备启动顺序的问题,于是找到了如下解决方法:
 

Q.IBM x3650 M2 裝上 HBA Card 與 DS4700 連接後無法開機 Hard Disk 0 boot failed?

Error Message:

有二台 IBM x3650 Server 安裝作業系統為 RHEL 5.4 接上 HBA Card 與 IBM DS4700 Storage 時也都運作正常 (可看到 LUN Volume),但當 IBM x3650 Server 重新開機時狀況出現,IBM x3650 Server 無法進入作業系統並且畫面出現如下訊息

 Hard Disk 0 boot failed

原本以為可能 User 做了某些動作導致 MBR 不見了所以開不了機,但試了一些方式如下都還是開不起來

  • 嘗試修復 MBR
  • 嘗試修復 RHEL GRUB
  • 嘗試把 BIOS Raid 設定打掉重新 Build RAID 並重新安裝作業系統

Ans:

原來問題跟作業系統一點關系也沒有,是 IBM Server BIOS 設定及 HBA Card BIOS 設定所導致的,當 IBM x3650 Server 透過 HBA Card 與 DS4700 Storage 連接時因為 HBA Card 的預設值會把本來的 BIOS 設定值覆蓋造成 IBM x3650 Server 會去找 Storage 開機 (當然開不起來),又因為設定值被覆蓋所以原來的 IBM BIOS 選項 Hard Disk 0 便無法開機必須要把 BIOS 設定中將 Legacy Only 項目加入到 BIOS 開機順序中才可正常開機,以下為 IBM Server BIOS 及 HBA Card BIOS 設定檢查步驟:

  1. 請先確定 HBA Card BIOS 中 Selectable Boot SettingsDisable (Boot From SAN)快捷键(CTRL+C)
  2. 調整 IBM x3650 Server BIOS
    1. IBM x3650 Server 未透過 HBA Card 與 DS4700 Storage 連接則 BIOS 設定開機選項中請選擇 Hard Disk 0 即可正常開機找到作業系統。
    2. IBM x3650 Server 透過 HBA Card 與 DS4700 Storage 連接則 BIOS 設定開機選項中請選擇 Legacy Only 才可正常開機找到作業系統。

这里还有一些其他的FAQ解决方法。感谢总结者。http://www.weithenn.org/cgi-bin/wiki.pl?IBM_xServer_%E7%AD%86%E8%A8%98

Posted in Linux技术.

在mysql中查询以字母开头的记录

SELECT * FROM `radacct` WHERE  username REGEXP "^[a-z]";

REGEXP为MySQL中的正则使用谓词。各位可以百度查找相关使用方法。
 

Posted in 数据库.