文章目录一、进程管理1.1 进程查看1.1.1 ps1.1.2 top 查看系统健康状态1.1.3 查看进程树pstree1.2 终止进程1.2.1 kill1.2.2 killall1.2.3 pkill 命令二、工作管理2.1 把进程放入后台2.2 查看后台的工作2.3 将后台暂停的工作恢复到前台执行2.4 把后台暂停的工作恢复到后台执行三、系统资源查看3.1 vmstat 监控系统资源3.2 dmesg 查看开机时内核检测信息3.3 free 查看内存使用状态3.4 查看 CPU 信息3.5 uptime 命令3.6 uname 查看系统与内核相关信息3.7 判断当前系统的位数3.8 查询当前 Linux 系统的发行版本3.9 lsof 列出进程打开或使用的文件信息四、系统定时任务4.1 crond 服务管理与访问控制4.2 用户的 crontab 设置一、进程管理进程是正在执行的一个程序或命令每一个进程都是一个运行的实体都有自己的地址空间并占用一定的系统资源。进程管理的作用判断服务器健康状态查看系统中所有进程杀死进程1.1 进程查看1.1.1 ps查看系统中所有进程的命令是psaux#查看系统中所有进程使用BSD操作系统格式或ps-le#查看系统中所有进程使用Linux标准命令格式ps aux命令输出如下下面我们分析一下ps aux命令的输出。USER该进程是由哪个用户产生的PID进程的ID号%CPU该进程占用CPU资源的百分比 占用越高 进程越耗费资源%MEM该进程占用物理内存的百分比 占用越高 进程越耗费资源VSZ该进程占用虚拟内存的大小 单位 KBRSS该进程占用实际物理内存的大小 单位KBTTY该进程是在哪个终端中运行的。tty1-tty7 代表本地控制台终端其中 tty1-tty6 是本地的字符界面终端 tty7 是图形终端。 pts/0-255 代表虚拟终端。如果是「?」则说明该进程是由内核直接产生的。STAT进程状态。常见的状态有R运行S睡眠T停止状态s包含子进程位于后台START该进程的启动时间TIME该进程占用 CPU 的运算时间 注意不是系统时间COMMAND产生此进程的命令名1.1.2 top 查看系统健康状态top 命令格式如下top [选项]选项-d 秒数指定 top 命令每隔几秒更新。默认是3秒在 top 命令的交互模式当中可以执行的命令?或h显示交互模式的帮助P以 CPU 使用率排序默认就是此项M以内存的使用率排序N以 PID 排序q退出 toptop 命令执行结果如下其中比较重要的是前 5 行信息。第一行信息为任务队列信息内容说明19:23:45系统当前时间up 27 min系统的运行时间本机已经运行 27 分钟2 users当前登录了 2 个用户load average: 0.00, 0.00, 0.00系统在之前 1 分钟5 分钟 15 分钟的平均负载。一般认为小于 1 时负载较小。如果大于 1系统已经超出负荷。第二行为进程信息内容说明Tasks: 90 total系统中的进程总数1 running正在运行的进程数94 sleeping睡眠的进程0 stopped正在停止的进程0 zombie僵尸进程如果不是 0需要手工检查进程第三行为 CPU 信息内容说明0.0%us用户模式占用的 CPU 百分比0.0%sy系统模式占用的 CPU 百分比0.0%ni改变过优先级的用户进程占用的 CPU 百分比99.7%id空闲 CPU 的 CPU 百分比0.0%wa等待输入/输出的进程的占用 CPU 百分 比0.0%hi硬中断请求服务占用的 CPU 百分比0.3%si软中断请求服务占用的 CPU 百分比0.0%stst Steal time 虚拟时间百分比。就是当有虚拟机时虚拟 CPU 等待实际 CPU 的时间百分比第四行为物理内存信息内容说明1020232k total物理内存的总量单位 KB267828k used已经使用的物理内存数量752404k free空闲的物理内存数量20848k buffers作为缓冲的内存数量**第五行为交换分区swap信息 **内容说明1023992k total交换分区虚拟内存 的总大小0k used已经使用的交互分区的大小1023992k free空闲交换分区的大小125208k cached作为缓存的交互分区的大小1.1.3 查看进程树pstreepstree 命令可以查看进程树该命令的格式如下pstree [选项]选项-p显示进程的 PID-u显示进程的所属用户pstree 命令执行结果如下1.2 终止进程1.2.1 killkill 命令的格式如下kill[进程信号]PIDkill -l可以查看可用的进程信号如下图所示下面这几个是常用的进程信号例如kill-1 22354#重启进程kill-9 22368#强制杀死进程1.2.2 killallkillall 命令的作用是按照进程名杀死进程命令格式如下killall[选项][进程信号]进程名选项-i交互式 询问是否要杀死某个进程-I忽略进程名的大小写这里的进程信号和 kill 命令的进程信号是通用的。例如1.2.3 pkill 命令pkill 命令和 killall 命令的功能类似都可以按照进程名杀死进程命令格式也类似pkill[选项][进程信号]进程名同时 pkill 还有一个功能是按照终端号踢出用户命令格式如下pkill-9 -t 终端号例如二、工作管理2.1 把进程放入后台第一种方式是在命令后面加一个用这种方式进程在后台会继续执行。例如#在根目录下查找名字中含sh的文件或目录并把结果放入find_result.txt文件中find/ -name*sh*find_result.txt第二种方式是在命令执行过程中按ctrlz快捷键这种方式进程会暂停运行在后台挂起。比如输入 top 命令然后按下ctrlz快捷键2.2 查看后台的工作查看后台的工作用如下命令jobs[-l]选项-l的作用是显示工作的 PID。注 「」代表最近一个放入后台的工作也是工作恢复时默认恢复的工作。「-」代表倒数第二个放入后台的工作。由此我们可以看出用ctrlz命令放入后台的工作是「栈」用来存储的遵循先入后出的原则。2.3 将后台暂停的工作恢复到前台执行命令如下fg%工作号#工作号指的是用jobs命令查看后台工作时每一行前面显示的序号而不是进程号PID参数%工作号「%」可以省略 但是注意工作号和 PID 的区别2.4 把后台暂停的工作恢复到后台执行命令如下bg%工作号注后台恢复执行的命令是不能和前台有交互的否则不能恢复到后台执行。三、系统资源查看3.1 vmstat 监控系统资源命令格式如下vmstat [刷新延时 刷新次数]例如vmstat1 3命令执行结果如下3.2 dmesg 查看开机时内核检测信息命令格式如下dmesg例如查看 CPU 信息dmesg|grepCPU执行结果如下3.3 free 查看内存使用状态命令格式如下free [-b|-k|-m|-g]选项-b以字节为单位显示-k以 KB 为单位显示默认就是以 KB 为单位显示-m以 MB 为单位显示-g以 GB 为单位显示执行结果如下缓冲和缓存的区别简单来说缓存cache是用来加速数据从硬盘中「读取」的而缓冲buffer是用来加速数据「写入」硬盘的。3.4 查看 CPU 信息/proc/cpuinfo文件存储着 CPU 信息这个文件是存储在内存中的一旦断电这个文件中的内容就会消失再次启动系统时才会恢复。用 cat 可以查看该文件的命令。3.5 uptime 命令uptime 命令显示系统的启动时间和平均负载也就是 top 命令的第一行。 w 命令也可以看到这个数据。3.6 uname 查看系统与内核相关信息命令格式如下uname [选项]选项-a查看系统所有相关信息-r查看内核版本-s查看内核名称3.7 判断当前系统的位数Linux 中没有直接查看系统位数的命令但是我们可以使用 file 命令查看系统外部命令的信息这个信息里面就包含了系统的位数。比如file/bin/ls3.8 查询当前 Linux 系统的发行版本使用lsb_release -a命令可以查询当前Linux系统的发行版本。命令执行结果如下3.9 lsof 列出进程打开或使用的文件信息命令格式如下lsof [选项]选项-c 字符串只列出以字符串开头的进程打开的文件-u 用户名只列出某个用户的进程打开的文件-p pid列出某个 PID 进程打开的文件例如查看 init 进程打开了哪些文件lsof-c init命令执行结果如下四、系统定时任务4.1 crond 服务管理与访问控制crond 是管理系统定时任务的服务默认是自启动的可以通过chkconfig命令来查看如果没有自启动可以用chkconfig crond on命令将 crond 服务设置成自启动。4.2 用户的 crontab 设置启动 crond 服务后用 crontab 命令就可以设置系统定时任务。crontab 命令格式如下crontab [选项]。选项-e编辑 crontab 定时任务-l查询 crontab 定时任务-r删除当前用户所有的 crontab 任务当你输入crontab -e命令后就会进入 crontab 编辑界面用 vim 编辑你的系统定时任务。系统定时任务的格式如下* * * * * 执行的任务项目含义范围第一个「*」一小时当中的第几分钟0 - 59第二个「*」一天当中的第几小时0 - 23第三个「*」一个月当中的第几天1 - 31第四个「*」一年当中的第几月1 - 12第五个「*」一周当中的星期几0 - 7 0 和 7 都代表星期日特殊符号含义*代表任何时间。 比如第一个「*」就代表一小时中每分钟都执行一次的意思代表不连续的时间。 比如0 8,12,16 * * * 命令就代表在每天的 8 点 0 分 12 点 0 分16 点 0 分都执 行一次命令-代表连续的时间范围。 比如0 5 * * 1-6命令代表在周一到周六的凌晨5点0分执行命令*/n代表每隔多久执行一次。 比如*/10 * * * * 命 令代表每隔 10 分钟就执行一遍命令时间含义45 22 * * * 命令在 22 点 45 分执行命令0 17 * * 1 命令每周 1 的 17 点 0 分执行命令0 5 1,15 * * 命令每月 1 号和 15 号的凌晨 5 点 0 分执行命令40 4 * * 1-5 命令每周一到周五的凌晨 4 点 40 分执行命令*/10 4 * * * 命令每天的凌晨 4 点每隔 10 分钟执行一 次命令0 0 1,15 * 1 命令每月 1 号和 15 号 每周 1 的 0 点 0 分都会执行命令。注意星期几和几号最好不要同时出现因为他们定义的都是天。非常容易让管理员混乱举例*/5 * * * * /bin/echo11/tmp/test#每 5 分钟向 /tmp/test 文件中写入一个 115 5 * * 2 /sbin/shutdown -r now#每周二的凌晨5点5分重启系统0 5 1,10,15 * * /root/sh/autobak.sh#每个月的1号、10号、15号的凌晨5点整执行备份脚本