WINDOWS常见文件夹完全解析

[晴 2010/01/12 10:36 | by 井宿 ]
C:
├─WINDOWS
│   ├─system32(存放Windows的系统文件和硬件驱动程序)
│   │   ├─config(用户配置信息和密码信息)
│   │   │   └─systemprofile(系统配置信息,用于恢复系统)
│   │   ├─drivers(用来存放硬件驱动文件,不建议删除)
│   │   ├─spool(用来存放系统打印文件。包括打印的色彩、打印预存等)
│   │   ├─wbem(存放WMI测试程序,用于查看和更改公共信息模型类、实例和方法等。请勿删除)
│   │   ├─IME(用来存放系统输入法文件,类似WINDOWS下的IME文件夹)
│   │   ├─CatRoot(计算机启动测试信息目录,包括了计算机启动时检测的硬软件信息)
│   │   ├─Com(用来存放组件服务文件)
│   │   ├─ReinstallBackups(电脑中硬件的驱动程序备份)
│   │   ├─DllCache(用来存放系统缓存文件。当系统文件被替换时,文件保护机制会复制这个文件夹下的文件去覆盖非系统文件)
│   │   ├─GroupPolicy(组策略文件夹)
│   │
│   ├─system(系统文件夹,用来存放系统虚拟设备文件)
│   ├─$NtUninstall$(每给系统打一个补丁,系统就会自动创建这样的一个目录,可删除)
│   ├─security(系统安全文件夹,用来存放系统重要的数据文件)
│   ├─srchasst(搜索助手文件夹,用来存放系统搜索助手文件,与msagent文件夹类似)
│   ├─repair(系统修复文件夹,用来存放修复系统时所需的配置文件)
│   ├─Downloaded Program Files(下载程序文件夹,用来存放扩展IE功能的ActiveX等插件)
│   ├─inf(用来存放INF文件。INF文件最常见的应用是为硬件设备提供驱动程序服务,不建议删除其中文件)
│   ├─Help(Windows帮助文件)
│   ├─Config(系统配置文件夹,用来存放系统的一些临时配置的文件)
│   ├─msagent(微软助手文件夹,存放动态的卡通形象,协助你更好地使用系统。若觉的没有必要,可直接删除)
│   ├─Cursors(鼠标指针文件夹)
│   ├─Media(声音文件夹,开关机等wav文件存放于此)
│   ├─Mui(多语言包文件夹,用来存放多国语言文件。简体中文系统中这个文件夹默认是空的,但不建议删除此文件夹)
│   ├─java(存放Java运行的组件及其程序文件。不建议删除其中文件)
│   ├─Web
│   │   ├─Wallpaper(存放桌面壁纸的文件夹)
│   │  
│   ├─addins(系统附加文件夹,用来存放系统附加功能的文件)
│   ├─Connection Wizard(连接向导文件夹,用来存放“Internet连接向导”的相关文件)
│   ├─Driver Cache(驱动缓存文件夹,用来存放系统已知硬件的驱动文件)
│   │   └─i386(Windows操作系统自带的已知硬件驱动文件,可删除以节省空间)
│   ├─TEMP(系统临时文件夹,其中内容可以全部删除)
│   ├─twain_32(扫描仪相关)
│   ├─AppPatch(应用程序修补备份文件夹,用来存放应用程序的修补文件)
│   ├─Debug(系统调试文件夹,用来存放系统运行过程中调试模块的日志文件)
│   ├─Resources(系统资源文件夹,用来存放系统SHELL资源文件,就是我们在桌面上所看到的主题)
│   │   └─Themes(桌面主题都存放于此,可删除无用主题)
│   ├─WinSxS(存储各个版本的Windows XP组件,减少因为DLL文件而引起的配置问题)
│   ├─ime(输入法信息)
│   ├─PCHealth(用来存放协调、配置和管理计算机正常运行的文件)
│   │   └─HelpCtr(帮助和支持)
│   │       ├─Binaries(我们常用的msconfig就在这里哟)
│   ├─Offline Web Pages(脱机浏览文件存放于此)
│   ├─Prefetch(预读取文件夹,用来存放系统已访问过的文件的预读信息(此信息是系统在访问时自动生成的新信息),以加快文件的访问速度,其扩展名为“PF”。可以将此文件夹中的文件删除)
│   ├─ShellNew
│   ├─Fonts(字体文件夹。要安装某种字体只需将字体文件复制到该目录下即可)
│   ├─pss(用来备份系统启动配置文件的,一般对“Boot.ini”、“System.ini”和“Win.ini”三个文件进行备份,扩展名为“backup”。如果系统原有的这三个文件损坏的话,可以从这里进行恢复。不建议删除)
│   ├─Registration(注册文件夹,用来存放用于系统COM+或者其他组件注册的相关文件。不建议删除这里的文件)
│   └─Downloaded Installations(存放一些使用Windows Installer技术的安装程序,主要用来对程序进行修复等操作)
├─Documents and Settings
│   ├─Default User
│   │   ├─Application Data(通用应用程序数据文件夹。此处存放着已经安装的一些应用程序的专用数据)
│   │   ├─桌面
│   │   ├─Favorites(收藏夹)
│   │   ├─NetHood(网络共享目录)
│   │   ├─My Documents(我的文档)
│   │   ├─PrintHood(打印共享目录)
│   │   ├─Recent(最近打开的文档)
│   │   ├─SendTo(鼠标右键的发送到)
│   │   ├─「开始」菜单
│   │   ├─Templates(模板文件夹,可能有Word、Excel等的模板文件)
│   │   └─Local Settings
│   │       ├─Application Data
│   │       └─Temp(临时文件目录。在系统和软件的运行过程中产生的临时文件就存放在于此。需定期清理)
│   │       └─Temporary Internet Files(Internet临时文件夹。需定期清理)
│   ├─All Users(所有用户文件夹,这里的更改对所有用户有效)
│   └─Administrator(系统管理员帐户的文件夹)
├─Program Files
│   ├─Common Files(共享的应用程序文件存放于此)
│   ├─Internet Explorer(IE浏览器)
│   ├─ComPlus Applications(COM+ 组件的配置和跟踪,一般为空)
│   ├─Windows Media Player(WINDOWS媒体播放器)
│   ├─WindowsUpdate(用于Windows的升级,可删除)
│   ├─InstallShield Installation Information
│   ├─Uninstall Information(存放软件反安装信息,删除后可能导致部分软件无法卸载)
├─wmpub(windows media service的目录)
├─boot(一键还原等软件的文件夹)
├─Inetpub(IIS文件夹)
├─Downloads(Flashget默认下载文件夹)
├─System Volume Information(系统还原文件夹)
└─TDdownload(迅雷默认下载文件夹)
Tags: ,
概述

