定时清除linux文件内容


1、新建一个清除文件内容的shell脚本/usr/local/bin/clear,内容如下:

#!/bin/bash
#变量赋值等于号两边不能有空格
FILE_PATH=/app/xxx/catania.out

#if判断条件前后一定要有空格,且要有;then
if [ -f $FILE_PATH ];then
    #表达式一定要用``括起来,原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awkexprexpr 最常用。
    #expr 是一款表达式计算工具,使用它能完成表达式的求值操作
    #表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2
    FILE_SIZE=`stat -c %s $FILE_PATH`
    #除法(/)
    FILE_SIZE1=`expr $FILE_SIZE / 1024 / 1024 / 1024`
    echo $FILE_PATH文件大小为:[$FILE_SIZE]Byte,[$FILE_SIZE1]GB
    #乘法(\*)
    THRESHOLD=`expr 1 \* 1024 \* 1024 \* 1024`    
    if [ $FILE_SIZE -gt $THRESHOLD ];then
        echo 大于阈值:1GB,开始清空
        echo > $FILE_PATH
        #echo后的字符串可以带""也可以不用
        echo "清空成功"
    fi
else
    echo $FILE_PATH文件不存在
fi

2、往用户的crontab中添加一个cron去执行上面这个shell

执行crontab -e命令用vi添加如下内容,保存之后就可以初始一个定时任务到crontab中,可以使用crontab -l命令查看定时任务是否添加成功

*/5 * * * * /usr/local/bin/clear

 

扩:

1、crontab

参数 :

-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

-r : 删除目前的时程表

-l : 列出目前的时程表

 

2、crontabl -e

用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。

它的格式共分为六段,前五段为时间设定段(cron表达式),第六段为所要执行的命令段

格式如下:f1 f2 f3 f4 f5 program

 

3、cron表达式

格式如下:f1 f2 f3 f4 f5

其时间段的含义如下:

段                    含义                  取值范围

第一段          代表分钟               0—59    

第二段          代表小时               0—23

第三段          代表日期               1—31

第四段          代表月份               1—12

第五段          代表星期几             0—6(0代表星期日)

当 f1 为 * 时表示每分钟要执行,f2 为 * 时表示每小时要执行,其余类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推

当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表

例如:

周一到周五每天下午 5:00 执行一次 /usr/bin/backup :

0 17 * * 1-5 /usr/bin/backup

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM