1、显示统计占用系统内存最多的进程,并排序
#!/bin/bash
ps aux | awk 'NR>=2 {printf "USE_MEMORY:%s% , COMMAND:%s\n",$4,$11}' | sort -nr
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
#!/bin/bash
#for循环实现
for i in {1..254}; do
ping -w 1 192.168.0.$i > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "192.168.0.$i success!"
else
echo "192.168.0.$i fail!"
fi
done
#############################################################
#!/bin/bash
#while实现
declare -i i=1
while [ $i -le 254 ]; do
ping -w 1 192.168.0.$i > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "192.168.0.$i success!"
else
echo "192.168.0.$i fail!"
fi
let i++
done
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
执行命令crontab -e编写计划任务,写入以下内容:
30 1 * * 1-5 tar -cJf /back/etcbak-`date -d 'last day' "+%F-%H"`.tar.xz /etc/* &> /dev/null
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
执行命令crontab -e编写计划任务,写入以下内容:
*/10 * * * 1-5 /bin/bash /root/scripts/disk_warn.sh &> /dev/null
其中disk_warn.sh内容如下:
#!/bin/bash
WARNING=80
MAIL=root@localhost
df | sed -rn '/^\/dev\/sd/s#^([^[:space:]]+).* ([[:digit:]]+)%.*#\1 \2#p' | \
while read diskpart used; do
if [ $used -gt $WARNING ]; then
echo $diskpart will be full,used:$used% | mail -s "diskcheck_alert" $MAIL
fi
done