shell脚本实现定时删除文件或文件夹

一、删除XX天(默认10天)之前某个目录下面带.log的日志文件,并且输出文件显示删除的文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/bin/sh

#如果没有输入变量值,默认天数为10

start=$(date +%y-%m-%d-%H%M%m)

File=/temp/delete_$start.txt

FilePath=/data

echo $File

if [ ! -n "$1" ];

then

    day=10

else

     day=$1

fi

#-mtime 10 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件

echo "输出日志文件:"

echo "find $FilePath -mtime +$day -name "*.log*" > $File"

find $FilePath -mtime +$day -name *.log* > $File

echo "删除日志文件:"

echo "find $FilePath -mtime +$day -name "*.log*"  -exec rm -rf {} \;"

find $FilePath -mtime +$day -name *.log*  -exec rm -rf {} \;

二、删除XX天(默认10天)之前的文件夹

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#!/bin/sh

#如果没有输入变更值,默认天数为10

start=$(date +%y-%m-%d-%H%M%m)

File=/temp/delete_backup_$start.txt

FilePath=/data/backup

echo $File

if [ ! -n "$1" ];

then

    day=10

else

     day=$1

fi

#删除10天之前的文件夹

echo "输出日志文件:"

echo "find $FilePah -type d -ctime +$day > $File"

find $FilePath -type d -ctime +$day > $File

#压缩10天之前的文件夹

echo "find $FilePath -type d -ctime +$day | xargs gzip -r"

find $FilePath  -type d -ctime +$day | xargs gzip -r

echo "删除日志文件:"

echo "find $FilePath -type d -ctime +$day | xargs rm -rf"

find $FilePath  -type d -ctime +$day | xargs rm -rf

三、清空文件内容(产生日志文件过大,占用磁盘空间),可以与定时任务结合使用

每天早上6点执行    0  6 * * *  sh /log/CleanLogFile.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

#!/bin/bash

path=/log

filename=$path/BigLog.txt

#搜索大于10KB的文件

#-size +10k

#搜索小于10KB的文件

#-size -10k

#搜索等于10KB的文件

#-size 10k

if [ $# -ne 1 ]  

then  

        #echo "默认设置文件大小为500M"  

        filesize=500M

    else

        filesize=$1

fi 

echo "设置清除文件大小:$filesize"

if [  -f "$filename" ]; then    

    rm -rf $filename

    echo  "原始文件已删除"

else

    echo "$filename不存在"

fi 

find $path -name "*.*"  -size +$filesize -exec ls -lh {} \; | awk '{ print $5,$9}' > $filename

for line in `cat $filename`

do

    #如果有匹配的内容则立即返回状态值0

    echo "$line" | grep -q "$path"

    #$? 是指上一条命令的执行状态, 0就是正常

    if [  $? -eq 0 ]

    then

        #获取文件类型

        filetype=${line#*.}

        if [ $filetype == "zip"  ];then

            echo "rm -rf $line"

            rm -rf $line

        else

            echo "执行清空命令 cat /dev/null > $line"

            cat /dev/null  >  $line

        fi

    fi

done

编写shell定时任务

执行命令:

1

2

3

[root@localhost ~]# crontab -e

10 0 * * * /data/auto-del.sh >/dev/null 2>&1

查看定时任务:

1

2

[root@localhost ~]# crontab -l

10 0 * * * /data/auto-del.sh >/dev/null 2>&1

备注:

每隔30分钟root执行一次:*/30 * * * *  /data/auto-del.sh >/dev/null 2>&1

每天晚上1点执行:0 1 * * *  /data/auto-del.sh >/dev/null 2>&1

1.通过crontab –e来创建自己的定时任务,5个*的含义是,第一个*是分,第二个*是小时,第三个*是日,第4个*是月,第5个*是周,第6列是命令

2.-exec   command   {} \;      —–将查到的文件执行command操作,{} 和 \;之间有空格

3.find 命令三个选项用于按照时间查找,单位都是小时:

mtime — 文件内容上次修改时间
atime — 文件被读取或访问的时间
ctime — 文件状态变化时间

情况一:正常情况(系统有service命令)

重启服务命令:[root@centos6 /]# service crond restart

启动服务命令:[root@centos6 /]# service crond start

停止服务命令:[root@centos6 /]# service crond stop

4.如果需要用到环境变量,必须的脚本中添加环境变量

例如,加载java变量

1

2

3

export JAVA_HOME="/opt/jdk1.8.0_91"

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$LAMPP_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:${ANT_HOME}/bin

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在网上发现给几个朋友共享的机密资料,有没有办法给 word 文档加个水印,下回就知道是谁泄露的秘密了?   给客户发一份 excel 格式的报价单,只希望让他看一次就自动销毁怎么办?   希望文件到期就自动销毁,有没有办法?   ……   当然,有商用的解决方案,但往往昂贵而且部署复杂,您为什么不试试 X-文件锁呢?免费量又足哦。   程序介绍:   本程序为大成天下信息技术有限公司发布免费工具,用于将 MS Office 文档转换为加密的 UND 文档,同时可设置文档的阅读次数及自动销毁时间。在阅读 UND 文档期间,用户无法复制文档内容。当 UND 文档满足销毁条件后,再次被打开时将以不可恢复的方式安全删除该文档。   文件说明:   UndMaker.exe:UND 文档创建工具   UndViewer.exe:UND 文档阅读工具   使用说明:   1、执行 Setup.exe 安装本程序;   2、在“我的电脑”或“资源管理器”中右键点击 MS Office 文档,选择“转换为UND安全文档”;   3、在弹出的窗口中设置相关参数并点击“确定”;   4、将创建好的 UND 文档发送给他人;   5、在安装了本程序的电脑上可以通过鼠标双击打开 UND 文档,并在规定次数/时间内正常阅读。   命令行参数:   UndMaker:   /init:初始化文件关联   /V:查看程序版本   filename:生成 UND 文档   UndViewer:   /init:初始化文件关联   /o :阅读 UND 文档   /v :查看 UND 文档水印   /V:查看程序版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jh035

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值