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日志索引