Shell定时删除日志

Posted JackLU刘先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell定时删除日志相关的知识,希望对你有一定的参考价值。

vim del_log.sh

#!/bin/bash

location="/home/dl/code/logs"

find $location -mtime +4 -type f | xargs rm -f

#location 是删除文件所在目录

#-mtime +4 是设置删除多少天以前的文件

#-type f 删除的类型为文件

 

给文件执行权限

chmod +x del_log.sh

查看当前用户是否存在定时执行任务

crontab –l

添加定时执行任务

crontab –e

进入到文件/tmp/crontab.4rh7ec(文件后缀不一样没关系),添加

10 4 * * 1 /bin/bash /home/dl/code/del_log.sh

命令crontab

*   *   *   *   *   command

分  时  日  月  周   命令

 

#每天两点执行一次

0 2 * * *

 

#每分钟执行一次

* * * * *

 

#每隔一小时执行一次       

00  *  *  *  *

#or

* */1 * * * 

#(/表示频率)

 

#每小时的15和30分各执行一次

15,45 * * * *

#(,表示并列)

 

#将目前目录及其子目录下所有延伸档名是 sh 的文件列出来。

find . -name "*.sh"

 

命令set ff?

编写shell脚本后:

chmod 777 del_log.sh

运行时报错:/bin/bash^M: bad interpreter: 没有那个文件或目录

vim test.sh
:set ff?
如果出现fileforma=dos那么就基本可以确定是这个问题了。
:set fileformat=unix
:wq

 

错误分析:

因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。

脚本文件是DOS格式的, 即每一行的行尾以 来标识, 其ASCII码分别是0x0D, 0x0A.

可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的





以上是关于Shell定时删除日志的主要内容,如果未能解决你的问题,请参考以下文章

liunx 使用crontab定时任务+shell脚本删除tomcat日志elasticsearch日志索引

定时删除日志

常见的一些shell脚本书写,定时删除,压缩备份

shell定期删除日志脚本

Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法

采用shell脚本定时清理Tomcat日志