cpu负载
uptime
uptime命令对于系统管理员和开发人员来说非常有用,因为它可以快速提供系统的运行时间和负载情况。这些信息有助于管理员了解系统的工作状况,及时采取相应措施来优化系统性能或解决潜在问题。
命令格式
uptime 选项
一般选项
-h:显示帮助信息。
-V:显示uptime命令的版本信息。
-p:以人类可识别的方式输出系统从开机到当前的运行时长。
-s:以“yyyy-mm-dd HH:MM:SS”格式输出系统的启动时间。
uptime
ping -f 127.1
uptime
w
w是Linux操作系统中的一个常用命令,它主要用于显示当前登录到系统的用户信息以及系统的负载情况。w命令能够列出当前登录到系统的所有用户,以及他们的活动情况,包括用户名、登录终端、登录时间、远程主机、闲置时间、CPU使用情况以及他们正在执行的命令等。此外,w命令还提供系统负载信息,如平均负载和CPU使用率,帮助管理员监控系统的整体运行状况。
注意:执行w命令需要一定的权限。普通用户只能查看自己的信息,而管理员或root用户可以查看所有用户的信息。
命令格式:
w [options] [username]
常见选项
-h或–no-header:不显示表头信息。
-s或–short:使用短格式输出,只显示用户名、终端、远程主机和登录时间等关键信息。
-f或–from:显示远程主机的信息,即用户从哪台远程主机登录到系统。
-o或–old-style:使用旧式格式输出,不显示用户从哪台主机登录的信息。
-u或–lookup:将数字用户ID转换为用户名,在输出中显示用户名而不是用户ID。
w
w -s
mpstat
mpstat是Linux系统中一个用于监控多核CPU性能和使用情况的命令行工具,全称为Multiprocessor Statistics(多处理器统计)。
mpstat能够显示每个CPU或CPU核心的活动统计信息,帮助用户分析系统的CPU使用情况,从而进行性能调优。它是sysstat软件包的一部分,如果系统中未安装该软件包,需要先进行安装。
mpstat
mpstat -P 0
mpstat -P 1
mpstat -P ALL
mpstat -p ALL 5 3
设备信息
iostat
iostat命令是I/O statistics(输入/输出统计)的缩写,主要用于监视系统的磁盘输入/输出(I/O)活动,提供有关磁盘使用情况和磁盘性能的实时统计信息。同时,它也可以报告系统的CPU统计信息。
该命令依赖于 sysstat 包
iostat
iostat 1
iotop
网络信息
iftop
iftop是一款开源的、实时的、基于命令行的网络流量监控工具,以下是关于iftop的详细介绍:
实时监控网络带宽使用情况,包括发送和接收的带宽。
显示TCP和UDP连接的源和目标地址。
显示端口连接信息以及反向解析IP。
精确显示本机网络流量及网络内各主机和本机相互通信的流量集合。
检测流量异常的主机,有助于网络故障排查和网络安全检测。
注意:
iftop软件包在 epel-release源里面
yum install iftop
ping 10.0.0.12
su - usser01
iftop
iftop -n
iftop -nF ens160
iftop -nPF ens160
nload
nload是一个用于实时监控Linux系统网络流量的命令行工具。
- 实时监控:
nload能够实时显示网络接口的流量信息,包括进入和离开网络接口的流量。
- 直观显示:
nload的界面分为上下两部分,分别显示进入和离开网络接口的流量,
同时提供当前流量、平均流量、最小流量、最大流量和总和流量等统计信息。
- 易于操作:
nload支持通过键盘快捷键在网卡之间切换,以及显示选项窗口、保存和重新加载设置等功能。
- 注意:
nload软件包在 epel-release源里面
yum install nload
ping 10.0.0.12
nload
nload -m
nload ens160
nload -t 1000 ens160
nethogs
nethogs是一个基于命令行的网络监控工具,用于实时监视每个进程的网络流量。
- 实时监控:
nethogs能够实时显示每个进程的网络带宽使用情况,包括上传和下载速度。
- 详细统计:
除了实时的速度显示,nethogs还可以显示每个进程的总流量、连接数和数据包数量等信息。
- 易于使用:
nethogs的界面以表格形式呈现,清晰直观,用户可以通过上下方向键滚动页面查看不同进程的网络使用情况。
- 多种选项:
nethogs提供了多种命令行选项,允许用户自定义监控的网卡、刷新间隔、流量显示模式等。
- 交互操作:
在nethogs运行时,用户可以通过按键进行交互操作,如排序、切换显示模式等。
- 注意:
nethogs软件包在 epel-release源里面
yum install nethogs
nethogs
nethogs ens160
iptraf-ng
iptraf-ng是一个专为Linux设计的命令行网络监测程序,它能够实时展示关于IP流量的各种信息。
- 实时监测:
iptraf-ng能够实时监测网络流量、连接状态、带宽使用情况等信息。
- 详细统计:
该工具可以提供TCP连接状态、不同类型的IP包、端口统计、IP地址统计以及接口活动等详细网络情况。
- 图形界面:
iptraf-ng提供了基于ncurses的图形界面,使得用户可以通过更直观的方式查看网络流量信息。
- 跨平台支持:
支持包括Fedora、RHEL、CentOS、Ubuntu、Debian等多个主流Linux发行版。
- 模块化设计:
易于扩展和定制,可以满足特定需求。
- 注意:
iptraf-ng软件包在 epel-release源里面
yum install iptraf-ng
iptraf-ng
系统资源
dstat
dstat命令是一个强大的系统资源监测工具,在Linux系统中广泛使用。它能够实时监测和报告系统的性能指标,包括CPU、内存、磁盘I/O、网络等方面的使用情况。
- 实时监控:
dstat能够实时显示系统资源的使用情况,帮助用户及时发现系统的性能问题。
- 综合性能评估:
dstat提供了CPU、内存、磁盘I/O、网络等多个方面的性能指标,使用户能够全面了解系统的运行状态。
- 自定义输出:
dstat支持多种参数选项,用户可以根据自己的需求定制输出的内容。
- 易于使用:
dstat的命令格式简单,用户只需在终端中输入相应的命令即可开始监控。
- 注意:
iptraf-ng软件包在 epel-release源里面
yum install dstat
dstat
glances
Glances是一个跨平台、实时的系统监控工具,它基于Python和psutil库开发,能够全面监控系统的CPU、内存、磁盘、网络等使用情况。
同时它也支持 C/S 方式进行软件环境平台的部署操作。
yum install glances
glances#原机上
glances -s -B 10.0.0.12
#新开一个终端
glances -c 10.0.0.12
cockpit
Cockpit是一个免费且开源的基于Web的Linux服务器管理工具,提供了友好的Web前端界面,方便用户监视和管理GNU/Linux服务器。
- 监控系统活动(CPU、内存、磁盘 IO 和网络流量)
- 查看系统日志条目
- 查看磁盘分区的容量
- 查看网络活动(发送和接收)
- 查看用户帐户
- 检查系统服务的状态
- 提取已安装应用的信息
- 查看和安装可用更新(如果以 root 身份登录)并在需要时重新启动系统
- 打开并使用终端窗口
yum install cockpit
systemctl start cockpit
systemctl status cockpit
systemctl enable cockpit
systemctl status cockpit
netstat -tnulp|grep 9090
sed -i 's/^root/#root/' /etc/cockpit/disallowed-users
cat /etc/cockpit/disallowed-users
systemctl restart cockpityum install cockpit-machines -y
yum install cockpit-storaged -y
一次性任务
Linux系统中的计划任务是一种用于在特定时间或条件下自动执行特定任务或程序的技术。
at
at 命令是 Linux 和 Unix 系统中的一个用于安排一次性任务在指定时间执行的命令。它允许用户指定一个命令或脚本,以及执行该命令的时间。任务会被放入系统的任务队列中,并在指定的时间由 atd(at daemon)服务执行。
at环境:
- 由包 at 提供
- 依赖与atd服务,需要启动才能实现at任务
- at队列存放在/var/spool/at目录中,ubuntu存放在/var/spool/cron/atjobs目录下
- 执行任务时PATH变量的值和当前定义任务的用户身份一致
- 作业执行命令的结果中的标准输出和错误以执行任务的用户身份发邮件通知给 root
- 默认CentOS 8 最小化安装没有安装邮件服务,需要自行安装
at计划任务:
用于在指定的绝对时间或相对时间执行一次任务。
需要atd服务的支持。
可以使用at命令来添加、查看或删除计划任务。
权限控制通过/etc/at.allow和/etc/at.deny文件实现。
systemctl status atd
apt install at -y
systemctl status atd
at 0:05
at -l
at -c 1
ls -l /var/spool/at
cat /var/spool/at/a0000201ac6709
ll /tmp/at-00-05
atat /tmp/at-1448
mail
ls -l /var/spool/cron/atjobs
cat /var/spool/mail/root
tail /var/log/maillog#输入输出重定向
echo reboot|at now+5min
at -l
at -d 11
at -l
周期性任务
cron 服务相关程序:
- cronie:主程序包,提供crond守护进程及相关辅助工具
- crontabs:包含CentOS提供系统维护任务
- cronie-anacron:cronie的补充程序,用于监控cronie任务执行状况
如:cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务
cron计划任务:
用于在指定的时间段或周期执行重复性的任务。
需要crond服务的支持。
可以使用crontab命令来添加、查看或编辑计划任务。
权限控制通过/etc/cron.allow和/etc/cron.deny文件实现。
ll /var/log/cron
ll/var/log/syslogcat /etc/crontab
用户计划任务
- 每个用户都有专用的cron任务文件:/var/spool/cron/crontabs/USERNAME-
- 默认标准输出和错误会被发邮件给对应的用户,如:mage创建的任务就发送至mage的邮箱-
- root能够修改其它用户的作业
- 用户的cron中默认 PATH=/usr/bin:/bin,如果使用其它路径,在任务文件的第一行加PATH=/path或者加入到计划任务执行的脚本中-
- 第六个字段指定要运行的命令。 该行的整个命令部分,直至换行符或“%”字符,指定的shell执行,除非使用反斜杠(\)进行转义,否则该命令中的“%”字符将变为换行符,并且第一个%之后的所有数据将作为标准输入发送到该命令。
crontab -l
crontab -u jose -l
crontab -l
crontab -u mage -l
crontab -e
echo "export EDITORvim" >> /etc/profile.d/env.sh
./etc/profile.d/env.shcrontab -e
crontab -l
tail /tmp/cron-test.log
crontab -e
tail /tmp/cron-test.logcrontab -l
vim cron-test.sh
#!/bin/bashPATH=/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binecho $PATH >> /tmp/cron-sh-test.logcat /tmp/cron-sh-test.log#查看不同用户cron文件
crontab -l #root
crontab -l #jose
crontab -l #mage
ls -l /var/spool/cron/crontabscrontab -l
mail
cat /var/log/syslog#交互式删除
crontab -l
crontab -ir
crontab -l#重定向创建
crontab -l
echo @reboot echo "this is test msg"|crontab
crontab -l
cron补充
cron中%的用法
cron任务中不建议使用%,它有特殊用途,它表示换行的特殊意义,且第一个%后的所有字符串会被将成当作命令的标准输入,如果在命令中要使用%,则需要用 \ 转义。
注意:将%放置于单引号中是不支持的
#如何在秒级别运行任务
crontab -l
vim cron-test.sh
#!/bin/bashPATH=/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binfor i in {1..60};doif [ $[$i%5] -eq 0 ];thenecho `date` >> /tmp/cron-sh-test.logfisleep 1done
面试题:11月每天的6-12点之间每隔2小时执行/app/bin/test.sh
在6,8,10,12点整共4次分别执行test.sh0 6-12/2 * 11 * /app/bin/test.sh