- Linux常用命令——文件管理
- Linux常用命令——文本编辑
- Linux常用命令——系统管理
- Linux常用命令——其他
系统管理
ps
显示当前进程的状态
参数说明:
- -e 显示所有进程
- -A 同 -e
- -f 全格式(详细信息)
- -h 不显示标题
- -a 不与terminal有关的所有进程
- -u 该用户的相关进程
#查找和php相关的进程
ps -ef | grep php
jps
java ps 显示java程序的进程状态
注意:
- 需要配置JAVA_HOME
- 只能显示当前用户的java进程
参数说明:
- -q 只显示pid
- -m 输出传递给main方法的参数
- -l 输出类全名
- -v 输出传递给JVM的参数
top
显示当前系统正在执行的进程的相关信息
参数说明:
- -c 显示完整的进程命令
- -s 保密模式
- -p <进程号> 指定进程显示
- -n <次数>循环显示次数
信息说明:
top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35
Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers
Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java
前五行是当前系统情况整体的统计信息区
- 第一行:任务队列信息
- 14:06:23 — 当前系统时间
- up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(没有重启过)
- 2 users — 当前有2个用户登录系统
- load average: 1.15, 1.42, 1.44 — 1分钟、5分钟、15分钟的负载情况
- load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。这个数除以逻辑CPU的数量,结果高于5就表明系统在超负荷运转了。
- 第二行:Tasks — 任务(进程)
- 系统现在共有206个进程
- 运行中的有1个
- 休眠(sleep)的有205个
- stoped状态的有0个
- zombie状态(僵尸)的有0个
- 第三行:cpu状态信息
- 5.9%us — 用户空间占用CPU的百分比。
- 3.4% sy — 内核空间占用CPU的百分比。
- 0.0% ni — 改变过优先级的进程占用CPU的百分比
- 90.4% id — 空闲CPU百分比
- 0.0% wa — IO等待占用CPU的百分比
- 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
- 0.2% si — 软中断(Software Interrupts)占用CPU的百分比
- 第四行:内存状态
- 32949016k total — 物理内存总量(32GB)
- 14411180k used — 使用中的内存总量(14GB)
- 18537836k free — 空闲内存总量(18GB)
- 169884k buffers — 缓存的内存量 (169M)
- 第五行:swap交换分区信息
- 32764556k total — 交换区总量(32GB)
- 0k used — 使用的交换区总量(0K)
- 32764556k free — 空闲交换区总量(32GB)
- 3612636k cached — 缓冲的交换区总量(3.6GB)
- 第六行:空行
- 第七行以下:各进程(任务)的状态监控
- PID — 进程id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR — 共享内存大小,单位kb
- S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的CPU时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的CPU时间总计,单位1/100秒
- COMMAND — 进程名称(命令名/命令行)
交互命令:
- h 显示top交互命令帮助信息
- c 切换显示命令名称和完整命令行
- m 以内存使用率排序
- q 退出
- P 根据CPU使用百分比大小进行排序
- T 根据时间/累计时间进行排序
kill
给进程发送一个信号量 默认为15(正常终止程序)
命令格式:
kill [参数] [信号量] 进程号
参数说明:
- -l 列出所有信号量
- -9 强制杀死进程
- 详情见Linux基础
crontab
用来定期执行程序的命令
注意:
- 当安装完成操作系统之后,默认启动此任务调度命令
- 每分钟定期检查是否有要执行的工作,有便执行
- 新建的任务,不会马上执行,至少要过 2 分钟后,除非重启 cron
- crontab -e和/etc/crontab 不是同一个定时任务,配置不同步
- 当程序在指定的时间执行后,系统会发一封邮件给当前的用户(/var/spool/mail/用户),显示该程序执行的内容,若是不希望收到这样的邮件,请在每一行空一格之后加上
> /dev/null 2>&1
命令格式:
crontab [ -u user ] file
# 或
crontab [ -u user ] { -l | -r | -e }
参数说明:
- -e 执行文字编辑器(vi)来设定时程表
- -r 删除目前的时程表
- -l 列出目前的时程表
时间格式:
f1 f2 f3 f4 f5 command
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
说明:
*
表示每个时间点都执行 例如:每天a-b
表示从第 a 到第 b 这段时间内要执行*/n
表示每 n 个时间间隔执行一次a, b, c,...
表示第 a, b, c,... 个时间要执行 例如:第一分钟,第五分钟- 使用者也可以将所有的设定先存放在文件中,用 crontab file 来设定执行时间
启动服务:
service cron start # 启动cronjob
service cron stop # 停止cronjob
service cron restart # 重启cronjob
邮箱配置:
- 在crontab配置文件/etc/crontab中将MAILTO设置邮箱(不适用于crontab -e)
- 在crontab -e中添加指定的邮箱(未尝试):
# crontab -e在第一行加入:
MAILTO=example@gmail.com
#自己的外部邮箱地址如果没有装邮件服务器的要先安装一下:
yum install sendmail sendmail-cf m4
# send_mail.sh中的内容:
#!/bin/sh
mailx -s "xxx" my_name@163.com < /home/root/mail_content.txt
可能遇到的问题:
如果 crontab 无法定时执行脚本,但直接通过命令能正常执行,
可能是无法读取环境变量的原因。
解决方法:
- 所有命令写成绝对路径形式
- 或在 shell 脚本开头添加:
. /etc/profile . ~/.bash_profile
Comments NOTHING