磁盘配额(Quota)
时间:2006-12-22 来源:h0000001
什么是配额
配额就是有多少限额的意思,如果用在容量空间上,以Linux来说,就是有多少容量限制.
使用配额时有下面几个基本限制
1.实际运作时,配额是针对整个分区进行限制.
2.Linux系统核心必须支持quota模块
3.新的quota模块,使用的默认文件(aquota.user,aquota.group)不同于旧版本的quota.user,quota.group.旧版本的quota可以藉由convertquota程序进行转换.Kernel 2.4.xx的核心版本支持新的quota模块.
quota程序的限制内容主要分为以下几个部分
soft: 这是最低限制容量,用户在宽限期间的容量可以超过soft,但必须在宽限时间内将磁盘容量降低到soft的容量限制下.
hard: 这是绝对不能超过的容量.跟soft相比,通常hard的限度会比soft的限度高,其实,soft到hard之间的容量就是宽限的容量,可以起到警示作用.
宽限时间: 宽限时间就是用户使用的空间超过了soft limit,但还没有到达hard limit,在这个宽限时间内,用户需要将使用的磁盘容量降低到soft limit之下.当用户的磁盘容量使用情况超过soft limit时,宽限时间就会自动启动,而在用户将容量降低至soft limit之下,宽限时间就会自动取消.
基本的quota指令
大致分为两种:
1.查询功能(quota,quotacheck,quotastats,warnquota,repquota)
2.编辑quota的内容(edquota,setquota)
quota 显示当前某个群组或者某个用户的quota限值.
语法: #quota [-guvs][user,group]
-g: 显示群组
-u: 显示用户
-v: 显示quota的值
-s: 选择显示inode或硬盘空间
例:#quota -guvs
#quota -uvs test
quotacheck 扫描某个磁盘的quota空间
语法: #quotacheck [-auvg] /yourpath
-a: 扫描/etc/mtab中所有己经安装并支持quota的硬盘
-u: 扫描用户的文件与目录
-v: 显示扫描过程
-g: 扫描群组使用的文件与目录
注:Linux系统特别强调,在使用quota时,需要特别注意在重启时先将quota关闭
edquota 编辑"个人"或"群组"的quota数值.
语法: #edquota [-u user][-g group][-t]
#edquota -p user_demo -u user
-u: 编辑user的quota
-g: 编辑group的quota
-t: 编辑宽限时间(就是超过quota值后,还能使用硬盘的宽期限)
-p: 复制模板(己建立的用户或群组)到加一个用户(或群组)
[root@mail root]edquota root
Disk quotas for user root (uid 0):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 1183968 0 0 44 0 0
说明: filesystem: 这就是分区的意思 blocks: 这表示当前用户root(uid 0)在/dev/hda5这个filesystem所耗用的磁盘容量,也就是当前使用空间.单位是Kbytes.这个信息是quota程序自己计算出来的,所以不用修改. soft与hard:这是root在这个filesystem之内的当前quota限值.当值为0时,表示没有限制. inodes: 当前所用inode的状态,也是quota自己计算出来,所以不要修改. quotaon 启动quota 语法: #quotaon [-a][-uvg directory] -a: 启动所有的quota设定(会自动寻找/etc/mtab的设定) -u: 激活用户的quota -g: 启动群组的quota设定 -v: 显示信息 quotaoff 关闭quota限制 语法: #quotaoff -a -a: 关闭所有的quota设定(会自动寻找/etc/mtab的设定) quota实践 quota的功能有很多,包括: 限制某一群组所能使用的最大磁盘配额(使用群组限制) 限制某一用户的最大磁盘配额(使用用户限制) 以Link方式使邮件可以作为限制的配额(更改/var/spool/mail这个路径) 使用quota磁盘配额的几个步骤 1.开启磁盘的quota功能:编辑/etc/fstab,加入usrquota和grpquota,使得准备开放的quota磁盘可以支持quota; 2.预扫描磁盘的使用情况:使用quotacheck扫描我们要使用的磁盘; 3.建立用户的quota:使用edquota来编辑每个用户或群组的可使用空间; 4.启动quota:使用quotaon. 注:由于真正的quota读取的是/etc/mtab这个文件,但这个文件需要重新启动之后才能够以/etc/fstab的新数据进行改写,所以这时可以: 1.重新启动系统==>reboot 2.重新使用remount filesystem来驱动设定值. 例行性命令at与crontab at: 这个工作仅执行一次就从Linux系统的流程中取消 crontab: 这个工作将持续例行性地做下去 at 这个指令其实就是atd这个服务.仅执行一次. 启动这个服务: #chkconfig --add atd 输入at这个动作会将工作流程写入/var/spool/at目录下,然后等待系统执行它. at指令默认是所有人都能执行,不过root用户可以使用/etc/at.allow与/etc/at.deny这两个文件进行限制:其限制原理: 1.先找寻/etc/at.allow文件,存在于这个文件中的用户才能使用at,不在这个文件中的用户则不能使用at(即使没有写在at.deny文件中) 2.如果没有/etc/at.allow就寻找/etc/at.deny文件,存在于at.deny的用户不能使用at,而不存在at.deny文件中的用户就可以使用at 3.如果两个文件都不存在,则只有root用户可以使用at指令 at的语法 #at [-m] TIME (输入工作指令) #atq (查看当前工作流程) #atrm [jobnumber] (删除流程) 说明: -m: 执行at规范的工作流程时,将屏幕输出结果mail结输入指令的用户 TIME: 时间格式,有如下几个: HH:MM YYYY-MM-DD ex> 04:00 2006-12-23 HH[pm;am] + number [hours;days;weeks] ex> 4pm + 3days HH:MM ex>12:00 HH[pm;am][Month][Day] ex>1pm May 30 jobnumber: 即是每个at工作流程都有的编排顺 在输入at之后便进入命令行模式,在这里你可以重复输入命令,但是离开时按下Ctrl+D就可以退出.退出之后,系统显示这个工作流程的编排顺序与用户. 循环执行: crontab 这个循环的例行性命令其实就是cron服务(crond).输入crontab指令之后,会将命令写入/var/spool/cron目录中. crontab指令的语法: #crontab [-u user][-l | -e | -r] 说明: -u user: 这个指令只有root能输入,查看或编译其他用户的crontab内容 -l: 列出crontab的内容 -e: 编辑crontab的内容 -r: 删除crontab的内容 编辑crontab的语法格式: * * * * * command 说明(从左至右依次说明) *: 表示分钟(0-59),*代表每分钟,*/5代表每5分钟,1,3,5,10代表第1,3,5,10分钟的时候. *: 表示小时(0-23) *: 表示日期(1-31) *: 表示月份(1-12) *: 表示周(0-6) command: 表示要执行的命令 系统的crontab设定: /etc/crontab 编辑系统的crontab只要直接编辑/etc/crontab文件就可以. 注:由于crontab是读取到内存中,所以在修改完/etc/crontab之后可能不会马上执行,这时需要重新启动crond服务. /etc/rc.d/init.d/crond restart 解析/etc/crontab文件的内容 [root@mail bin]# cat /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
[root@mail bin]#
MAILTO=root: 即当/etc/crontab文件中的例行性命令发生错误时,会将错误信息或屏幕显示的信息传给root用户,因为root无法在客户端收信,因此,这里通常被改成自己的账号,好及时了解到系统的状况. 01 * * * * root run-parts /etc/cron.hourly: 这一行说的就是在每个小时的第一分钟,系统会以root层级的用户到/etc/cron.hourly目录下执行所有可以执行的文件.root 代表执行的层级为root身份.run-parts表示后面接的/etc/hour.daily是一个目录内的所有可以执行的文件. 注: 基本上,/etc/crontab支持两种指令的方式,一种是直接以指令形式输入,一种则是以目录形式输入. 指令形式: 01 * * * * test mail -s test test< /home/test/test.txt 用户是test,且每小时执行一次指令mail... 也可以如下所示 */5 * * * * root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg 目录形式: */5 * * * * root run-parts /etc/runcron 建立一个/etc/runcron的目录,将每隔5分钟执行一次的可执行文件都写到该目录下,就可以让系统每时每5分钟执行一次该目录下所有的所有可执行文件. 安全防护:/var/log/cron记录文件 程序与资源管理 查找指令说明的指令: #man command #info command /etc/man.config Linux主机内的文件数据 /usr/share/doc 留心/var/log中的文件 背景工作管理 & 与 Ctrl+z & 让屏幕中的工作在背景下执行.让背景中的工作重新在屏幕上执行,可以使用fg 语法: #command & Ctrl+z 将当前正在屏幕上进行的工作丢到背景下. jobs,fg与bg,kill jobs 查看背景工作下有哪些工作 语法: #jobs fg 将背景中的指令移到屏幕上来 语法: #fg $number bg 将背景中的程序由stopped变成running. 语法: #bg %number kill 杀提工作中的程序 语法: #kill -signal %number signal -1: 重新读取参数配置文件(类似reload) -2: 用户中断该工作.类似使用ctrl+c中断一个工作 -9: 立刻杀掉一个工作,不论该工作是否为死程序 -15: 停止一个工作(这是默认值) 程序与资源管理 ps 报告进程状态 语法: #ps -aux -a: 选择列出所有的程序 -u: 列出所有用户的程序 -x: 列出所有tty的程序 [root@mail root]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1368 76 ? S Dec09 0:03 init
root 2 0.0 0.0 0 0 ? SW Dec09 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW Dec09 0:00 [kapmd]
root 4 0.0 0.0 0 0 ? SWN Dec09 0:00 [ksoftirqd_CPU0]
root 9 0.0 0.0 0 0 ? SW Dec09 0:01 [bdflush]
root 5 0.0 0.0 0 0 ? SW Dec09 0:21 [kswapd]
root 6 0.0 0.0 0 0 ? SW Dec09 0:00 [kscand/DMA]
root 7 0.0 0.0 0 0 ? SW Dec09 0:02 [kscand/Normal]
root 8 0.0 0.0 0 0 ? SW Dec09 0:00 [kscand/HighMem]
root 10 0.0 0.0 0 0 ? SW Dec09 0:00 [kupdated]
root 11 0.0 0.0 0 0 ? SW Dec09 0:00 [mdrecoveryd]
root 15 0.0 0.0 0 0 ? SW Dec09 0:09 [kjournald]
root 73 0.0 0.0 0 0 ? SW Dec09 0:00 [khubd]
root 1055 0.0 0.0 0 0 ? SW Dec09 0:00 [kjournald]
说明: USER: 该程序属于哪一个用户 PID: 该程序的代号,如果要用kill杀掉该程序,则需要这个PID. %CPU: 代表该程序使用了多少CUP资源 %MEM: 代表该程序使用了多少RAM VAZ,RSS:占去的RAM的大小(以字节为单位) TTY: 是否为登入者执行的程序?若为tty1-tty6,则为本机登入者,基为pts/??,则为远程登入者 STAT: 该程序的状态: R为可执行,S为该程序正在睡眠中,就是没有执行,T为正在检测或者停止,Z表示死亡程序,需要用kill除去. START: 该程序开始的日期 TIME: 该程序的运行时间 COMMAND:该程序的内容 top 动态检测程序的运行状态 语法: #top 说明: 在执行top的程序中,可以输入下面的字符进行排序 A: 以age亦即执行的先后顺序进行排序 T: 由启动的时间排序 M: 以所占的内存大小排序 P: 以所耗用的CPU资源排序 #top 09:34:58 up 16 days, 1:01, 1 user, load average: 0.00, 0.00, 0.00
44 processes: 43 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.0% user 0.0% system 0.0% nice 0.0% iowait 99.9% idle
Mem: 222948k av, 192420k used, 30528k free, 0k shrd, 47496k buff
151756k actv, 10664k in_d, 4132k in_c
Swap: 530136k av, 7652k used, 522484k free 120756k cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
1 root 15 0 104 80 56 S 0.0 0.0 0:03 0 init
2 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kapmd
4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd_CPU
9 root 15 0 0 0 0 SW 0.0 0.0 0:01 0 bdflush
5 root 15 0 0 0 0 SW 0.0 0.0 0:21 0 kswapd
6 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/DMA
7 root 15 0 0 0 0 SW 0.0 0.0 0:02 0 kscand/Normal
8 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/HighMe
10 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kupdated
11 root 23 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
15 root 15 0 0 0 0 SW 0.0 0.0 0:09 0 kjournald
73 root 24 0 0 0 0 SW 0.0 0.0 0:00 0 khubd
1055 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
1067 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 usb-storage-0
1072 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 scsi_eh_0
1142 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
1270 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
3102 root 15 0 188 160 112 S 0.0 0.0 0:08 0 syslogd
3106 root 18 0 48 4 0 S 0.0 0.0 0:00 0 klogd
free 检查当前内存的使用情况 语法: #free -k: 以KBytes显示内存 -m: 以MBytes显示内存 sar 收集系统活动情报,报告或者保留 语法: #sar [-u][-r] 秒数 次数 -u: 看CPU的使用情况 -r: 看内存的使用情况 秒数: 几秒钟观测一次? 次数: 共观测几次 [root@mail root]#sar -u 1 3 Linux 2.4.20-8 (mail) 12/25/2006 09:44:13 AM CPU %user %nice %system %idle
09:44:14 AM all 0.00 0.00 0.00 100.00
09:44:15 AM all 0.00 0.00 0.00 100.00
09:44:16 AM all 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.00 100.00
[root@mail root]# sar -r 1 3
Linux 2.4.20-8 (mail) 12/25/2006 09:45:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused
09:45:02 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
09:45:03 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
09:45:04 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
Average: 29484 193464 86.78 0 48224 120992 522484 7652 1.44
[root@mail root]# uname 打印系统信息 语法: #uname [-apnr] -a: 列出所有的系统信息 -p: 列出CPU的信息 -n: 列出主机名 -r: 列出核心版本信息 注:你也可以查看/proc下的一些文件,以了解系统的更多信息 如:
[root@mail proc]# more cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Celeron(R) CPU 2.00GHz
stepping : 9
cpu MHz : 1968.790
cache size : 8 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3932.16 [root@mail proc]# 程序优先级
[root@mail proc]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 16436 16434 0 75 0 - 1090 wait4 pts/0 00:00:02 bash
0 R 0 16803 16436 0 80 0 - 777 - pts/0 00:00:00 ps
说明: UID:代表执行者的身份 PID:代表这个程序的代号 PPID:代表这个程序由哪个程序发展而来,即父程序 PRI:代表这个程序可被执行的优先级,越小就越早被执行 NI:代表这个程序的nice值 这里可以依据下面的公式来改变程序的PRI值,以来改变该程序执行的优先级. PRI(new)=PRI(old) + nice 这样,当nice值为负值时,该程序就会提前执行,即调整了程序处理的优先顺序. nice的取值范围: 一般用户可用的nice值为0-19 root管理员可用的nice值为-20-19 nice 系统依靠这个值来改变程序执行的优先级 语法: #nice [-n number] command -n 后面那个number即为nice值 renice 用于改变一个正在进行中的程序的优先级,所以必须先取得该程序的PID.与nice不同. 语法: #renice [number] PID ex> renice 5 234 信息管理
dmesg 查看系统启动时显示的信息 语法: #dmesg uptime 报告该系统己经开了多久?包括过去的1,5,15分钟内系统的平均负载是多少. 语法: #uptime who,w,whoami who与w功能相同,只是who仅列出用户名与登入时间,w则会列出用户的源地址(IP),登入时间与工作项目.另外,在使用w时,开头会显示一段信息关于系统启动的时间. last 列出最近登入系统的用户 语法: #last -number -number: number为数字 hostname 显示主机名 语法: #hostname ntpdate 网络校时. 语法: #ntpdate time.stdtime.gov.tw <==从time.stdtime.gov.tw上获得时间 #clock -w <==将当前时间保存到BIOS中. 10 5 * * 0,3 root /usr/sbin/ntpdate time.stdtime.gov.cn; clock -w
Filesystem blocks soft hard inodes soft hard
/dev/hda5 1183968 0 0 44 0 0
说明: filesystem: 这就是分区的意思 blocks: 这表示当前用户root(uid 0)在/dev/hda5这个filesystem所耗用的磁盘容量,也就是当前使用空间.单位是Kbytes.这个信息是quota程序自己计算出来的,所以不用修改. soft与hard:这是root在这个filesystem之内的当前quota限值.当值为0时,表示没有限制. inodes: 当前所用inode的状态,也是quota自己计算出来,所以不要修改. quotaon 启动quota 语法: #quotaon [-a][-uvg directory] -a: 启动所有的quota设定(会自动寻找/etc/mtab的设定) -u: 激活用户的quota -g: 启动群组的quota设定 -v: 显示信息 quotaoff 关闭quota限制 语法: #quotaoff -a -a: 关闭所有的quota设定(会自动寻找/etc/mtab的设定) quota实践 quota的功能有很多,包括: 限制某一群组所能使用的最大磁盘配额(使用群组限制) 限制某一用户的最大磁盘配额(使用用户限制) 以Link方式使邮件可以作为限制的配额(更改/var/spool/mail这个路径) 使用quota磁盘配额的几个步骤 1.开启磁盘的quota功能:编辑/etc/fstab,加入usrquota和grpquota,使得准备开放的quota磁盘可以支持quota; 2.预扫描磁盘的使用情况:使用quotacheck扫描我们要使用的磁盘; 3.建立用户的quota:使用edquota来编辑每个用户或群组的可使用空间; 4.启动quota:使用quotaon. 注:由于真正的quota读取的是/etc/mtab这个文件,但这个文件需要重新启动之后才能够以/etc/fstab的新数据进行改写,所以这时可以: 1.重新启动系统==>reboot 2.重新使用remount filesystem来驱动设定值. 例行性命令at与crontab at: 这个工作仅执行一次就从Linux系统的流程中取消 crontab: 这个工作将持续例行性地做下去 at 这个指令其实就是atd这个服务.仅执行一次. 启动这个服务: #chkconfig --add atd 输入at这个动作会将工作流程写入/var/spool/at目录下,然后等待系统执行它. at指令默认是所有人都能执行,不过root用户可以使用/etc/at.allow与/etc/at.deny这两个文件进行限制:其限制原理: 1.先找寻/etc/at.allow文件,存在于这个文件中的用户才能使用at,不在这个文件中的用户则不能使用at(即使没有写在at.deny文件中) 2.如果没有/etc/at.allow就寻找/etc/at.deny文件,存在于at.deny的用户不能使用at,而不存在at.deny文件中的用户就可以使用at 3.如果两个文件都不存在,则只有root用户可以使用at指令 at的语法 #at [-m] TIME (输入工作指令) #atq (查看当前工作流程) #atrm [jobnumber] (删除流程) 说明: -m: 执行at规范的工作流程时,将屏幕输出结果mail结输入指令的用户 TIME: 时间格式,有如下几个: HH:MM YYYY-MM-DD ex> 04:00 2006-12-23 HH[pm;am] + number [hours;days;weeks] ex> 4pm + 3days HH:MM ex>12:00 HH[pm;am][Month][Day] ex>1pm May 30 jobnumber: 即是每个at工作流程都有的编排顺 在输入at之后便进入命令行模式,在这里你可以重复输入命令,但是离开时按下Ctrl+D就可以退出.退出之后,系统显示这个工作流程的编排顺序与用户. 循环执行: crontab 这个循环的例行性命令其实就是cron服务(crond).输入crontab指令之后,会将命令写入/var/spool/cron目录中. crontab指令的语法: #crontab [-u user][-l | -e | -r] 说明: -u user: 这个指令只有root能输入,查看或编译其他用户的crontab内容 -l: 列出crontab的内容 -e: 编辑crontab的内容 -r: 删除crontab的内容 编辑crontab的语法格式: * * * * * command 说明(从左至右依次说明) *: 表示分钟(0-59),*代表每分钟,*/5代表每5分钟,1,3,5,10代表第1,3,5,10分钟的时候. *: 表示小时(0-23) *: 表示日期(1-31) *: 表示月份(1-12) *: 表示周(0-6) command: 表示要执行的命令 系统的crontab设定: /etc/crontab 编辑系统的crontab只要直接编辑/etc/crontab文件就可以. 注:由于crontab是读取到内存中,所以在修改完/etc/crontab之后可能不会马上执行,这时需要重新启动crond服务. /etc/rc.d/init.d/crond restart 解析/etc/crontab文件的内容 [root@mail bin]# cat /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
[root@mail bin]#
MAILTO=root: 即当/etc/crontab文件中的例行性命令发生错误时,会将错误信息或屏幕显示的信息传给root用户,因为root无法在客户端收信,因此,这里通常被改成自己的账号,好及时了解到系统的状况. 01 * * * * root run-parts /etc/cron.hourly: 这一行说的就是在每个小时的第一分钟,系统会以root层级的用户到/etc/cron.hourly目录下执行所有可以执行的文件.root 代表执行的层级为root身份.run-parts表示后面接的/etc/hour.daily是一个目录内的所有可以执行的文件. 注: 基本上,/etc/crontab支持两种指令的方式,一种是直接以指令形式输入,一种则是以目录形式输入. 指令形式: 01 * * * * test mail -s test test< /home/test/test.txt 用户是test,且每小时执行一次指令mail... 也可以如下所示 */5 * * * * root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg 目录形式: */5 * * * * root run-parts /etc/runcron 建立一个/etc/runcron的目录,将每隔5分钟执行一次的可执行文件都写到该目录下,就可以让系统每时每5分钟执行一次该目录下所有的所有可执行文件. 安全防护:/var/log/cron记录文件 程序与资源管理 查找指令说明的指令: #man command #info command /etc/man.config Linux主机内的文件数据 /usr/share/doc 留心/var/log中的文件 背景工作管理 & 与 Ctrl+z & 让屏幕中的工作在背景下执行.让背景中的工作重新在屏幕上执行,可以使用fg 语法: #command & Ctrl+z 将当前正在屏幕上进行的工作丢到背景下. jobs,fg与bg,kill jobs 查看背景工作下有哪些工作 语法: #jobs fg 将背景中的指令移到屏幕上来 语法: #fg $number bg 将背景中的程序由stopped变成running. 语法: #bg %number kill 杀提工作中的程序 语法: #kill -signal %number signal -1: 重新读取参数配置文件(类似reload) -2: 用户中断该工作.类似使用ctrl+c中断一个工作 -9: 立刻杀掉一个工作,不论该工作是否为死程序 -15: 停止一个工作(这是默认值) 程序与资源管理 ps 报告进程状态 语法: #ps -aux -a: 选择列出所有的程序 -u: 列出所有用户的程序 -x: 列出所有tty的程序 [root@mail root]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1368 76 ? S Dec09 0:03 init
root 2 0.0 0.0 0 0 ? SW Dec09 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW Dec09 0:00 [kapmd]
root 4 0.0 0.0 0 0 ? SWN Dec09 0:00 [ksoftirqd_CPU0]
root 9 0.0 0.0 0 0 ? SW Dec09 0:01 [bdflush]
root 5 0.0 0.0 0 0 ? SW Dec09 0:21 [kswapd]
root 6 0.0 0.0 0 0 ? SW Dec09 0:00 [kscand/DMA]
root 7 0.0 0.0 0 0 ? SW Dec09 0:02 [kscand/Normal]
root 8 0.0 0.0 0 0 ? SW Dec09 0:00 [kscand/HighMem]
root 10 0.0 0.0 0 0 ? SW Dec09 0:00 [kupdated]
root 11 0.0 0.0 0 0 ? SW Dec09 0:00 [mdrecoveryd]
root 15 0.0 0.0 0 0 ? SW Dec09 0:09 [kjournald]
root 73 0.0 0.0 0 0 ? SW Dec09 0:00 [khubd]
root 1055 0.0 0.0 0 0 ? SW Dec09 0:00 [kjournald]
说明: USER: 该程序属于哪一个用户 PID: 该程序的代号,如果要用kill杀掉该程序,则需要这个PID. %CPU: 代表该程序使用了多少CUP资源 %MEM: 代表该程序使用了多少RAM VAZ,RSS:占去的RAM的大小(以字节为单位) TTY: 是否为登入者执行的程序?若为tty1-tty6,则为本机登入者,基为pts/??,则为远程登入者 STAT: 该程序的状态: R为可执行,S为该程序正在睡眠中,就是没有执行,T为正在检测或者停止,Z表示死亡程序,需要用kill除去. START: 该程序开始的日期 TIME: 该程序的运行时间 COMMAND:该程序的内容 top 动态检测程序的运行状态 语法: #top 说明: 在执行top的程序中,可以输入下面的字符进行排序 A: 以age亦即执行的先后顺序进行排序 T: 由启动的时间排序 M: 以所占的内存大小排序 P: 以所耗用的CPU资源排序 #top 09:34:58 up 16 days, 1:01, 1 user, load average: 0.00, 0.00, 0.00
44 processes: 43 sleeping, 1 running, 0 zombie, 0 stopped
CPU states: 0.0% user 0.0% system 0.0% nice 0.0% iowait 99.9% idle
Mem: 222948k av, 192420k used, 30528k free, 0k shrd, 47496k buff
151756k actv, 10664k in_d, 4132k in_c
Swap: 530136k av, 7652k used, 522484k free 120756k cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
1 root 15 0 104 80 56 S 0.0 0.0 0:03 0 init
2 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
3 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kapmd
4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 0 ksoftirqd_CPU
9 root 15 0 0 0 0 SW 0.0 0.0 0:01 0 bdflush
5 root 15 0 0 0 0 SW 0.0 0.0 0:21 0 kswapd
6 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/DMA
7 root 15 0 0 0 0 SW 0.0 0.0 0:02 0 kscand/Normal
8 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kscand/HighMe
10 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kupdated
11 root 23 0 0 0 0 SW 0.0 0.0 0:00 0 mdrecoveryd
15 root 15 0 0 0 0 SW 0.0 0.0 0:09 0 kjournald
73 root 24 0 0 0 0 SW 0.0 0.0 0:00 0 khubd
1055 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
1067 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 usb-storage-0
1072 root 25 0 0 0 0 SW 0.0 0.0 0:00 0 scsi_eh_0
1142 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
1270 root 15 0 0 0 0 SW 0.0 0.0 0:00 0 kjournald
3102 root 15 0 188 160 112 S 0.0 0.0 0:08 0 syslogd
3106 root 18 0 48 4 0 S 0.0 0.0 0:00 0 klogd
free 检查当前内存的使用情况 语法: #free -k: 以KBytes显示内存 -m: 以MBytes显示内存 sar 收集系统活动情报,报告或者保留 语法: #sar [-u][-r] 秒数 次数 -u: 看CPU的使用情况 -r: 看内存的使用情况 秒数: 几秒钟观测一次? 次数: 共观测几次 [root@mail root]#sar -u 1 3 Linux 2.4.20-8 (mail) 12/25/2006 09:44:13 AM CPU %user %nice %system %idle
09:44:14 AM all 0.00 0.00 0.00 100.00
09:44:15 AM all 0.00 0.00 0.00 100.00
09:44:16 AM all 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.00 100.00
[root@mail root]# sar -r 1 3
Linux 2.4.20-8 (mail) 12/25/2006 09:45:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused
09:45:02 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
09:45:03 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
09:45:04 AM 29484 193464 86.78 0 48224 120992 522484 7652 1.44
Average: 29484 193464 86.78 0 48224 120992 522484 7652 1.44
[root@mail root]# uname 打印系统信息 语法: #uname [-apnr] -a: 列出所有的系统信息 -p: 列出CPU的信息 -n: 列出主机名 -r: 列出核心版本信息 注:你也可以查看/proc下的一些文件,以了解系统的更多信息 如:
[root@mail proc]# more cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Celeron(R) CPU 2.00GHz
stepping : 9
cpu MHz : 1968.790
cache size : 8 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3932.16 [root@mail proc]# 程序优先级
[root@mail proc]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 16436 16434 0 75 0 - 1090 wait4 pts/0 00:00:02 bash
0 R 0 16803 16436 0 80 0 - 777 - pts/0 00:00:00 ps
说明: UID:代表执行者的身份 PID:代表这个程序的代号 PPID:代表这个程序由哪个程序发展而来,即父程序 PRI:代表这个程序可被执行的优先级,越小就越早被执行 NI:代表这个程序的nice值 这里可以依据下面的公式来改变程序的PRI值,以来改变该程序执行的优先级. PRI(new)=PRI(old) + nice 这样,当nice值为负值时,该程序就会提前执行,即调整了程序处理的优先顺序. nice的取值范围: 一般用户可用的nice值为0-19 root管理员可用的nice值为-20-19 nice 系统依靠这个值来改变程序执行的优先级 语法: #nice [-n number] command -n 后面那个number即为nice值 renice 用于改变一个正在进行中的程序的优先级,所以必须先取得该程序的PID.与nice不同. 语法: #renice [number] PID ex> renice 5 234 信息管理
dmesg 查看系统启动时显示的信息 语法: #dmesg uptime 报告该系统己经开了多久?包括过去的1,5,15分钟内系统的平均负载是多少. 语法: #uptime who,w,whoami who与w功能相同,只是who仅列出用户名与登入时间,w则会列出用户的源地址(IP),登入时间与工作项目.另外,在使用w时,开头会显示一段信息关于系统启动的时间. last 列出最近登入系统的用户 语法: #last -number -number: number为数字 hostname 显示主机名 语法: #hostname ntpdate 网络校时. 语法: #ntpdate time.stdtime.gov.tw <==从time.stdtime.gov.tw上获得时间 #clock -w <==将当前时间保存到BIOS中. 10 5 * * 0,3 root /usr/sbin/ntpdate time.stdtime.gov.cn; clock -w
相关阅读 更多 +