[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 2648 604 ? S Apr02 0:13 init [3]
root 2 0.0 0.0 0 0 ? SN Apr02 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S< Apr02 0:19 [events/0]
root 4 0.0 0.0 0 0 ? S< Apr02 0:00 [khelper]
……
1.ps命令结合“aux”选项使用时,
将显示系统中所有的进程信息
PID:该进程在系统中的数字ID号,在当前系统中是唯一的; %CPU:CPU占用百分比; %MEM:内存占用百分比
2.ps命令结合“-elf”选项使用时,将以长格式显示系统中所有的进程信息,
包含更丰富的内容(其中PPID列表示进程的父进程的PID号)
[root@localhost ~]# top
top - 06:08:48 up 4 days, 6:57, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.7% sy, 0.0% ni, 97.4% id, 0.4% wa, 0.1% hi, 1.1% si
Mem: 191228k total, 171424k used, 19804k free, 19436k buffers
Swap: 265064k total, 1284k used, 263780k free, 120480k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6779 root 16 0 2536 832 668 R 3.8 0.4 0:00.04 top
1 root 16 0 2648 604 520 S 0.0 0.3 0:13.54 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
……
top工具的命令按键:P、M、N、h、q
按P键根据CPU占用情况对进程列表进行排序
按M键根据内存占用情况进行排序
按N键根据启动时间进行排序
按h键可以获得top程序的在线帮助信息
按q键可以正常退出top程序
使用空格键可以强制更新进程状态显示
[root@localhost ~]# pgrep "init"
1
[root@localhost ~]# pgrep -l "log"
2538 syslogd
2541 klogd
3221 login
[root@localhost ~]# pgrep -l -U teacher -t tty1
27483 bash
27584 vim
[root@localhost ~]# pstree -aup
init,1
├─acpid,2866
├─atd,3060
├─auditd,2516
│ ├─python,2518 /sbin/audispd
│ └─{auditd},2517
├─automount,2842
……
[root@localhost ~]# cp /dev/cdrom mycd.iso &
[1] 28454
后台任务序号为1,
PID号为28454
(1)at命令
[root@localhost ~]# service atd start 启动 atd 系统服务
启动 atd: [确定]
[root@localhost ~]# at 23:45
at> shutdown -h now 按Ctrl+D键提交任务
at> <EOT>
job 1 at 2009-09-14 23:45
[root@localhost ~]# atq
1 2009-09-14 23:45 a root
(1)使用at命令设置的任务只在指定时间点执行一次,若只指定时间则表示当天的该时间,
若只指定日期则表示该日期的当前时间
(2)可以在at交互环境中输入多条命令,最后按Ctrl+D组合键提交
(3)对应的系统服务atd必须已经运行,否则可能会出现错误提示:Can't open /var/run/atd.
pid to signal atd. No atd running?
(2)crontab命令
[root@localhost ~]# 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
每小时、每天、每星期、每月定期执行的任务脚本分别存放在这些目录中
(1)启用周期性任务有一个前提条件,即对应的系统服务crond必须已经运行
(2)全局配置和系统默认配置中的内容一般不需要用户去修改,用户只需设置/var/spool/cron/目录下
与本帐号同名的文件即可,接下来介绍如何设置用户自己的计划任务
root用户可以管理指定用户的计划任务普通用户只能管理自己的计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
用户只需执行“crontab -e”命令后会自动调用文本编辑器(默认为vi)并打开“/var/spool/cron/
用户名”文件,无需手动指定文件位置
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔2小时
0 * */3 * * 每隔3天
除了“*”,还可以使用减号“-”、逗号“,”、斜杠“/”与数字构成表达式来表示复杂的时间关系:
使用减号“-”可以表示一个连续的时间范围,如“1-4”表示整数1,2,3,4
使用逗号“,”可以表示一个间隔的不连续范围,如“3, 4, 6, 8”
斜杠符号“/”可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔3天
[root@localhost ~]# crontab -e
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
0 * */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
[root@localhost ~]# crontab -e -u jerry
55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
[root@localhost root]# crontab -l
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
0 * */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
[root@localhost root]# crontab -l -u jerry
55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
[root@localhost root]# crontab -r -u jerry
[root@localhost root]# crontab -l -u jerry
no crontab for jerry
[root@localhost root]#
[root@localhost ~]# jobs
[1]- Stopped cp /dev/cdrom mycd.iso
[2]+ Stopped top
[root@localhost ~]# fg 1
[root@localhost ~]# pgrep -l "portmap"
2869 portmap
[root@localhost ~]# kill -9 2869
[root@localhost ~]# killall -9 vim
[1]- 已杀死 /usr/bin/vim file1
[2]- 已杀死 /usr/bin/vim file2
[root@localhost ~]# w | grep -v "root"
14:10:10 up 6:08, 4 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 5:34 0.16s 0.16s -bash
hackli pts/1 173.17.17.174 14:05 4:32 0.17s 0.17s -bash
[root@localhost ~]# pkill -9 -t pts/1
[root@localhost ~]# w | grep -v "root"
14:12:22 up 6:10, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 7:46 0.16s 0.16s -bash