web项目上线后,因为使用nohup不挂断启动的,会自动生成一个nohup.out的日志文件,2天左右就变成4G大小的文件了.这里提供2个简单的解决方法.
一.null覆盖:
1.手动将 /dev/null 这个"黑洞"文件复制到nohup.out,起到清空作用.
cp /dev/null ./nohup.out
2.每次都手动,很麻烦,于是可以编写一个定时任务.
先写一个清除log的脚本
mkdir ./scripts
cd ./scripts
vim clearLog
内容为:
cp /dev/null /use/webapp/nohup.out
编写定时任务,为了测试,可以先写每1分钟清除,立即看到效果:
crontab -e
*/1 * * * * /use/webapp/scripts/clearLog
测试:
可以看到没有任何输出.
二.启动时web项目时,就确定将输出置为空.
nohup java -jar temp.jar >/dev/null 2>&1 &
这里解释一下 2>&1: 这涉及到 Linux 的重定向,其中 0、1、2 分别是标准输入、标准输出、标准错误输出,用来指定需要重定向的标准输入输出。默认情况下是标出输出,也就是 1 。例如我们而上文提到的 2>&1 是 将错误信息重定向到标准输出。这里将所有输出到"黑洞"文件,就没有输出了.
补充:
如果不想输出全无,想保留错误信息,可以试着如下:
nohup java -jar novel-front-3.6.0.jar >> /use/webapp/nohup.out 2 &
打开日志查看,全是报错信息: