首页 > 其他分享 >nohup定时日志分割每天生成一个日志文件

nohup定时日志分割每天生成一个日志文件

时间:2023-08-14 14:12:48浏览次数:28  
标签:log sh nohup 日志 定时 dir

使用nohup启动java后台程序时,默认生成的日志文件保存在nohup.out中,随着时间的推移日志文件会越来越大,非常不方便查。所以如果一天生成一个日志文件,则每个日志文件户小很多,方便打开查看。下边介绍如何定时每天生成一个日志文件

1、创建shell脚本

首先创建一个log.sh的shell脚本,内容如下:

log_dir="/root/knight/java/admin"
# 拷贝日志文件到昨天的log中
cp $log_dir/nohup.out $log_dir/nohup`date -d yesterday +%Y%m%d`.log


# 清空nohup.out日志
cat /dev/null > $log_dir/nohup.out


# 删除14天以前的日志
find $log_dir -mtime +14 -name 'nohup*.log' -exec rm -rf {} \;

其中:log_dir="/root/knight/java/admin"用于指定每天日志文件的存放位置。

2、手动执行shell脚本

在脚本所在文件夹下运行以下命令执行脚本

./log.sh

如果提示以下错误:

cp: cannot stat '/usr/local/'$'\r''/nohup.out': No such file or directory

是因为Shell脚本在Windows系统编写时,每行结尾是\r\n,而在Linux系统中行每行结尾是\n,所以在Linux系统中运行脚本时,会认为\r是一个字符,导致运行错误。

执行以下命令去除Shell脚本中的\r字符:

sed -i 's/\r//' log.sh

如果提示权限不足,执行以下命令增加权限:

chmod 777 ./log.sh

验证脚本执行没有问题后,进行下一步操作。

3、设置定时任务

执行以下命令打算定时任务配置:

crontab -e

按如下内容添加定时任务:

0 0 * * * /root/knight/java/admin/log.sh

其中  0 0 * * * /root/knight/java/admin/log.sh  为新添加的定时任务,每天0点执行指定的shell脚本,用户可以根据自己的实际需要调整时间。

执行以下命令重启定时任务配置以使新增加的定时任务配置生效:

service crond restart

 

参考原文链接:https://blog.csdn.net/sg_knight/article/details/130369581

标签:log,sh,nohup,日志,定时,dir
From: https://www.cnblogs.com/bkyzc/p/17628464.html

相关文章

  • 如何编写定时关机脚本以保护服务器安全
    引言:近期,网络安全备受关注,服务器的安全性成为企业和个人用户日益关注的焦点。为了进一步加强服务器的安全性,定时关机是一种有效的措施。本文将介绍如何编写一个定时关机脚本,并结合定时任务编辑器实现自动关机操作,从而确保服务器在非工作时间段处于关闭状态,减少被攻击的风险。1.......
  • Log4j疯狂写日志问题排查 | 京东云技术团队
    一、问题是怎么发现的最近有个Java系统上线后不久就收到了磁盘使用率告警,磁盘使用率已经超过了90%以上,并且磁盘使用率还在不停增长。二、问题带来的影响由于服务器磁盘被打满,导致了系统正常的业务日志无法继续打印,严重影响了系统的可靠性。三、排查问题的详细过程刚开始收到磁盘告......
  • Hangfire定时任务
     Hangfire定时任务一、 HangFire1. HangFire官方网址:2. HangFire 中文文档:二、 下载NuGut包 1. Hangfire是基础的包2. Hangfire.HttpJob 是仪表盘任务三、 连接数据库1. CREATE DATABASE HangFireText  数据库创建数据表2. "ConnectionS......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录8
    Django实现文件上传、文件列表查看、修改、限流和日志记录8本章节,总结一些部署项目遇到的报错,希望会有所帮助NameError:name'datetime'isnotdefined报错“logging.info('用户{}在{}登录成功'.format(username,datetime.now()))NameError:name'datetime'isnotd......
  • 定时任务查询通道狂暴超时,原因竟然是取数据不当----清扫100年前纽约街头马粪的不是清
    本文首发于我的公众号[发现问题就解决,是低效的方式,得探究根源]、【100年前的纽约街头,市民以马车为出行工具,问题来了】 我们支付系统有个定时任务,就是将系统里所有付款中的交易,调用第三方银行查单接口,然后持久化更新付款状态。 许多同学都做过类似的定时调度程序吧。 近......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录7
    Django实现文件上传、文件列表查看、修改、限流和日志记录7不管调用的接口在内网,还是外网都需要做好限制保证接口的访问和限流降级处理,本章节新增限流功能。限流功能主要针对两个方面:IP和用户针对IP限流文件列表接口进行限流处理,限制每分钟每个IP访问10次,你可以使用Dja......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录6
    Django实现文件上传、文件列表查看、修改、限流和日志记录6对于已经上传的文件,现在已经实现了文件的查看修改,美中不足的是:需要查看每个文件需要提前记住文件名指定文件名进行查看和修改。为此,新增一个上传文件的列表功能,在通过模版按钮跳转路由到查看和修改页面。实现逻辑查看......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录4
    Django实现文件上传、文件列表查看、修改、限流和日志记录4本章添加用户认证功能,属于安全模块。用户认证在Django中,默认情况下,用户的用户名和密码是存储在数据库中的。Django提供了内置的用户模型(User模型),它可以管理用户的认证和授权。配置数据库在file_upload/settings.py......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录2
    Django实现文件上传、文件列表查看、修改、限流和日志记录2本章节优化新增功能使用ssh秘钥连接远程服务器进行文件上传使用ssh私钥连接远程服务器上传文件使用SSH私钥连接远程服务器并上传文件,你可以使用paramiko库来实现SSH连接和文件传输的功能。首先,确保你已经生成了SSH......
  • mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-0115
    问题描述:mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-011582、MY-011583,如下所示:数据库:MySQL8.0.27系统:rhel7.364位1、问题重现Slave02[(none)]>select*fromperformance_schema.replication_group_members;+-----------------------......