linux – 如何移动/ var / log目录

前端之家收集整理的这篇文章主要介绍了linux – 如何移动/ var / log目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的生产服务器上有一个用于根安装点的小驱动器,
/ var / log占用太多空间,我必须手动删除一些文件.
我如何移动/ var / log /让我们说/ home / log而不重新启动?

这是我想的事情:

$mkdir /home/log
$rsync -a /var/log /home/log
$mount --bind /home/log /var/log
$/etc/init.d/rsyslof restart

但我知道有些服务使用文件描述符,因此他们将继续使用/ var / log或inode.

解决方法

正确的设计

我假设您无法简单地扩展有问题的文件系统(使用lvextend&& ext2online),因为您不使用LVM或使用错误文件系统类型.

你的方法

如果您使用SIGHUP(kill -1 pid)向守护进程发出信号,那么您提出的建议可能会奏效.显然你需要稍后“mount -o bind / / somewhere”并清理挂载/ var / log下面的内容.但它对我来说有难闻的气味,特别是对于生产而言.

避免停机,有一个干净的结果(但很复杂)

忘记“mount -o bind”的想法,创建一个新的LV /分区,但不要挂载它.

lsof | grep /var/log             # lists open files in /var/log

对于每个具有任何打开文件的守护进程(我至少期望syslog,inetd,sshd):

>重新配置守护程序no以登录到/ var / log
>刷新守护进程(kill -1或/etc/init.d/script reload)
>用lsof确认守护进程已关闭文件的grep / var / log

挂载/ var / log.
再次恢复旧配置,SIGHUP / reload守护程序.

简单的方法(停机时间)

创建一个新的LV /分区并将其正确安装在/ var或/ var / log上.简单的方法是将服务器关闭到维护模式(单用户模式),并使用实际的控制台(而不是ssh)进行操作.

猜你在找的Linux相关文章