查看系统负载情况
1、w (使用w命令查看负载情况)
查看load average 行查看1分钟负载情况 5分钟负载情况 15分钟负载情况,如果数值超过CPU核数,则说明现在CPU使用过程中有排队现象,核数不够
2、uptime (查看当前系统负载情况)
同w命令
vmstat (查看)
使用方法:
vmstat 1 5 (每隔一秒显示linux的负载状态,一共显示5次)
r:一秒内平均进程
b:有多少任务被磁盘IO,网络阻塞
swpd:有多少数据量被交换,如果swpd值很大,且不断变更,内存有可能不够或内存溢出
free:空闲的物理内存数(是真正的空闲,未被任何程序占用)
buff:磁盘缓存(Buffer Cache)的大小(可提高系统I/O调用的性能)
cache:磁盘缓存(Page Cache)的大小(可提高系统I/O调用的性能)
si:swpd in 进入到内存 (如果不变说明内存稳定,如果总是变化则说明内存不够)
so:swpd out 从内存出来的(如果不变说明内存稳定,如果总是变化则说明内存不够)
bi:写入磁盘内容 (普通服务器如果持续超过1000则有可能有压力,频繁读写)
bo:读取磁盘内容 (普通服务器如果持续超过1000则有可能有压力,频繁读写)
in:每秒CPU的中断次数,包括时间中断
cs:每秒上下文切换次数
us:用户CPU时间。
sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id:空闲 CPU时间。
wt:等待IO CPU时间。
st:被偷走的cpu
top (动态查看当前哪个进程占用CPU或内存最多)
使用方法:
top
shift+m (查看内存占用最多的进程)
PID (进程ID)
USER (那个用户运行的进程)
PR (进程处理优先级,越小排的越靠前)
NI (负值表示高优先级,正值表示低优先级)
VIRT (进程使用的虚拟内存总量,单位kb)
RES (进程使用的、未被换出的物理内存大小,单位kb)
S (进程状态:D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程)
%CPU (上次更新到现在的CPU时间占用百分比)
%MEM (进程使用的物理内存百分比)
TIME+ (进程使用的CPU时间总计,单位1/100秒)
COMMAND (命令名)
top -bn1 (静态一次性显示当前服务器情况,可写入脚本中)
top -c -d 1 (-c是COMMAND显示更全,-d是1秒刷新1次)
sar (查看磁盘,CPU,网卡等历史使用情况)
使用方法:
sar -n DEV (查看今天的网卡流量使用情况,10分钟一次)
sar -n DEV 1 10 (查看现在网卡的使用情况,每一秒显示一次,一共显示10次)
主要看rxbyt/s和txbyt/s这两列,分别是上行流量和下行流量
/var/log/sa/下有历史数据,历史数据以sa开头
sar -n DEV -f sa22 (查看历史记录)
sar -q (查看历史负载)
sar -b (查看磁盘历史使用)
sar (与top等命令类似)
free (查看当前系统还有多少剩余内存)
buffers (缓冲区,CPU处理完的数据存到内存中,再由内存写入磁盘)
cached (高速缓冲区,由磁盘读取到内存中供CPU处理)
ps (查看系统当中的所有进程)
使用方法:
ps aux (显示系统当前的所有进程)
USER (该进程的用户)
PID (进程ID)
%CPU (占用CPU的百分比)
%MEM (占用内存的百分比)
VSZ (占用虚拟内存的大小)
RSS (占用真正内存的大小)
TTY (终端设备,?:在后台运行;pst/0:正在运行)
STAT (表示进程状态:S:睡眠;s:主进程;<:优先级高;N:低优先级;+:前台运行的进程;R:正在运行的进程;L:内存分页;l:多线程进程;Z:僵尸进程;X:已经死掉的进程;T:暂停的进程;D:不能中断的进程)
START (启动日期)
TIME (一共占用CPU的时间)
COMMAND (进程的命令)
ps -elf (显示系统当前的所有进程)
ps aux |grep php (过滤PHP进程)
crontab (任务计划)
crontab -u root -l (列出root用户的计划任务有哪些)
crontab -e (添加任务计划)
任务计划时间为分,时,日,月,周
0 0 2 * * (每月2号0点0分执行计划)
0 */8 * * * (每隔八小时备份一次)
0 1,12,18 * * * (每天1,12,18点执行一次)
30 9-18 * * * (每天9:30-18:30,每小时执行一次)
linux系统服务
ntsysv (查看并调整启动服务,调整完后需重启)
chkconfig (查看在所有运行级别下有哪些服务开启)
chkconfig atd off (将atd服务在2345级别下关闭)
chkconfig --list atd (查看atd服务列表)
chkconfig --level 34 atd on (将atd服务在运行3和4级别下打开)
系统启动服务列表位置:/etc/init.d/
chkconfig --add 123 (将123服务添加到启动服务中;123文件需要有执行权限)
chkconfig --del 123 (将123服务从启动服务中删除)
linux系统日志
/etc/logrotate.conf (日志切割的配置文件)
/var/log/message (jilu系统内核相关的日志)
/var/log/wtmp (记录用户登陆历史)
last (查看用户登录历史命令)
/var/log/btmp (记录无效用户登陆历史)
lastb (查看用户无效登陆历史)
/var/log/maillog (记录邮件的发送情况)
/var/log/secure (记录记录系统的登录信息,如ftp服务中的用户登陆情况)
var/log/dmesg (记录启动过程中的硬件日志)
dmesg (查看当前的硬件情况)
kill (杀死一个进程)
kill pid (杀死某一个进程)
kill -9 pid (强制杀死一个进程,杀不死的情况下)
kill -HUP ****** (重新加载某一个服务)
killall httpd (杀死httpd服务)
killall -9 httpd (强制杀死httpd服务)
文件改名、复制、备份操作
使用方法:
find /var/log/ -type f -mtime +10 -exec cp {} {}.bak \; (将/var/log/下超过10天的文件找出,在该文件夹下将所有文件都进行备份,备份为.bak文件;{}表示之前的文件名,{}.bak表示被分为"文件名+.bak")
find /var/log/ -type f -mtime +10 |xargs -i cp {} {}.bak (功能同上)
ls *.txt |xargs rm (删除ls查找到的以txt为结尾的文件)
ls *.txt |xargs -i cp {} {}.bak (备份所有txt文件)
nohup (进程后台执行)
使用方法:
nohup sleep 100 (将sleep进程放到后台处理,并将进程输出的内容写入到nohup.out中)
screen
yum install -y screen
使用方法:
screen (创建一个新的虚拟终端)
ctrl + a + d (暂时退出该终端)
exit 或 crtl + d (永久退出该终端)
screen -ls (查看当前都有哪些虚拟终端)
screen -r 1529 (回到ID号为1529的screen虚拟终端下)
screen -S test (创建一个名为test的虚拟终端)
screen -r test (回到名字为test的虚拟终端下)
curl (访问工具)
使用方法:
curl www.baidu.com (访问百度网页,源代码)
curl -I www.baidu.com (查看百度的当前状态)
200 访问正常;301,302 在服务端设定了跳转;
curl -x61.135.169.125:80 www.baidu.com -I (访问指定IP的指定端口)
curl -u username: password: http://www.baidu.com (访问需要输入用户名和密码的网址)
curl -o baidulogo.png www.baidu.com/img/bd_logo1.png (下载百度的logo,并以baidulogo.png命名)
curl -O www.baidu.com/img/bd_logo1.png (下载百度的logo,以默认bd_logo1.png命名)