服务器是 Ubuntu 16.04。我有一个正在运行的进程,nohup
该进程会记录到本地文件中。该文件变得足够大,足以占用 100% 的磁盘空间。要解决这个问题,我必须先终止该进程,然后删除日志文件。然后我重新启动该进程。我该如何使用脚本或其他工具来解决这个问题?
答案1
您logrotate
可以配置日志文件的大小或时间间隔:
日志文件被轮换(log.n 变成 log.n+1,最后一个日志文件被删除)
当前日志文件被截断但不干扰写入过程。
看一眼man 8 logrotate
。
答案2
我猜你用 nohup 启动脚本/程序
nohup scriptname 1>logfile.log 2>& &
我建议不要删除日志文件,而是用以下方法清除它:
echo -n >logfile.log
如果您删除/移动打开的文件,它将被写入直到该过程关闭文件或该过程结束。
答案3
要自动删除所有日志,.bashrc
请使用您喜欢的文本编辑器编辑文件。这里我使用的是nano
。在您的终端运行:
nano ~/.bashrc -
将以下内容添加到文件底部:
rm -r /var/log # Deletes logs directory
clear # Clear the terminal
按Ctrl+O节省和Ctrl+X至退出编辑模式。
.bashrc
每次您登录或启动终端实例时都会执行该文件,因此您的日志将始终被删除。
您还可以根据时间删除它们。例如,使用以下命令删除 3 天前创建的所有日志:
find /yourlog/path -mindepth 1 -mtime +3 -delete
-mindepth 1
表示处理除命令行参数之外的所有文件。-mtime +3
将检查3天前修改的文件。-delete
将删除它们。