Linux 定时脚本任务
脚本任务描述:
在/home/自己用户目录下“每十分钟生成一个当前时间,大小为300M的文件,当该磁盘目录使用率大于30%时,触发告警(将告警信息(包含时间、清理文件的名称及大小)写入/root/alert.log),并删除触发告警之前前一天及以前的”/home/自己用户目录下“自动生成的文件,如果还大于30%,则清理前三小时的自动生成的文件。
首先根据脚本所需内容,可以分几步写:
第一步:生成定时执行任务(每十分钟执行一次脚本),并生成以时间戳命名,大小为300M的文件
首先,根据crontab编写定时命令,怎么使用crontab可以看小编另一篇博客:
Linux crontab 定时执行脚本
简单来说就是,
crontab -e,进入编辑模式。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/10 * * * * root /home/(你自己用户下)/test.sh
#查询时间戳并赋值给变量var_date
var_date=$(date +%s)
#生成大小为300M的文件
dd if=/dev/zero of=/home/(你自己目录下)/$var_date bs=300M count=1
第二步:设置告警阈值,查询当前磁盘使用情况,判断是否触发告警
#查询当前磁盘使用情况
var_cur=$(df -h | grep centos-home | awk '{print $(NF -1)}'| cut -d % -f 1)
#设置阈值大小
var_warn=30
在这里查询磁盘状态的命令稍微有点点复杂涉及三个管道符,主要难点就是只获取磁盘使用率的数值其他任何值以及符号都不要。
这里可以解释一下几个命令,awk '{print $(NF -1)}' ,这个命令是指文本输出每行的倒数第二个列。
关于awk命令的解析可以看看这位博主的文章:
awk基础,awk介绍,awk基本语法,直接使用action,打印列,初识列和行,\$0、\$NF、NF,基础示例,begin模式,end模式
其次就是 cut -d % -f 1,这里是指截取以%为分隔符的第一域内容。
关于cut命令可以参考这两篇文章哦:
cut命令使用
cut用法
第三步:当触发告警时,将前一天的文件全部删除,若还是高于阈值则删除3小时前的文件
#查询当前系统时间
var_time=$(date +%Y-%m-%d" "%H:%M:%S)
#判断当前磁盘使用率是否大于阈值,若大于则删除前一天之前的文件,并在alert.log文件中写入告警信息包括时间,文件名,大小
if [ "$var_cur" -gt 30 ]
then echo $var_time >> /root/alert.logdu -mh 165* >> /root/alert.logfind . -maxdepth 3 -name "165*" -mtime +1 | rm -rf 165*
Fi#如果依然大于30%则删除3小时前的指定文件
var_time=$(date +%Y-%m-%d" "%H:%M:%S)
if [ "$var_cur" -gt "$var_warn" ];
then echo $var_time >> /root/alert.logdu -mh 165* >> /root/alert.logfind . -maxdepth 3 -name "165*" -mmin 180 | rm -rf 165*
Fi
以上就是个人的思路,如果有大佬有不同想法,敬请指点哈~~~
Linux 定时脚本任务相关推荐
- linux定时任务每小时_linux 后台运行,linux定时脚本任务,定时(每分钟),每小时...
后台运行 在终端输入命令: # nohup python ./test.py >1.txt 解释:nohup就是不挂起的意思,将python ./test.py直接放在后台运行,并把终端输出存 ...
- linux定时脚本任务
1.导出数据库到文件目录中 2.压缩已导出的test.sql文件 3.格式化date表达形式:年月日 4.查找一周前的时间 5.一周前的年月日显示 6.正式编写脚本文件 7.测试脚本文件是否有误 8. ...
- linux定时执行python脚本_linux定时执行python脚本的方法以及失败不执行的处理方法...
首页,linux定时任务用到的是crontab,我们来看一下crontab如何使用 crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的cro ...
- Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)
场景介绍: 在Linux中,我们通常开启服务需要使用systemctl start 服务名 命令,这样,如果开启一个服务还好,但是如果同时开启多个服务,难免会感到麻烦,这时,我们可以自定义一个脚本,去 ...
- Linux 定时执行shell 脚本
2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...
- linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件
使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用m ...
- linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
<LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...
- linux定时重启tomcat的脚本,Linux系统中的tomcat定时重启脚本
1.Linux下tomcat重启脚本 [root@]# vi test.sh #!/bin/sh export JAVA_HOME=/usr/java/j2sdk1.4.2_06/ pid=`ps - ...
- linux定时重启tomcat的脚本,linux定时重启tomcat服务的脚本学习
要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...
最新文章
- 史上最全ajax全套讲解
- Spring(07)——单例注入多例之lookup-method
- GridView利用FootTemplate插入新记录
- mysql 数据库引擎切花_asyncio异步编程【含视频教程】
- TensorFlow Google大会总结
- Java 连接 MS sql Server 2005
- Xcode多Target设置
- C#中的 具名参数 和 可选参数
- Linux qt 更新,Qt 5.15 Beta 2 发布,Qt 6之前的最后一个重大更新
- 【Alpha 冲刺】 2/12
- 热血江湖战无止境与服务器连接不稳定,《热血江湖》V14.0“战无止境”新版玩不停...
- npm run build失败
- 联想杨元庆:没必要做操作系统和芯片;华为Mate 20 Pro被迫退出安卓 Q Beta;GitHub推赚钱新利器 | 极客头条...
- Python网络编程之TCP通信实例和socketserver框架使用例子
- 如何理解Unicode,UTF-8,UTF-16。
- 软件工程--快速原型模型详解
- 鸿蒙熔炉是真实存在的吗,古董局中局父辛爵是真的吗 父辛爵真实存在国内仅有两件...
- RAID 磁盘列阵与阵列卡
- win7下搭建Nginx简单图片服务器
- h61 nvme硬盘_切割SN520amp;amp;对比主流NVME2242amp;amp;无硬盘盒迁移系统