Linux 下使用crontab 定时打包日志并删除已被打包的日志

简介: crontab是和用户相关的,每个用户有自己对应的crontab 。cron是Linux下的定时执行工具,以下是重启/关闭等等的命令

crontab是和用户相关的,每个用户有自己对应的crontab 。


cron是Linux下的定时执行工具,以下是重启/关闭等等的命令


#/sbin/service crond start    //启动服务
#/sbin/service crond stop     //关闭服务
#/sbin/service crond restart  //重启服务
#/sbin/service crond reload   //重新载入配置
#/sbin/service crond status  //查看服务状态


cron服务提供 crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:


crontab -u 设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l 列出某个用户cron服务的详细内容

crontab -r 删除某个用户的cron服务

crontab -e 编辑某个用户的cron服务


设置定时的参数图:


d3450353cdf24a7ad2e74151ab327240_f389f88c1ab146bcb4f6380519277d55.png


crontab特殊的符号说明:


  • “*” 代表所有的取值范围内的数字。特别要注意哦!
  • “/” 代表每的意思,如"*/5"表示每5个单位
  • “-” 代表从某个数字到某个数字
  • “,” 分散的数字

例如:


30 21 * * * 表示每晚的21:30

45 4 1,10,22 * * 表示每月1、10、22日的4 : 45


现在是正式代码, 压缩上一个月的日志,并把其删除。


在logs文件夹的同级目录下新建一个 .sh文件 例如:logzip.sh


内容:


echo "Please wait..."  
m=`date -d "1 months ago" +%Y-%m`    #获取上个月的yyyy-mm格式的日期字符串
m2=`date -d "1 months ago" +%Y%m`
index=0
f=`ls /home/hls/apache-tomcat-7.0.61/logs -1 -c`  #获取logs下文件列表( /home/hls/apache-tomcat-7.0.61/logs 是日志的所在的路径)
for name in $f
do
        n=`expr "$name" : '.*\([0-9]\{4\}-[0-9]\{2\}\).*'`    #从文件名称中提取yyyy-mm格式日期
        if [ "$n" != "" ] && [ "$n" = "$m" ]
        then
                f[$index]="/home/hls/apache-tomcat-7.0.61/logs/$name"    #logs文件夹下符合要求的文件名称放入数组
        else
                f[$index]=""
        fi
        (( index ++ ))
done
echo "$f"
str=${f[@]}
if [ "${#str}" -gt 0 ]       #如果大于 0
then
zip /home/hls/apache-tomcat-7.0.61/logs/$m2.zip  $str    #压缩数组中的文件为yyyymm.zip文件,打包放在logs下
else
echo "No files found."
exit 0
fi
echo "$m2.zip maked, now delete old files."
rm -fr $str        #删除已被打包文件
echo "done."
exit 0


使用方法:


执行 crontab -e 编辑当前用户定时任务,进入编辑页面,点击 o ,输入


0 0 1 * * /home/hls/apache-tomcat-7.0.61/logzip.sh >> /home/hls/apache-tomcat-7.0.61/crontablog.log 2>&1


按esc退出编辑 然后 :wq 保存退出。这样就在crontab里设置了定时任务(每月一号凌晨执行logzip.sh,并把执行文件中的日志输出在crontablog.log中)


注意:windows下面创建的文件回车符和linux/unix下面的回车符不一样,可能会导致脚本无法执行


服务器高级架构体系:https://xxetb.xet.tech/s/4DEnTI

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
777 1
|
Shell Linux 开发工具
Linux定时清理日志
Linux定时清理日志
503 0
|
Linux
百度搜索:蓝易云 ,Linux系统定时清空日志内容和删除日志文件教程。
通过以上步骤,您可以在Linux系统中设置cron作业来定期清空日志内容和删除日志文件。请确保在编辑cron作业之前,您具有足够的权限来访问和修改日志文件。
250 0
支付系统40------定时查单-订单未创建,支付宝登陆前在支付宝端创建还是没有创建,不知道,之所以打印警告日志,是因为创建的时候更容易看到它
支付系统40------定时查单-订单未创建,支付宝登陆前在支付宝端创建还是没有创建,不知道,之所以打印警告日志,是因为创建的时候更容易看到它
|
关系型数据库 MySQL 调度
实时计算 Flink版产品使用合集之归档日志定时清理导致任务失败如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 应用服务中间件 nginx
nginx日志定时切割 按年月日
nginx日志定时切割 按年月日
321 0
|
Shell Linux
Linux使用Shell脚本定时清理日志
Linux使用Shell脚本定时清理日志
603 1
|
Unix Linux Shell
Linux 下使用crontab 定时打包日志并删除已被打包的日志
f=`ls /home/hls/apache-tomcat-7.0.61/logs -1 -c` #获取logs下文件列表( /home/hls/apache-tomcat-7.0.61/logs 是日志的所在的路径)
324 0
|
Linux
如何查找 Linux 系统`cron` 或 `crontab` 日志?
如何查找 Linux 系统`cron` 或 `crontab` 日志?
2391 0
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
735 9