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)进行操作.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...