Shell定时删除日志

时间:2021-04-24 06:27:33

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格式的