在 linux环境下,我把服务产生的log文件删除了。现在不重启服务,怎么让日志再打印出来?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 linux环境下,我把服务产生的log文件删除了。现在不重启服务,怎么让日志再打印出来?相关的知识,希望对你有一定的参考价值。

我按照原来的日志文件名新建了日志文件,发现日志不会打印到里面,请问怎么办?

这个没办法的 要重起
以后这种情况不要删除文件 而是清空文件 最简单的方法是创建一个空文件 然后用空文件替代log文件就可以
参考技术A alter.log 很有用,数据库报错时经常需要查看。
ps -ef | grep oracle 命令可以查看和oracle有关的进程。
启动和停止oracle不过是如下命令,当然可以继续加工。需要先确定ORACLE_SID
export ORACLE_SID=实例名
lsnrtcl start # 启动监听
sqlplus /nolog
connect /as sysdba;
startup
停止oracle服务:
lsnrctl stop # 停止监听
sqlplus /nolog
connect /as sysdba;
shutdowm immediate;
参考技术B linux自己会清理日志。一般不要删除文件,而是清空 >/var/log/xxx 参考技术C 什么服务?有的服务支持命令重定向log日志。但多数不支持。追问

java程序,使用Log4j产生日志文件

追答

那只能重启服务了。

参考技术D 设置文件权限

Linux下如何快速删除海量文件

日常运维中,某些服务器几十万的文件需要删除,该如果快速删除?

rm

[sys@sys-test-lv-101 ~]$ cd test
[sys@sys-test-lv-101 test]$ for i in $(seq 1 500000).log;do echo "this is test">>${i}.log;done
[sys@sys-test-lv-101 test]$ time rm -f *.log
-bash: /bin/rm: Argument list too long

find + delete

[sys@sys-test-lv-101 ~]$ cd test
[sys@sys-test-lv-101 test]$ for i in $(seq 1 500000).log;do echo "this is test">>${i}.log;done
[sys@sys-test-lv-101 ~]$ time find test/ -type f -delete

real    0m25.030s
user    0m0.515s
sys 0m13.969s

rsync + delete

[sys@sys-test-lv-101 ~]$ cd test/
[sys@sys-test-lv-101 test]$ for i in $(seq 1 500000).log;do echo "this is test">>${i}.log;done
[sys@sys-test-lv-101 ~]$ time rsync --delete-before -a empty/ test/

real    0m15.497s
user    0m1.175

从测试结果可以看出rsync效率最高

以上是关于在 linux环境下,我把服务产生的log文件删除了。现在不重启服务,怎么让日志再打印出来?的主要内容,如果未能解决你的问题,请参考以下文章

linux删除之前的文件日志

Linux下如何快速删除海量文件

Linux下如何快速删除海量文件

Linux服务器系列操作(个人麻瓜笔记)

NGINX----应用----误删nginx.pid

Linux 独立服务管理