用于Kerio Control的单独LOG磁盘

将日志放在单独的磁盘上似乎比较容易,但是不,有一些技巧。







背景



我记得那是一个美丽的冬天的傍晚,突然发现Kerio Control存在问题。

Kerio Control无法写入对配置的更改,并且发生了某种混乱!



诊断快速而准确-Kerio Control系统磁盘空间不足。



原因是,旧日志很大。



有几种解决方案:



  • 清除日志
  • 增加系统磁盘空间
  • 为日志添加其他磁盘


后者似乎是最合乎逻辑的。



确实,我们不是在寻找简单的方法,而是在认真地完成这项工作,以免再次发生这种情况,并且没有什么可以破坏另一个美好的夜晚。



这篇文章的老练读者会立即说-但让Kerio本身能够清理日志并将日志存储在明确定义的时间范围内。

是的,他可以,但是从服务器上指定的时间间隔开始,日志量已满。如何处理这种情况?



决断



Kerio Control虚拟设备是一个驻留在一个磁盘上的虚拟机,该解决方案看起来非常简单:



  • 在管理程序中添加其他虚拟磁盘
  • 进行ext4或ext3标记
  • 将新磁盘安装添加到fstab
  • 找到Kerio配置文件,并为日志指定新路径。


但不是!



从“将新磁盘安装添加到fstab”开始,出现了问题。



事实证明,Kerio不在乎fstab。



该磁盘是手动完美安装的,但是自动磁盘在启动后不需要任何东西。



通过寻找一些未知的文件目录长徘徊后,我的注意力被吸引05basefs文件,即,我真的很喜欢下面的题字-基地FS,而05是不感兴趣。在检查了其内容之后,我意识到文件系统已安装在此处。



然后一切似乎都很简单,很长时间以来,存在一个文件winroute.CFG,所有设置都存储在此处,您也可以在其中指定带有日志的目录的路径。



但是事实证明,我在这里错了,Kerio注意到配置文件中的新路径,但是有些东西不起作用,更改路径后的日志降低了错误或根本不显示任何内容。



好吧,好的,让我们在日志的当前位置挂载新磁盘!



实作



经过以上所有,实现非常简单。



首先,我们需要连接到Kerio Control终端,最简单的方法是使用SSH。



暂时启用SSH访问。



为此,您需要登录到管理面板并在按住Shift键的同时转到“系统状态”部分。







如果正确完成所有操作,则SSH激活按钮将出现在服务器重新启动按钮的底部:







临时激活SSH(设置后不要忘记禁用它!)

启用S​​SH后,您可以使用SSH客户端连接到服务器。



最好使用可以立即将文件复制到服务器的客户端,稍后我将解释原因。



所以我们现在有:



  • 我们创建了一个新磁盘并将其连接到服务器
  • 在ext4或ext3中将其标记
  • 已激活SSH并连接到服务器


接下来,我们需要修复以下路径中05basefs文件\ Etc \ boxrc.d \ 05basefs



但是在编辑它之前,您需要再做两件事。



首先是找出新磁盘的开发日志

,然后找出lsblk来获取磁盘名称,例如









  • SDA-系统磁盘
  • sda1-引导程序
  • sda2和sda3-Kerio的当前版本,显然是先前版本
  • sda4-此处的配置和默认日志
  • SDB是我们的新磁盘


如果需要保存当前日志,则需要将sdb磁盘临时挂载在任何空目录中,然后将/ var / winroute / logs的内容传输到已挂载的sdb。



传输后,卸载sdb。



第二个是允许文件系统更改系统文件

Kerio以只读权限挂载了05basefs所在的系统磁盘。



查看在哪里以及如何执行预先安装的装载







您可以看到/ dev / sda2处于RO状态,这是Kerio当前版本所在的位置,还存在05basefs。



使用mount -o rw命令临时启用对/ dev / sda2的写入,重新安装/ dev / sda2

现在,您可以亲自修复05basefs文件,我更喜欢复制已经修复的文件,这很方便,因为这样做一次,由于更新了原始版本的05basefs,您必须在更新Kerio版本后每次重复文件替换过程。



您也可以使用vi编辑器来更改文件-它在系统中。



如下更改05basefs



#!/bin/sh
# $Revision: 1.13 $

case "$1" in
start)
grep -q /tmp /proc/mounts || mount -t tmpfs tmp /tmp
mkdir -p /tmp/run

root=$(grep " / " /proc/mounts | grep -v rootfs | sed 's/ .*//')
DATA=${root%[23]}4
BOOT=${root%[23]}1

modprobe ext3
mount -o ro -t ext3 $BOOT /boot
if [ ! -z "$DATA" ] && ! mount -o data=ordered $DATA /var 2>/dev/null; then
echo "Creating new data partition..."
#mkfs.nilfs2 -b 1024 $DATA
mkfs.ext3 -b 4096 -q $DATA 2>&1
tune2fs -c 0 -i 0 -r 0 -E stride=512,stripe-width=512 $DATA
fsck -p $DATA
mount -o data=ordered $DATA /var
[ -d /var.default ] && cp -a /var.default/* /var
elif [ -f "/var.default/update.list" ]; then
for i in `cat /var.default/update.list`; do
[ -e "/var.default/$i" -o -h "/var.default/$i" ] || continue
! [ -e "/var/$i" -o -h "/var/$i" ] || continue
mkdir -p $(dirname "/var/$i")
cp -a "/var.default/$i" "/var/$i"
done
fi
mount -t ext4 /dev/sdb /var/winroute/logs
exit 0
;;
stop)
echo "Umounting data partition..."
for i in $(seq 1 10); do
if fuser -sm /var; then
sleep 1
else
break
fi
done
fuser -kms /var/winroute/logs
umount /var/winroute/logs
fuser -kms /var
umount /var
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac




对文件



mount -t ext4 / dev / sdb / var / winroute / logs的更改的解释

在原始日志路径/ var / winroute /日志



融合器上将

sdb装入-kms / var / winroute /日志 umount / var / winroute /日志

为正确安装sdb关闭服务器。



现在,我们将使用命令mount -or®,重新挂载/ dev / sda2,将sda2返回其原始状态。



服务器重新启动后,Kerio将日志写入到专用SDB磁盘。



拐杖



(毕竟,您离不开拐杖)



如前所述,如果更新了Kerio版本,则05basefs文件将返回其原始状态,Kerio将再次开始将日志写入sda4。沿路径/ var / winroute /日志。



为了使Kerio继续将日志写入SDB,必须重复文件替换过程。



All Articles