备份mysql 一般用两种办法
1、用mysqldump ,mysql的自带工具。
2、用mysqlhotcopy , 这个比上面的快。
至于如何使用,详见百度或者google.
支持 Red Hat Enterprise Linux, CentOS, Scientific Linux, Debian, Ubuntu, FreeBSD, OpenBSD
您尚未登陆。 请选择登陆或是注册一个新账号。
iRedMail 开源邮件服务解决方案 » 由 denvor 发表的文章
备份mysql 一般用两种办法
1、用mysqldump ,mysql的自带工具。
2、用mysqlhotcopy , 这个比上面的快。
至于如何使用,详见百度或者google.
1、Centos 在安装的时候缺省是UTC,很多同学就都设置成 UTC了。
如果没有改过来,当然就会出现时区问题。
2、接下来如果还没改时区,就安装iRedMail,然后发现问题,再更改时区的话,也会在很多地方出现时间不对的问题。
这个是因为 postfix 自己用的时区文件还是原来的文件。
大家可以看 /var/spool/postfix/etc 下面,有三个文件
localtime , resolv.conf , hosts ,
这是postfix 安装的时候从 /etc/下拷贝的,假如之后有修改,也是不会同步的,
所以postfix 一直使用这个 localtime 。
解决办法是 把/etc/下的localtime再拷贝过去。然后重启服务器。
此外,假如 更换机房位置 出现DNS解析问题之类的,那应该就是 resolv.conf 的未同步问题。
可以看出来你的系统时间是乱的。
按照你的说法 ,正确时间是 9:51, 这应该是CST 时间。
但是可以从邮件头看出
你的系统 时间是
Wed, 5 Aug 2009 01:45:56 +0800 (CST)
Tue, 4 Aug 2009 17:45:56 +0000 (UTC)
所以你的系统时间还是错误的。起码 postfix 是用了错误的时间。
可能是 postfix 的 chroot 下面也需要修改时区。
/var/spool/postfix/etc/localtime 需要修改。
把 /etc/localtime 覆盖 /var/spool/postfix/etc/localtime
然后重新启动 postfix : service postfix restart
再看看如何。
如果时间正确的话,那就是因为你安装系统的时候 时区设错了。后来装了 iredmail 之后才改了时区,
但是postfix 已经用了老的时区设置了。
不过这个应该在 /var/log/message 里有错误提示的。
postfix 启动的时候会提示这两个文件不一样。
[ 本帖最后由 denvor 于 2009-8-5 18:44 编辑 ]
不是字段,我写错了,就是添加一个记录。
你看看那个表就知道了。
date 是 当前时区的时间,就是咱们东八区的时间。
date -u 是 UTC时间,格林威治时间,当然要差8个小时。
另外,你所说的发信时间不正确,你倒是贴出来邮件头看看啊
我在11楼写的就是用 iredmail 发信到 gmail 的 邮件的 邮件头。
你12楼写的
主 题: test hao 主题: test hao
时 间: 2009年8月4日(星期二) 上午05:53 。
我都不知道是从哪里摘出来的。
建议问问题的时候,需要把你当前使用的软件,环境都写清楚。不然别人很难了解。
另外,至于你在虚拟机上修改时间之后,就无法收信,你看看日志就明白了。
那是因为 dovecot 发现你的时间乱了,就自动停止了。
dovecot 需要一个精确的时间机制。
[ 本帖最后由 denvor 于 2009-8-4 17:44 编辑 ]
如果 真实时间就是Tue Aug 4 01:12:22 CST 2009的话,那就是对的。
楼主你再从 email 系统发一封信到 gmail 之类的其他邮箱,然后把邮件的头贴出来看看。
就像
我刚才发的,你看 时间就没啥问题吧。
From - Tue Aug 04 13:19:56 2009
X-Account-Key: account14
X-UIDL: GmailId122e3d95587d26cd
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Delivered-To: xxxxxxxxxxxxxxxxxxxxxxxxx
Received: by nnnnn with SMTP id i6cs522613qcn;
Mon, 3 Aug 2009 22:19:48 -0700 (PDT)
Received: by nnnnnnnnnnnnnn with SMTP id i8mr4639121rvd.290.1249363187015;
Mon, 03 Aug 2009 22:19:47 -0700 (PDT)
Return-Path: <xxxxxxxxx>
Received: from xxxxxxxxn ([218.241.86.70])
by mx.google.com with ESMTP id 1si14761237pxi.167.2009.08.03.22.19.45;
Mon, 03 Aug 2009 22:19:46 -0700 (PDT)
Received-SPF: pass (google.com: domain of xxxxxxxxxxxxxxxxx designates nnnnnnnnnnnnnnnnn as permitted sender) client-ip=xxxxxxxx;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of xxxxxxxx designates xxxxxxxx as permitted sender) smtp.mail=xxxxxxxx
Received: from localhost (xxxxxxxxx [127.0.0.1])
by xxxxxxxx (iRedMail) with ESMTP id 6134F7FF00E
for <xxxxxxxxxx>; Tue, 4 Aug 2009 13:19:44 +0800 (CST)
X-Virus-Scanned: amavisd-new at mail.yeelinx.cn
Received: from xxxxxxxxxx ([127.0.0.1])
by localhost (xxxxxxxxxxxx [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 4KDKHj-rpPWY for <xxxxxxxxxxx>;
Tue, 4 Aug 2009 13:19:43 +0800 (CST)
Received: from [192.168.1.180] (unknown [nnnnnnnnnnnnnnnnnn])
by xxxxxxxxxxxxxxxxxx (iRedMail) with ESMTPA id E51C27FEE79
for <xxxxxxxxxxxxxxxxxxxxx>; Tue, 4 Aug 2009 13:19:42 +0800 (CST)
Message-ID: <4A77C4EE.9000207@xxxxxxxxxxxxxxxn>
Date: Tue, 04 Aug 2009 13:19:42 +0800
From: xxxxxxxxxxxxxxxxxxxxxxxxxx
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: xxxxxxxxxxxxxxxxxxxxx
Subject: test timezone
Content-Type: text/plain; charset=GB2312
Content-Transfer-Encoding: 8bit
可能说的不是一回事,我的iredMail的收信时间是对的。
应该还是时区设置的问题。
楼主在命令行下运行
date
和 date -u
把结果贴出来看看。
反解在DNS上也可以做吧。
如果你的 ip是 a.b.c.d
在 named.conf 里面包含一个 d.c.b.rev 的文件,在这个文件里面给这个ip 赋一个域名。
安装的时候 ,时区可能没设置好。
看我的这个帖子
http://www.iredmail.org/bbs/thread-841-1-1.html
收信速度慢是因为启用了 greylist 导致的,每一个新的邮件地址发信过来,都会重试三次,系统才会接受。但是一旦接受了,以后就会立刻接收了。
greylist会有效的防治垃圾邮件。当然你可以在/etc/policyd.ini 里面 取消 greylist。
service ntpd stop
另外,请去百度或者谷歌查询 vmware 时间同步。不仅仅是安装 vmware tools 就可以的。需要修改 vm 虚拟机的ini文件。
我现在用的 roundcube 0.21 ,我们公司的hr 账号,仅保留1个月的数据,大概有1万3到1万4封邮件,我个人感觉,速度和其他的几百封的差不多。
使用之后,blacklist的ip地址大量增加。使用两天之后,观察maillog ,发现 sina.com 和 21cn.net的 ip地址也被屏蔽了。
原因是有人用这两个邮箱向spamtrap的邮箱发信,结果 就被屏蔽了。
这种事情以前有人遇到过吗?如何处理呢? 难道真的不能用spamtrap吗?
执行一下 ps axvu 。看看是否有 syslog 和 crond
执行一下 service crond status , service syslog status 等等。
不要用 ntp 服务来纠正时间,而是用 vmware tools 的机制来自动同步时间。
90%以上是 vmware 没设置好,造成时间不同步导致dovecot 停止造成的。
建议查询百度大神 vmware 的时间同步机制。在确保时间正确的情况下,看看是否还有这种情况发生。
过一天再试试,gmaiil可能还是用的老的DNS记录。还没更新。
关于外发邮件备份,在论坛里可以找到,就是所有用户使用公司邮件服务器外发邮件的时候,发出的邮件都会自动转发到一个邮箱。
办法也很简单,在vmail 库里的 sender_bcc_domain 表里添加一个字段即可。
但是我发现这个邮箱的增长速度极快,而且很多重复的邮件,例如给公司所有人群发的信件,那就相当于一下子备份了几十封邮件,其实只需要一封即可。
为此,写了一个PHP脚本去检查删除。放在 crontab 里面,每天凌晨运行一次即可。
这个脚本可用,但是有以下问题,有精益求精的可以修改再使用
问题:
1、对于发送时间取的不是很精确,有可能会造成漏删。
2、判断机制有可能会造成以下情况的删除:
某人写了一封邮件,然后意识到错误,在10分钟之内又发送了一封主题一样的邮件。
不过对于我们公司来说,已经可以用了,那几个问题是可以容忍的。
此php脚本需要使用PEAR库的 Mime_Decode,iredmail里面已经含了。
但是还需要检查一下你的/etc/php.ini 确保 include_path 里面 有 /usr/share/pear
我的 /etc/php.ini 是这样的。
include_path = ".:/www/includes:/usr/share/pear"
OK,下面是脚本:
#!/usr/bin/php -q
<?
chdir("/www/scripts/");
include_once ('Mail/mimeDecode.php');
$domain = "abc.com";
$lasttime = time()- (24*60*60); //仅检查24小时以内的邮件。
$date = date("Y-m-d");
$time = date("Y-m-d H:i:s");
$arr_dir[] = "/home/vmail/$domain/backup/cur/";
$arr_dir[] = "/home/vmail/$domain/backup/new/";
$count = 0;
foreach($arr_dir as $dir)
{
if(is_dir($dir))
{
if($dh = opendir($dir))
{
while (false !== ($file = readdir($dh)))
{
if($file != "." || $file != "..")
{
$file = $dir."/".$file;
if(is_file($file))
{
$filetime = filemtime($file);
if($filetime >= $lasttime)
{
$header=getMailHeader($file);
$from = addslashes($header['return-path']);
$subject = addslashes(trim($header['subject']));
$date = addslashes(substr($header['date'],0,21));//取10分钟以内的时间。
$value = $from."_".$date;
if( array_key_exists($value , $arr_mail))
{
if($arr_mail[$value] == $subject)
{
//假如 发件人相符,时间相差不大,主题相同 ,那么删除。
unlink($file);
echo "===========deleted : $file\n";
}
}
else
$arr_mail[$value] = $subject ;
$count++;
}
}
}
}
}
}
}
//$count = count($arr_mail);
$time = date("Y-m-d H:i:s");
echo "================== $count files processed =============================================\n";
echo "========================$time==========================================================\n";
function getMailHeader($filename)
{
$raw_mail_msg = "";
$handle = fopen($filename,'r');
$raw_mail_msg = fread($handle, filesize ($filename));
fclose($handle);
$params = array();
$params['include_bodies'] = FALSE;
$params['decode_bodies'] = FALSE;
$params['decode_headers'] = TRUE;
$params['input'] = $raw_mail_msg;
$structure = Mail_mimeDecode::decode($params);
$header = $structure->headers;
return $header;
}
?>
[ 本帖最后由 denvor 于 2009-7-16 09:56 编辑 ]
这问题深了................................................................
是啊,三楼的DX,我也是因为比较熟悉mysql ,而对于ldap只是基本了解,所以采用mysql的方案的。
如题所示,打算紧跟时代节奏,但是不知道如何下手?
Bibby 能否在 0.50 正式版出来之后给个 迁移的说明呢?
我想这个可能是很多人的愿望吧。
毕竟在0.40以前,大多数人可能还是会选择 mysql 版本的,毕竟mysql 熟悉的人多啊。
不过mysql的0.40版本已经足够用于企业用途了。
就光是这些就已经够研究一壶的了。
iRedMail 开源邮件服务解决方案 » 由 denvor 发表的文章
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 3 official extensions. Copyright © 2003–2010 PunBB.
页面生成时间 0.012 秒, 共执行查询 60 条