ps、crontab 使用实例

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

 ~]# ps -eo pid,uid,rss,comm --sort -rss | head
   PID   UID   RSS COMMAND
   679     0 559312 kube-apiserver
   957     0 110240 etcd
  1281     0 71980 kube-controller
   682     0 36616 kube-scheduler
   956     0 18600 tuned
   758     0 15928 dhclient
   683     0 11824 rsyslogd
   677   999  9976 polkitd
  4591     0  9612 bash

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

~]# cat /tmp/for_ping.sh
for i in {0..255}; do
  for j in {0..255}; do
    ip="192.168.${i}.${j}"
    ping -c 1 -q -W 5 $ip
    if [ $? == 0 ] ;then
      echo $ip" success!"
    else
      echo $ip" fail!"
    fi
  done
done

~]# cat /tmp/while_ping.sh 
i=0;
j=0
while [ $i -le 255 ]
do
  while [ $j -le 255 ]
  do
    ip="192.168.${i}.${j}"
    ping -c 1 -q -W 5 $ip
    if [ $? == 0 ] ;then
      echo $ip" success!"
    else
      echo $ip" fail!"
    fi
    let j++
    let i++
  done  
done

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

~]# crontab -l
30 1 * * 1-5 sh /root/etc_bak.sh

~]# cat /root/etc_bak.sh 
tar -czf /backup/etcbak-$(date -d '-1 day' +%Y-%m-%d-%H).tar.gz /etc  

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

~]# cat disk_usage.sh 
diskspaces=($(df -hT | grep /dev | awk '{print $6","$7}' | sed 's/%//g'))
for ((i=0;i<${#diskspaces[@]};i++));do
   item=${diskspaces[i]};
   IFS=","
   array=($item) 
   # echo  "${array[0]}=${array[1]}"
   let value=${array[0]}-80;
   if [ $value -gt 0 ];then
     echo "分区 "${array[1]}" 使用量 ${array[0]}% 大于80%"
   fi
done

~]# crontab -l
*/10 * * * 1-5 sh /root/disk_usage.sh 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容