Linux做脚本定时任务清除日志
1:定时任务
linux 系统是由 cron 这个服务来控制的。查看crontab定时任务时间设置规范如下:
cat /etc/crontab
cron 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
cron进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
minute: 表示分钟,0~59之间的任何整数。
hour:表示小时,0~23之间的任何整数。
day:表示日期,1~31之间的任何整数。
month:表示月份,1~12之间的任何整数。
week:表示星期几,0~7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令或者脚本。
2:编辑第一个sh脚本del.sh并且设置定时任务执行该脚本
vi del.sh
2.1 插入一下脚本:(作用是将当前时间打印到当前目录的 a.log中)
#!/bin/bash
echo `date +"%Y-%m-%d %H:%M:%S"` hello word >> ./a.log
2.2 保存,给del.sh脚本添加权限
chmod a+x del.sh
2.3 给del.sh添加到定时任务中:使用crontab -e //编辑当前用户的定时服务,每分钟执行一次
* * * * * cd /home && ./del.sh &>/dev/null
2.4 查看a.log日志文件执行结果如下,代表定时任务添加成功
注意:Linux定时任务的命令如下
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务(会删除当前用户的所有定时任务指令,建议慎用)
crontab -e //编辑当前用户的定时服务
3:设置删除日志脚本
脚本语法: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
实例命令:
find /home/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
实例命令说明:
将 /home/tomcat/logs/ 目录下所有30天前带".log"的文件删除。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/home/tomcat/logs/ :想要进行清理的目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.log"表示查找扩展名为log的所有文件,"*"表示查找所有文件;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格+\+;
作者:杜云明 欢迎转载,与人分享是进步的源泉!
如果觉得本文对您有所帮助,您可以点赞收藏。
内容有不对的地方欢迎批评指正。