Shell脚本和计划任务实践

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

ps -eo pid,ppid,cmd,%mem --sort=-%mem

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

# for循环版本1
#!/bin/bash
NET=192.168.0
for i in {1..254}; do
{
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
}&
done
wait
# for循环版本2
#!/bin/bash
NET=192.168.0
for ((i=1; i<254; i++));do
{
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
}&
done
wait
# while循环
declare -i i=0
NET=192.168.0
while [ $i -lt 255 ]; do
ping -c 1 -w 1 $NET.$i > /dev/null && echo "$NET.$i:success!" || echo "$NET.$i:fail!"
((i++))
done

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

# 编写脚本backup.sh
cat > backup.sh << EOF
#!/bin/bash
[ -d /backup ] || mkdir /backup
/usr/bin/tar -cJf /backup/etcbak-\`date -d "-1 day" +"%F-%H"\`.tar.xz /etc &> /dev/null
EOF
# 给脚本添加执行权限
chmod u+x backup.sh
# 添加计划任务
echo ‘30 1 * * 1-5 /root/backup.sh‘ >> /var/spool/cron/root
# 查看计划任务
crontab -l

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

# 编写检查所有分区利用率的脚本chkdisk.sh
#!/bin/bash
LIMIT=80
MAIL=root@localhost
df | sed -rn ‘/^\/dev\/sd/s#^([^[:space:]]+).* ([[:digit:]]+)%.*#\1 \2#p‘ | \
while read DISKPART USED;do
if [ $USED -gt $LIMIT ];then
echo "$DISKPART has been used $USED%" | mail -s "Warning" $MAIL
fi
done
# 给脚本添加执行权限
chmod u+x chkdisk.sh
# 添加计划任务
echo ‘* */6 * * 1-5 /root/chkdisk.sh‘ >> /var/spool/cron/root
# 查看计划任务
crontab -l

Shell脚本和计划任务实践

原文地址:https://blog.51cto.com/14920534/2563607

系统相关
我还没有学会写个人说明!
上一篇

一个实现洋葱模型以及中间件机制的Golang版本Koa

下一篇

一、Linux cpuidle framework(1)_概述和软件架构

你也可能喜欢

评论已经被关闭。

插入图片