1. 显示统计占用系统内存最多的进程,并排序。
正序 ps -eo "pid,rss,comm" --sort rss
逆序 ps -eo "pid,rss,comm" --sort -rss
ps aux 查看输出选项,默认为pid,%cpu,%mem,vsz,rss,tty,stat,start,time,command(comm是命令简写)
2.编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出""success!"",若ping不通则输出""fail!""
#!/bin/bash
count=0
while [ $count -le 254 ];do
let count++
comm="ping -c 1 -w 2 192.168.0.$i"
echo $comm
if $comm &>/dev/null;then
echo success
else
echo fail
fi
done
#!/bin/bash
. /etc/rc.d/init.d/functions
for i in {1..254};do
comm="ping -c 1 -w 2 192.168.0.$i"
if $comm &>/dev/null;then
action "$comm" /bin/true
else
action "$comm" /bin/false
fi
done
3.每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
crontab -e
30 1 * * mon-fri tar -Jcf /backup/etcbak-`date -d "-1 day" +"\%F-\%H"`.tar.xz /etc
4. 工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就发送邮件报警"
#!/bin/bash
# 收件人
contact='123456@qq.com'
# 告警邮件发送标志,已发送1,未发送0
mail_warning=0
# 告警邮件主题
mailsubject="$(hostname) Warning:Disk partition usage over 80%"
# 恢复邮件主题
mailsubject1="$(hostname) Info:Disk partition usage recovers to below 80%"
while true
do
# 查看用量超过80%的磁盘分区
disk_used="df -hP | awk -F '[% ]+' '\$5 >= 80'"
disk_warning=`eval $disk_used |wc -l`
# 工作日,任一磁盘分区用量大于80%且未发送过告警邮件,则发送告警邮件,告警邮件标记为已发送
[ "$disk_warning" -gt 1 ] && [ "$mail_warning" -eq 0 ] && [ `date +%w` -le 5 ] \
eval $disk_used | mail -s $mailsubject $contact && mail_warning=1
# 工作日,若磁盘分区用量全部恢复至80%以下且已发送过告警邮件,则发送恢复邮件,告警邮件标记为未发送
[ "$disk_warning" -le 1 ] && [ "$mail_warning" -eq 1 ] && [ `date +%w` -le 5 ] \
echo $mailsubject1 | mail -s $mailsubject1 $contact && mail_warning=0
sleep 600
done