这篇文章主要讲解了“Shell怎么实现自动化压缩处理日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell怎么实现自动化压缩处理日志文件”吧!
Shell处理日志,自动保留30天的日志,如果超过14天的日志就自动压缩为gz格式存储下来,这样可以节省磁盘空间,也是定时备份日志,我这里是以日志文件举例的,其它的需求也可以自己根据脚本内容做调整。
#!/bin/sh################################################################# (c) Copyright 2012 Eric. All rights reserved.## Logs expired 30 days.## *cron# 1 6 * * * /bin/sh /var/app/shell/logs_arrange.sh > /var/app/shell/cron_logs_arrange.log###################################################################TODAY=`date +%s`# how many days ago will the logs to be zipPK_DAYS_AGO=14 PK_DATEDIFF=`expr ${PK_DAYS_AGO} \* 86400` PK_EXT=gz# how many days ago will the logs to be removedDAYS_AGO=30 DATEDIFF=`expr ${DAYS_AGO} \* 86400`cleanDir(){ directory=$1if [[ -d ${directory} ]];thenfor file in `ls -1 ${directory} | grep -v '.log$'`;doctime=`stat -c %Y ${directory}/${file}` timediff=`expr ${TODAY} - ${ctime}` extname=`ls ${directory}/${file} | awk -F '.' '{printf $NF}'`if [[ ${extname} != ${PK_EXT} ]] ; thenif [[ -f ${directory}/${file} ]] ; thenzipta=`expr ${timediff} - ${PK_DATEDIFF}`if [[ ${zipta} -gt 0 ]] ; thenecho "Package ${directory}/${file}"gzip -f ${directory}/${file} > ${directory}/${file}.${PK_EXT}fififiif [[ -f ${directory}/${file} ]];thendelta=`expr ${timediff} - ${DATEDIFF}`if [[ ${delta} -gt 0 ]];thenecho "Removing ${directory}/${file}"rm -rf ${directory}/${file}fifidonefi} cleanDir "/var/app/logs/webapps/admin"cleanDir "/var/app/logs/webapps/api"cleanDir "/var/app/logs/webapps/pos"
感谢各位的阅读,以上就是“Shell怎么实现自动化压缩处理日志文件”的内容了,经过本文的学习后,相信大家对Shell怎么实现自动化压缩处理日志文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。