kexec是一个快速启动机制,允许通过已经运行的内核的上下文启动一个Linux内核,不需要经过BIOS。BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器。这种办法可以为经常启动机器的开发者节省很多时间。

kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。

第一个内核保留了内存的一部分,第二个内核可以用来启动。注意,在启动时,kdump保留了一定数量的重要的内存,这改变了紅帽企业Linux 5最小内存需求。为了计算系统需要的真正最小内存,可以参看 http://www.redhat.com/rhel... 上列出的最小内存需求,加上kdump使用的内存数量,以决定真正的最小内存的需求。

因为第一个内核的内存内容已经被保留,所以kexec可以不经过BIOS,启动捕获内核。这是内核崩溃转储的根本。

怎样配置kdump

1.确认kexec-tools已经安装:

#rpm -q kexec-tools

2.配置/etc/kdump.conf文件,指定vmcore将被转储的路径。可以通过scp拷贝到另一个服务器,也可以是裸设备,或者本地的文件系统。


3.修改一些启动参数,为捕获很保留一块内存。对于i386和x86_64架构,编辑/etc/grub.conf,在内核行的末尾添加 crashkernel=128@16M。

下面是一个带有kdump选项的/etc/grub.conf文件:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/hda1
#          initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Client (2.6.17-1.2519.4.21.el5)
       root (hd0,0)
       kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M
       initrd /boot/initrd-2.6.17-1.2519.4.21.el5.img


