码迷,mamicode.com
首页 > 系统相关 > 详细

Shell脚本和计划任务实践

时间:2020-12-18 13:10:27      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:占用   cmd   chmod   space   sort   名称   保存   工作   格式   

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脚本和计划任务实践

标签:占用   cmd   chmod   space   sort   名称   保存   工作   格式   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!