Linux定时任务-⾃动清理log⽇志⽂件,附案例详解。
⼀、为什么要定时清理log⽂件?
实际⼯作中,我们部署到服务器的应⽤可能随时在写⼊⽇志,有的应⽤⼀天产⽣的⽇志就较⼤,但是磁盘空间有限,所以磁盘常常很快就处
于⽤完状态,并由此产⽣⼀些问题,⽐如服务器上应⽤可能挂掉,影响⽣产。
⼆、如何清理log⽂件?
估摸着时间就去看看磁盘删删log⽂件??显然不科学,,这⾥记录⼀个⾼效的⽅法:编写Linux定时任务脚本,⾃动清理log⽇志⽂件。
1、创建shell脚本⽂件并赋予执⾏权限:shell创建文件并写入内容
[root@aigoV_66 ~]# touch auto_del_sjjk_log.sh    //创建shell⽂件
[root@aigoV_66 ~]# chmod +x auto_del_sjjk_log.sh  //赋予⽂件执⾏权限
关于 chmod +x 命令:
Linux下不同的⽂件类型,其⽂件名有不同的颜⾊:
蓝⾊表⽰⽬录,绿⾊表⽰可执⾏⽂件,红⾊表⽰压缩⽂件,浅蓝⾊表⽰链接⽂件,灰⾊表⽰其它⽂件。
新建的shell⽂件只是⼀个灰⾊的普通⽂件。
执⾏ chmod +x 命令,此时⽂件变成了绿⾊,有了可执⾏权限。
若再使⽤ chmod -x 命令,就去除了执⾏权限。
2、编辑刚创建的shell脚本⽂件,写⼊删除命令:
[root@aigoV_66 ~]# vi auto_del_sjjk_log.sh
#!/bin/sh
find git_workspace/xny/数据接⼝/target/log/ -mtime +2 -name "*.log" -exec rm -rf {} \;
~
~
                                                                                                                                                                                                                                                            ~
-- INSERT --
关于上⾯命令:
vi xx.sh :
编辑xx.sh 脚本⽂件。
进⼊编辑区后,按i键开始编辑,编辑完按Esc键,然后键⼊冒号:,再输⼊wq,回车保存退出。
删除命令部分:
find    查命令,查指定⽂件。
git_workspace/xny/数据接⼝/target/log/    需要清理的⽂件的⽬录位置。
-mtime    标准语句写法
+2    数字指代天数,即删除2天以前的      -name "*.log.*" -exec rm -rf {} \;
-name "*.log"    ⽬标⽂件类型
-exec    固定写法
rm -rf    强制删除包括⽬录在内的⽂件
例: rm -rf abc 将 abc ⼦⽬录及⼦⽬录中所有档案删除,并且不⽤确认 :
{} \;    固定写法
3、将上⾯shell⽂件添加到Linux定时任务脚本
[root@aigoV_66 ~]# crontab -e      //进⼊定时任务编辑页⾯(编辑保存⽅法同上)
0 23 * * * /root/syncsystemtime.sh
05 01 * * * sh /root/project/rm.sh
0 01 * * * /root/auto_del_sjjk_log.sh    //每⽇凌晨⼀点执⾏该删除⽇志的脚本⽂件
~                                                                                                                                      ~
~
                                                                                                                                      ~                                                                                                                                      ~                                                                                                                                      "/tmp/crontab.zvmT2t" 3L, 106C
进过上⾯⼀番操作后,服务器会在每⽇凌晨⼀点⾃动执⾏清理⽇志的操作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。