头条创作挑战赛 大有学问 一、linux的定时任务 通过crontabe命令编辑文件内容,具体语法如下:〔分〕〔小时〕〔日期〕〔月〕〔星期〕具体任务 其中: 分,表示多少分钟,范围:059 小时,表示多少小时,范围:023 日期,表示具体在哪一天,范围:131 月,表示多少月,范围:112 星期,表示多少周,范围:07,0和7都代表星期日 还有一些特殊字符,比如: 代表如何时间,比如:1表示每天凌晨1点执行。 代表每隔多久执行一次,比如:5表示每隔5分钟执行一次。 ,代表支持多个,比如:107,9,12表示在每天的7、9、12点10分各执行一次。 代表支持一个范围,比如:1079表示在每天的7、8、9点10分各执行一次。 二、功能说明 应用程序的日志会一直输出到日志文件nohup。out里,这个文件也会不断的增大,一直蚕食服务器硬盘。但是,我们都知道,日志对于我们而言是非常重要的,一量应用程序出现bug,或者服务器宕机,我们必须通过日志文件来进行debug或进一步分析。所以,日志文件不能简单的一删了之。这时,我们想到,如果能将日志文件切分该多好,这样我们可以留下重要的日志,而删掉不必要的日志。以下脚本为定时保存最近一个的日志文件,其他的进行了删除。!binsh执行切割日志文件crontabl查看当前是否存在任务crontabe编辑指定执行哪个脚本以及执行时间00。projectcorn。sh每日凌晨执行分割日志脚本基础目录basePath。projectlog判断目录是否存在,不存在则创建目录if〔!dbasePath〕thenmkdirbasePathelseechofilealreadyexistsfiinflux拷贝日志文件到昨天的log中cp。nohup。outbasePathdatedyesterdayYmd。log清空日志文件并保持文件可继续写入,无需重启写的进程catdevnull。nohup。out一月前的文件historyTime(dateYmdd1monthago)echo{historyTime}实现遍历删除一个月前的日志文件forfileinbasePathdoiftestffilethentmp{file}if〔{historyTime}gt{tmp。}〕thenrmfbasePath{file}echormfbasePath{file}fielseechofile是目录fidone