Linux使用Shell脚本定时清理日志
一、删除指定时间文件命令:
将/data/lydms-util-sms/logs/
目录下所有30天前带.log
的文件删除
find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.log"
表示查找扩展名为jpg的所有文件.
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; 固定写法,一对大括号+空格++;
二、计划任务:
1、创建shell文件
创建可执行shell文件
touch /data/shell/bin/del-30-days-ago-log.sh
添加文件可运行权限
chmod +x /data/shell/bin/del-30-days-ago-log.sh
2、shell文件中添加脚本
vim /data/shell/bin/del-30-days-ago-log.sh
打开创建的文件后,添加下面的数据。
#!/bin/sh
find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
3、添加系统计划任务:
打开系统定时任务文件
crontab -e
将shell文件,添加到系统定时任务中
0 0 * * * /data/shell/bin/del-30-days-ago-log.sh
三、可能出现问题
1、超过运行时间,没有执行
没有将.sh
文件设置为可执行文件
添加文件可运行权限
chmod +x /data/shell/bin/del-30-days-ago-log.sh
2、保存系统定时任务文件出现问题
(1)、空格问题
多一个空格,或者少一个空格。
(2)、corn表达式问题
采用5位corn表达式。
# 文件格式說明
# ——分鐘(0 - 59)
# | ——小時(0 - 23)
# | | ——日(1 - 31)
# | | | ——月(1 - 12)
# | | | | ——星期(0 - 7,星期日=0或7)
# | | | | |
# * * * * * 被執行的命令
从第一个开始分别为分、时、日、月、星期。