编写定期删除日志文件的shell脚本程序。

实现代码

创建脚本del_log.sh

1
vim del_log.sh

编写,用find命令简洁

1
2
3
4
5
6
7
8
9
#!/bin/bash

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

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

#location 是删除文件所在目录
#-mtime +4 是设置删除多少天以前的文件
#-type f 删除的类型为文件

给文件执行权限

1
chmod +x del_log.sh

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

1
crontab -l

注意: 如果提示crontab命令不存在,那可能需要安装crontab命令。

添加定时执行任务

1
crontab -e

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

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

保存后提示

1
2
"/tmp/crontab.4rh7ec" 3L, 143C written
crontab: installing new crontab

查看当前用户下定时任务列表

1
crontab -l

到这就完成了定时删除日志文件的shell脚本。

命令crontab

时间表达式

1
2
*   *   *   *   *   command
分 时 日 月 周 命令

例子:

1
2
3
4
5
6
7
8
9
10
11
12
#每分钟执行一次
* * * * *

#每隔一小时执行一次
00 * * * *
#or
* */1 * * *
#(/表示频率)

#每小时的15和30分各执行一次
15,45 * * * *
#(,表示并列)

命令find

例子:

1
2
#将目前目录及其子目录下所有延伸档名是 sh 的文件列出来。
find . -name "*.sh"

find命令详情请查看

完结。