震惊君的Linux之旅 ------ 进程、系统性能和计划任务

本文介绍了如何在Linux环境中,通过命令行工具监控和管理系统资源。包括使用`ps`命令显示占用内存最多的进程并排序,利用`for`和`while`循环遍历192.168.0.0/24网段进行ping测试,设置定时任务在工作日每天1:30备份`/etc`目录,以及通过`cron`定时检查磁盘空间,当利用率超过80%时发送邮件警告。

1、显示统计占用系统内存最多的进程,并排序。

ps aux				显示全部进程
ps axo				后接进程属性,可用于筛选
ps (-)k				后接进程属性,用于排序,负号为倒序

[root@centos7 ~]#ps axo pid,%mem,command k -%mem
PID %MEM COMMAND
1516 6.3 /usr/bin/gnome-shell
1448 1.2 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-brJNmh/database -seat seat0 -nolisten tcp vt1
1632 0.8 /usr/libexec/gsd-media-keys
……

可见最占用内存的进程为gnome-shell

2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

1.for循环
# 脚本 for_test.sh
vim for_test.sh
NETID=192.168.0
for HOSTID in {1..254};do	# ip地址最后位范围为1~254                                                                                                                                                   
    {
    if ping -c1 -W1 $NETID.$HOSTID &> /dev/null;then	# -c1为ping一次,-W1用于不管有无ping通,都再1秒后断开
        echo "$NETID.$HOSTID    success!"
    else
        echo "$NETID.$HOSTID    fail!"
    fi
    }&	# 使用 **并行** 运行,否则一个一个ping 效率低下
done
wait	# 确保运行循环完成后,将所有结果显示,且返回终端


2.while循环
vim while_test.sh
NETID=192.168.0
HOSTID=1
while [ $HOSTID -lt 255 ];do	# 当变量HOSTID等于255时,循环终止                                                                                                                                               
    {
    if ping -c1 -W1 $NETID.$HOSTID &> /dev/null;then
        echo "$NETID.$HOSTID        success"
    else
        echo "$NETID.$HOSTID        fail"
    fi
    }&
    let HOSTID+=1	# 令HOSTID值不断以1个单位递增,直到脱离循环条件
done
wait

3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

tar -Jcvf				打包并压缩文件
date -d					用于设定昨天、前天、前几天,有多种语法

# 1.备份脚本backup_etc.sh
vim /data/backup_etc.sh
tar -jcvf etcbak-` date -d 'today -1 day' +'%F-%H'`.tar.xz /etc

chmod +x backup_etc.sh				加执行权限

# 2.添加计划任务 crontab -e OR vim /etc/contab(需要加username,下一题使用该方法~)
crontab -e
30 1 * * 1-5 /data/backup_etc.sh (一般建议 &> /dev/null 将STOUT丢弃,避免邮件过多)
                                                                                                                                           

4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警

# 1.筛选出分区信息并由高到低排序显示最大值,只要最大值高于80就报警
df -h | sed -nr '/\/dev\/sd/s#^.* ([0-9]+)%.*$#\1#p'| sort -nr | head -1

# 2.制作一个脚本并添加(注意!确保该脚本存储的文件夹所用用户有执行权限)
vim /data/disk_warning.sh
WARNING=80
# 注意USE变量指代命令,所以反向单引号不要忘                                                                                                                                                                 
USE=`df | sed -nr '/\/dev\/sd/s#^.* ([0-9]+)%.*$#\1#p'| sort -nr | head -1`
[ "$USE" -gt "$WARNING" ] && wall The Usage of Disk out of control

chmod +x /data/disk_warning.sh				加执行权限

# 3.指定计划任务/etc/crontab
vim /etc/crontab 
*/10 * * * 1-5 wang /data/disk_warning.sh

# 4.观察日志,可检测是否执行 (一般建议 &> /dev/null 将STOUT丢弃,避免邮件过多)
tail -f /var/log/cron 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值