用户名:
密   码:




      



    访问统计

     RSS 1.0


     

    2006-08-03
    Tag:Linux debian ubuntu



     发表于 11:15:50  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2006-04-29
    Tag:Linux Top

    top

    1.作用
    top命令用来显示执行中的程序进程,使用权限是所有用户。

    2.格式
    top [-] [d delay] [q] [c] [S] [s] [i] [n]

    3.主要参数
    d:指定更新的间隔,以秒计算。
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。
    n:显示更新的次数,完成后将会退出top。

    4.说明
    top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。

    图1 top命令的显示

    在图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
    PID(Process ID):进程标示号。
    USER:进程所有者的用户名。
    PR:进程的优先级别。
    NI:进程的优先级别数值。
    VIRT:进程占用的虚拟内存值。
    RES:进程占用的物理内存值。
    SHR:进程使用的共享内存值。
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
    %CPU:该进程占用的CPU使用率。
    %MEM:该进程占用的物理内存和总内存的百分比。
    TIME+:该进程启动后占用的总的CPU时间。
    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    <空格>:立刻刷新。
    P:根据CPU使用大小进行排序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c:切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。


     发表于 09:48:53  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2006-04-24
    Tag:redhat Linux update APT

    如何用APT维护Red Hat Enterprise Linux (RHEL)zt
    作者: 月下刀客  发布日期: 2005-11-18    查看数: 269   出自: http://www.linuxsky.net
    作者:Fenng
    日期:11-Nov-2004 
    出处:http://www.dbanotes.net
    版本:V0.031


    --------------------------------------------------------------------------------


    内容简介
    如何用APT(Advanced Packaging Tool)维护Red Hat Enterprise Linux (RHEL),提供对个别RHEL的用户无法升级的问题的解决办法。关键词:APT,Linux,升级,Red Hat Enterprise Linux,RHEL,YUM,RPM,依赖性

    几句前言
    Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时候,又告诉你需要Z库了--好不容易安装好Z库,发现版本还有问题......可能很多朋友都有过这个经历。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog的YUM ,Debian的APT(Advanced Packaging Tool)等。而这些软件也被开源软件爱好者们逐渐移植到别的发行版上。

    Redhat企业版Linux的的升级往往给管理员们带来不少问题:网站下载速度太慢,不够安全,当然了,更多的人是无法更新的--版权问题。经过一段时间的比较 ,感觉使用APT维护RHEL有着特殊的便利性。 (有的朋友可能会说,yum 也不错阿!是的,yum在很多时候表现的确不错,不过如果使用的Linux是RHEL的话,很难找到适合yum的资料库,"巧妇难为无米之炊"。) 现在把具体方法介绍给大家作为参考。

    APT基本介绍
    Debian GNU/Linux 是APT的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。

    安装与配置
    首先让我们安装APT工具:

    # wget http://redhat.uni-klu.ac.at/el3/apt.i386.rpm
    # rpm -Uvh apt.i386.rpm
    安装够简单吧? 我们要编辑配置文件:
    #vi /etc/apt/sources.list.d/dag.list
    添加如下内容(资料库相关的信息):
    rpm http://afs.caspur.it/ afs/italia/project/linux/cern/slc302/i386/apt os updates extras
    rpm http://redhat.uni-klu.ac.at redhat/dag/el3/i386 dag
    rpm-src http://redhat.uni-klu.ac.at redhat/dag/el3/i386 dag
    rpm http://apt.sw.be redhat/el3/en/i386 dag
    rpm-src http://apt.sw.be redhat/el3/en/i386 dag
    注: 第一条http://afs.caspur.it/ 的资料库几乎就是Redhat官方站点的内容。在写这篇文章的时候还是有效的。如果要尝试更新Kernel,还可以在第一条后面添加 kernel26 .

    如果需要更多Java相关软件,则:
    #vi /etc/apt/sources.list.d/jpackage.list
    (这一步是可选的)添加如下内容:
    rpm http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/i386 free devel
    rpm-src http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/i386 free devel
    rpm http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/generic free devel
    rpm-src http://redhat.uni-klu.ac.at redhat/jpackage/redhat-es-3/generic free devel
    如果要更新KDE的话(这一步可选的):
    #vi /etc/apt/sources.list.d/kde.list
    考虑添加如何内容:
    rpm http://apt.kde-redhat.org apt/fedora/3.0 stable
    rpm http://apt.kde-redhat.org apt/fedora/all stable
    rpm http://apt.kde-redhat.org apt/kde-redhat/3.0 stable unstable
    rpm http://apt.kde-redhat.org apt/kde-redhat/all stable unstable
    当然,这些内容是经过笔者验证的,都是可用的。从一些站点上下载的list 似乎都多多少少有点问题。
    注: 如果您发现上述的资料库失效或者是有什么更好的资料库。烦请通知我: DBAnotes@gmail.com .

    使用简介
    使用相对来说比较简单:

    #apt-get update
    #apt-get upgrade
    #apt-get check //检查依赖性
    #apt-get -f install // 解决依赖性问题
    如果要安装某工具,比如说iftop,可以这样:
    #apt-cache search iftop
    #apt-get install iftop
    apt自动解决依赖性问题,方便得很。
    要注意的是需要导入相应资料库的签名。在相关站点下载GPG key之后,用如下命令导入即可:

    #rpm --import TheKey_youDownload
    如果有耐心看到这里的话,可以发现盗版的用户或者是用RHEL进行测试的朋友可以通过这个进行升级了--要不然RHEL的up2date 总是要你输入认证信息的。

    参考信息


    APT-howto - http://www.debian.org/doc/manuals/apt-howto/index.en.html

    其他版本的APT使用问题和一些使用技巧请参考这里:

    http://dag.wieers.com/home-made/apt/FAQ.php
    http://www2.uni-klu.ac.at/support/Redhat
    http://linuxwiki.de/apt/RedHat

    =============

    本文作者
    Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
    个人技术站点:http://www.dbanotes.net/ 。可以通过电子邮件 dbanotes@gmail.com 联系到他。

     发表于 10:01:02  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2005-12-27
    Tag:Linux 进程管理 process

    在Linux系统里,当前正在运行的程序实例称为进程。比如,当你启动Apache的时候,系统会为它分配一个进程ID。然后就可以用这个ID监视和控制这个程序。   

      进程监视和控制是任何Linux系统管理员的核心任务。一个管理员可以终止("kill")、重启一个进程,甚至可以为它指定一个不同的优先级。标准的Linux命令"ps""top"通常用于查看当前的进程列表。下面我来说明如何用这些命令和其它命令来管理Linux系统中的进程。   

      用ps监视进程 

      一个监视Linux的标准工具就是"ps",它是进程状态的简称。这个命令返回正在运行的程序的信息。这些信息可能包括程序是在哪个用户名下运行的,使用了多少CPU以及运行了多长时间。如果你要手工终止程序或者确定是哪个程序让系统变慢时,这些信息是很有用的。   

      如果你只是键入了"ps"这个命令,那么只能列出运行在当前终端下的进程。下面的例子是通过远程shell运行"ps"输出的结果: 

      $ ps 

      PID TTY TIME CMD 

      4684 pts/14 00:00:00 bash 

      27107 pts/14 00:00:00 ps   

      从输出可以看出,分配给这个用户/终端的进程只有Bash shell和ps命令本身。你还可以看到为每个进程列出的PID(进程ID)和TTY、TIME和CMD。TTY指明这个进程正在运行在哪个终端上,TIME指明了这个进程已经使用了多少CPU时间,CMD则是启动这个进程的命令名称。   

      用户可以看到,标准的ps命令只能列出基本的信息。要想获得Linux系统上运行的进程的详细信息,你必须加入一些命令行参数。   

      加入ps常用的aux参数后可以显示其他用户启动的进程(a)、查看系统中属于自己的进程(x)以及启动这个进程的用户和它启动的时间(u)。   

      现在还有其它更多的信息,增加了USER、 %CPU、%MEM、 VSZ、RSS、STAT和START这几个域。现在我们来看一下这些信息是什么含义。   

       首先,用户可以看到所有的进程,而不仅仅是运行在终端上的那些。USER域指明了是哪个用户启动了这个命令。很多进程和系统一起启动,而且会把根或者一些系统帐号列为USER。当然,其它一些进程是单独运行的。这个信息本身就可以帮助你缩小问题范围。假如某个用户启动了脚本,占用了服务器大量的I/O。如果能马上找到是谁在运行这个程序,那么就可以大大加快解决问题的速度。   

      %CPU、 %MEM、VSZ和RSS这几个域都与系统资源有关。首先,用户可以查看某个进程占用了多少CPU。这个信息是实时显示的,所以很难用ps捕捉峰值。可能用户会发现,为了找到引发问题的那个进程需要不停地运行ps命令。   

      除了CPU使用情况,还可以看到内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小)。VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间,而RSS指明了当前实际占用了多少内存。如果能够了解一个进程当前占用了多少内存,那么就可以确定这个进程是在正常运行还是出现了异常。程序通常都会消耗比正常情况更多的内存和CPU。虽然程序员都在尽力确保代码正确地使用资源,但是有时候还是要由管理员来决定终止还是重启进程。   

      用户可能会注意到在ps aux命令的输出结果里,大部分TTY域有个""。这是因为这些程序或者在系统启动的时候就开始运行了,或者是由初始化脚本(init script)启动的。这些进程没有控制终端,所以作了标记。另外,linux-sanity-check命令有一个TTY的值为pts/14。这个命令是远程连接运行的,有与其关联的一个终端。当你的机器开放了多条连接,而你又想确定某个命令运行在哪个窗口的时候,这个信息是很有用的。   

      STAT显示了进程当前的状态。在我们的例子里,很多进程处在睡眠状态,STAT域里的"S"指明了这一状态。这仅仅表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性。linux-sanity-check命令则有一个R状态,这个状态表明进程当前正在运行。有时候你可以浏览一下这个列表然后找那些R状态的进程。如果大部分进程处在睡眠状态而又有问题发生,那么只关注那些正在运行的进程是最好的方法。那种状态不一定能说明发生了问题,但是有时候如果进程运行的时间过长可能意味着发生了某些深层次的问题。 


     发表于 14:30:42  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2005-12-22
    Tag:cron crontab Linux

    cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

    cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。要调度一次性的任务,请参阅第 37.2 节

    要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。

    37.1.1. 配置 cron 任务

    cron 的主配置文件是 /etc/crontab,它包括下面几行:

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    
    # run-parts
    01 * * * * root run-parts /etc/cron.hourly
    02 4 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly

    前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

    /etc/crontab 文件中的每一行都代表一项任务,它的格式是:

    minute   hour   day   month   dayofweek   command

    • minute — 分钟,从 0 到 59 之间的任何整数

    • hour — 小时,从 0 到 23 之间的任何整数

    • day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

    • month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

    • dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

    • command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

    在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

    整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

    用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

    正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

    开头为井号(#)的行是注释,不会被处理。

    如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。

    如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。范例请参见例 37-1

    # record the memory usage of the system every monday 
    # at 3:30AM in the file /tmp/meminfo
    30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
    # run custom script the first day of every month at 4:10AM
    10 4 1 * * /root/scripts/backup.sh

    例 37-1. crontab 的例子

    根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUALEDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。

    cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

    37.1.2. 控制对 cron 的使用

    /etc/cron.allow/etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。

    无论使用控制文件中的规定如何,根用户都总是可以使用 cron。

    如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。

    如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

    37.1.3. 启动和停止服务

    要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用 /sbin/service crond stop 命令。推荐你在引导时启动该服务。


     发表于 09:45:41  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2005-12-21
    Tag:Linux Fedora

    一台旧机装了好多次都不成功,google一下原来因为RedHat对旧款CD-ROM的驱动支持很差。只好从硬盘装了。

    用了Grub for Dos也是不成,后来用第一张碟上的一个iso映象烧了张启动盘,启动之后再选择从硬盘安装。OK!搞定了。


     发表于 09:36:36  阅读全文  |  评论(0)  |  Trackback(0)  | 编辑
     
    2005-12-20
    Tag:Linux Fedora redhat install

    从硬盘安装Fedora Core 4

    由于我的IBM240没有光驱,所以安装Fedora Core 4我选择硬盘安装,但Fedora Core 4跟redhat 9.0的硬盘安装方法有所不同,redhat不需要要安装其他软件,只要把光盘的某个目录拷贝出,然后dos下启动就可以安装,但到了Fedora Core 已经没了类似的目录,所以硬盘安装模式有点变化。

    1:首先当然是下载Fedora Core 4的光盘镜像了,很多地方可以下载,这里提供一个

    ftp://mirror.switch.ch/mirror/fedor...-i386-disc1.iso
    ftp://mirror.switch.ch/mirror/fedor...-i386-disc2.iso
    ftp://mirror.switch.ch/mirror/fedor...-i386-disc3.iso
    ftp://mirror.switch.ch/mirror/fedor...-i386-disc4.iso

    2:把CD1的isolinux目录解压到c:下

    3:下载Grub For Dos
    ftp://ftp2.linuxeden.com/tools/grub_for_dos-0.2.0pre13.tar.gz
    解压把里面的文件和文件夹剪切出,放在解压后目录的外边.此时的路径为:C:boot

    4:修改boot.ini
    最后面添加这么一行
    C:grldr="GRUB For Dos

    保存退出

    5:修改C:bootgrubmenu.lst

    添加这么几行

    title Install-Fedora Core 4
    kernel (hd0,0)/isolinux/vmlinuz
    initrd (hd0,0)/isolinux/initrd.img

    注意:我的C盘这里是hd0,0表示第一个ide硬盘第一个分区,大家可根据自己的需要修改硬盘参数

    ok,重新启动系统,会看到GRUB For Dos 菜单,选择后,在安装媒介选择硬盘安装就行。


     发表于 16:53:27  阅读全文  |  评论(2)  |  Trackback(0)  | 编辑
     
    分页共1页 1