4.修改之后,重启系统。128M内存(从16M开始)不被正常的系统使用,为捕获内核保留。注意,free -m的输出会显示内存比不加参数时少了128M,这就是我们所期望的。

注意:可以使用小于128M,但是只使用64M做测试被证实是不可靠的。

5.现在,保留内存已经设置了,打开kdump初始脚本,启动服务:

#  chkconfig kdump on
#  service kdump start

6.可以通过kexec加载内核镜像,让系统准备捕获一个崩溃时产生的vmcore。可以通过sysrq强制系统崩溃:

# echo "c" > /proc/sysrq-trigger

这造成kernel panic,紧跟着系统重启kdump内核。当启动进程进入到启动kdump服务器时,vmcore将会被拷贝到你在/etc/kdump.conf文件中指定的位置。

注意:

终端frame-buffer和X将运行不正常。在运行一些类似于在内核配置上添加了"vga=791"或者运行X的系统,在通过kexec启动内核时,终端显示将不清楚。记住,kdump内核仍旧能够创建转储。当系统重启,显示将会恢复到正常状态。
Tags: , ,

VsFTP出现500 OOPS 的解决办法

[晴 2009/12/30 11:30 | by 井宿 ]
cannot change directory:/home/***
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died

解决方法:
在终端输入命令:
setsebool ftpd_disable_trans 1
service vsftpd restart
Tags: , ,
在 Apache 服务器中,KeepAlive 是一个布尔值,On 代表打开,Off 代表关闭,这个指令在其他众多的 HTTPD 服务器中都是存在的。

  KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭TCP 连接,可以提高用户访问速度。

  那么我们考虑3种情况:
  1。用户浏览一个网页时,除了网页本身外,还引用了多个 javascript 文件,多个 css 文件,多个图片文件,并且这些文件都在同一个 HTTP 服务器上。
  2。用户浏览一个网页时,除了网页本身外,还引用一个 javascript 文件,一个图片文件。
  3。用户浏览的是一个动态网页,由程序即时生成内容,并且不引用其他内容。

  对于上面3中情况,我认为:1 最适合打开 KeepAlive ,2 随意,3 最适合关闭 KeepAlive

  下面我来分析一下原因。

  在 Apache 中,打开和关闭 KeepAlive 功能,服务器端会有什么异同呢?

  先看看理论分析。

  打开 KeepAlive 后,意味着每次用户完成全部访问后,都要保持一定时间后才关闭会关闭 TCP 连接,那么在关闭连接之前,必然会有一个Apache 进程对应于该用户而不能处理其他用户,假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50个独立用户访问,那么系统中 Apache 的总进程数就是 10 * 50 = 500 个,如果一个进程占用 4M 内存,那么总共会消耗 2G内存,所以可以看出,在这种配置中,相当消耗内存,但好处是系统只处理了 50次 TCP 的握手和关闭操作。

  如果关闭 KeepAlive,如果还是每秒50个用户访问,如果用户每次连续的请求数为3个,那么 Apache 的总进程数就是 50 * 3= 150 个,如果还是每个进程占用 4M 内存,那么总的内存消耗为 600M,这种配置能节省大量内存,但是,系统处理了 150 次 TCP的握手和关闭的操作,因此又会多消耗一些 CPU 资源。

  在看看实践的观察。

  我在一组大量处理动态网页内容的服务器中,起初打开 KeepAlive功能,经常观察到用户访问量大时Apache进程数也非常多,系统频繁使用交换内存,系统不稳定,有时负载会出现较大波动。关闭了 KeepAlive功能后,看到明显的变化是: Apache 的进程数减少了,空闲内存增加了,用于文件系统Cache的内存也增加了,CPU的开销增加了,但是服务更稳定了,系统负载也比较稳定,很少有负载大范围波动的情况,负载有一定程度的降低;变化不明显的是:访问量较少的时候,系统平均负载没有明显变化。


  总结一下:
  在内存非常充足的服务器上,不管是否关闭 KeepAlive 功能,服务器性能不会有明显变化;
  如果服务器内存较少,或者服务器有非常大量的文件系统访问时,或者主要处理动态网页服务,关闭 KeepAlive 后可以节省很多内存,而节省出来的内存用于文件系统Cache,可以提高文件系统访问的性能,并且系统会更加稳定。


  补充1:
  关于是否应该关闭 KeepAlive 选项,我觉得可以基于下面的一个公式来判断。

  在理想的网络连接状况下,系统的 Apache 进程数和内存使用可以用如下公式表达:
HttpdProcessNumber = KeepAliveTimeout * TotalRequestPerSecond / Average(KeepAliveRequests)
HttpdUsedMemory = HttpdProcessNumber * MemoryPerHttpdProcess

  换成中文:
总Apache进程数 = KeepAliveTimeout * 每秒种HTTP请求数 / 平均KeepAlive请求
Apache占用内存 = 总Apache进程数 * 平均每进程占用内存数

  需要特别说明的是:
  [平均KeepAlive请求] 数,是指每个用户连接上服务器后,持续发出的 HTTP 请求数。当 KeepAliveTimeout 等 0或者 KeepAlive 关闭时,KeepAliveTimeout 不参与乘的运算从上面的公式看,如果 [每秒用户请求]多,[KeepAliveTimeout] 的值大,[平均KeepAlive请求] 的值小,都会造成 [Apache进程数] 多和 [内存]多,但是当 [平均KeepAlive请求] 的值越大时,[Apache进程数] 和 [内存] 都是趋向于减少的。

  基于上面的公式,我们就可以推算出当 平均KeepAlive请求 <= KeepAliveTimeout 时,关闭 KeepAlive 选项是划算的,否则就可以考虑打开。

    补充2:  KeepAlive 该参数控制Apache是否允许在一个连接中有多个请求,默认打开。但对于大多数论坛类型站点来说,通常设置为off以关闭该支持。

    补充3:  如果服务器前跑有应用squid服务,或者其它七层设备,KeepAlive On 设定要开启持续长连接

实际在 前端有 squid 的情况下, KeepAlive 很关键,记得 On
Tags: ,

windows2003 vpn 简单架设

[晴 2009/12/21 11:17 | by 井宿 ]
虚拟专用网络(VPN-virtual private network)在VPN客户机与VPN网关之间创建一个加密的、虚拟的点对点连接,保障经过Internet部分的安全性。
  比如公司人员出差到外地或在家中,需要访问公司企业网资源。如果直接拨入的话,经过Internet这部分的安全性无法保证,未加密的数据包很容易被人监听或利用网络嗅探器捕获。再者如果用户出差到外地,直接拨入到公司网络,上网费花的是长途话费。如果使用VPN,可以先拨到当时的ISP,通过Internet再到公司的企业网,这样上网费花的是市话费。这就是VPN的两个功能,当然我们一般更关心前者。
  实现VPN,可以通过硬件,也可以利用Windows 2000 Server的RRAS实现VPN服务器,这就是本文要讨论的。
一、 VPN服务器端配置
  要求:一台2000S/AS,是否域成员均可实现,但细节上有差别,后面讨论。两块网卡,一块连Internet,一块连公司企业内部网(Intranet)。
  操作:
  1、 开始/程序/管理工具/路由和远程访问/计算机名上右键/配置并启用路由和远程访问。
  2、 将启动向导,下一步/第三项:虚拟专用网络(VPN)服务器。
说明:如果选第三项VPN服务器,那么它仅仅只接受VPN用户连入,默认VPN端口数为:PPTP端口128个,L2TP端口128个。而且需要说明的是:即使当VPN用户拨通VPN服务器后,已经可以通过VPN网关访问企业内部网资源了,但这时远程VPN用户Ping VPN服务器的对外网卡,仍是不通的,因为它这时已经是隧道的一部分了。但内网用户Ping VPN服务器的对外网卡是通的。
  如果想使VPN服务器既接受VPN客户连入,也接受非VPN客户(即普通用户)连入,这时可选第二项:远程访问服务器,默认VPN端口数为:PPTP端口5个,L2TP5端口5个;也可以选第五项:手动配置服务器。这时的现象是远程的VPN用户可以Ping通VPN服务器的对外网卡。
  3、 协议:TCP/IP等。
  说明:协议一般必须保证有TCP/IP,如果需要其它协议也可以添加上,但用户端也必须有相应协议才能拨通。
  4、 Internet连接:对外网卡
  5、 内部网络:对内网卡
注意:对外,对内网卡看清楚,切不可选错。
  6、 远程客户IP分配:自动或来自一个指定的地址范围
说明:网络中若有可用的DHCP服务器,选自动。如果没有,手动指定一个内部网的合法IP地址段(注意不要冲突)即可。至少2个,因为一个分配给远程VPN用户,VPN服务器对外的虚拟PPP/SLIP网卡还需要一个内部IP。
  7、 是否使用RADIUS服务器:否
说明:如果不需要统一的验证、不需要记录用户上网情况进行收费,不必使用。
  若要使用RADIUS(IAS服务器)验证,必须结合域,注意:应以域管理员身份配置IAS,并且在IAS上右键/在AD中注册服务,否则需要手动在AD用户和计算机的“RAS and IAS Servers”组成员中添加IAS服务器的计算机帐号。
  8、 完成
Tags: , , , ,
lvs说明:目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);
八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下(我们将在其他章节对其工作原理进行详细描述),

Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

Virtual Server via IP Tunneling(VS/TUN)
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

Virtual Server via Direct Routing(VS/DR)
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。

针对不同的网络服务需求和服务器配置,IPVS调度器实现了如下八种负载调度算法:使用比较多的是以下四种:

轮叫(Round Robin)
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

加权轮叫(Weighted Round Robin)
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

最少链接(Least Connections)
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

加权最少链接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

女人花

[晴 2009/12/15 15:40 | by 井宿 ]
点击在新窗口中浏览此图片
Tags:
 环境:CentOS 5.3 x86_64下,/dev/sdb1为数据分区/data0,EXT3文件系统。
  前因:误删了/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件。由于忘了备份httpcws.cpp文件,重新开发工作量较大,因此只有恢复该文件一条路可走。

  debugfs命令针对EXT2分区还行,但对EXT3分区就帮不上忙了。偶然发现的一款开源软件,解决了我的大忙。该软件下载网址为:
  http://code.google.com/p/e...

  1、先安装ext3grep软件:

wget http://ext3grep.googlecode...
tar zxvf ext3grep-0.10.1.tar.gz
cd ext3grep-0.10.1
./configure
make
make install
  2、umount /data0分区:

umount /data0

  如果提示busy,先kill正在使用这个目录的进程,再umount:

fuser -k /data0
umount /data0

3、查询所有Inode,(执行需要几分钟~十多分钟):

ext3grep /dev/sdb1 --ls --inode 2

  
4、逐级查找Inode,看是否能找到httpcws.cpp文件(此步骤也可省略):

5、恢复/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件:

ext3grep /dev/sdb1 --restore-file tcsql/cankao/phpcws-1.5.0/httpcws.cpp

  如果提示以下信息,则表示恢复成功:
  Restoring tcsql/cankao/phpcws-1.5.0/httpcws.cpp

  这时,执行ext3grep命令的当前目录下将会自动生成一个名为RESTORED_FILES的文件夹,文件夹下的tcsql/cankao/phpcws-1.5.0/httpcws.cpp即为恢复的文件。查看了一下,和被删除前的内容一样,大功告成。

6、重新mount /data0分区:
Tags:

kernel panic

[晴 2009/12/14 13:33 | by 井宿 ]
kernel panic 主要有以下几个出错提示:

Kernel panic-not syncing fatal exception in interrupt
kernel panic - not syncing: Attempted to kill the idle task!
kernel panic - not syncing: killing interrupt handler!
Kernel Panic - not syncing:Attempted to kill init !

查看了一下 linux的源码文件,找到相关位置

kernel/panic.c

NORET_TYPE void panic(const char * fmt, ...)
{
static char buf[1024];
va_list args;

bust_spinlocks(1);
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
printk(KERN_EMERG "Kernel panic - not syncing: %s\n",buf);
bust_spinlocks(0);


kernel/exit.c

if (unlikely(in_interrupt()))
panic("Aiee, killing interrupt handler!"); #中断处理
if (unlikely(!tsk->pid))
panic("Attempted to kill the idle task!"); #空任务
if (unlikely(tsk->pid == 1))
panic("Attempted to kill init!"); #初始化



从其他源文件和相关文档看到应该有几种原因:

1、硬件问题

使用了 SCSI-device 并且使用了未知命令

#WDIOS_TEMPPANIC Kernel panic on temperature trip
#
# The SETOPTIONS call can be used to enable and disable the card
# and to ask the driver to call panic if the system overheats.
#
# If one uses a SCSI-device of unsupported type/commands, one
# immediately runs into a kernel-panic caused by Command Error. To better
# understand which SCSI-command caused the problem, I extended this
# specific panic-message slightly.
#
#read/write causes a command error from
# the subsystem and this causes kernel-panic
Tags: ,
在Bash shell中经常会见到一些比较特殊的符号,本人现收集与此,以供查阅:

位置参数:
详见ABS(Advanced Bash Shell)中文翻译版103页第9章第一节内部变量,当然英文版ABS都一样啦

$1, $2, $3等等...
位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个变量.
此数目可以任意多,但只有前9个可以被访问,使用shift命令可以改变这个限制。
(具体见Example 4-5 和Example 11-15)
$0
$0表示当前执行的进程名,script 本身的名字,或者在正则表达式中表示整行输出

$#
命令行或者是位置参数的个数.(见Example 33-2)
$*
所有的位置参数,被作为一个单词.
注意:"$*"必须被""引用.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词.
注意:"$@"必须被""引用.

其他的特殊参数
$-
传递给脚本的falg(使用set 命令).参考Example 11-15.
显示shell使用的当前选项,与set命令功能相同
注意:这起初是ksh 的特征,后来被引进到Bash 中,但不幸的是,在Bash 中它看上去也不
能可靠的工作.使用它的一个可能的方法就是让这个脚本进行自我测试(查看是否是交
互的).
$!
在后台运行的最后的工作的PID(进程ID).
$_
保存之前执行的命令的最后一个参数.
$?
命令,函数或者脚本本身的退出状态(见Example 23-7)
用于检查上一个命令,函数或者脚本执行是否正确。(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错。)
$$
脚本自身的进程ID.这个变量经常用来构造一个"unique"的临时文件名.
(参考Example A-13,Example 29-6,Example 12-28 和Example 11-25).
这通常比调用mktemp 来得简单.
注意事项:
[1] 当前运行的脚本的PID 为$$.
[2] "argument"和"parameter"这两个单词经常不加区分的使用.在这整本书中,这两个
单词的意思完全相同.(在翻译的时候就未加区分,统统翻译成参数)
Tags: , , , , , , , ,
分页: 7/114 第一页 上页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下页 最后页 [ 显示模式: 摘要 | 列表 ]