通过 imapsync 实现邮件服务器迁移 (支持 IMAP 的邮箱)

本帖记录利用 imapsync 工具,从CentOS服务器上将Postfix邮箱转移到新的CentOS主机上的方法。
imapsync 用于同步两个imap邮箱 (仅适合迁移邮箱或者备份,不适合同步两个有用户同时访问的 imap 帐号)

首先在新的服务器上安装好邮件系统,建好相同的邮箱。

接着安装 imapsync (可以装在要同步的任意一台服务器上,也可以装在第三方的服务器上)
yum install imapsync

以下面的数据为例:
旧的邮件服务器为 mail1.mazentop.com
新的邮件服务器为 mail2.mazentop.com
旧的邮箱地址 support@mazentop.com
新的邮箱地址 support@mazentop.com
旧的邮箱密码保存在文件 /etc/mailpass1
新的邮箱密码保存在文件 /etc/mailpass2

那么以下命令可以将邮箱 support@mazentop.com 中的所有内容,从服务器 mail1 复制到服务器 mail2 上的 support@mazentop.com 邮箱中:
imapsync --host1 mail1.mazentop.com --user1 support@mazentop.com --passfile1 /etc/mailpass1 --host2 mail2.mazentop.com --user2 support@mazentop.com --passfile2 /etc/mailpass2

无法访问Godaddy DNS服务器,域名解析被屏蔽

今天发现我的好几个网站从国内无法访问,但是国外打开正常。从国内Ping出现找不到DNS服务器,我使用的是Godaddy的免费DNS服务器: mns01.domaincontrol.com 和 mns02.domaincontrol.com ,看来又被中国的GFW防火墙给屏蔽了。

只好转用国内的DNS解析,dnspod.cn 提供免费的DNS解析服务,功能还可以,但一个帐号只能有一个免费的域名。

如何暂停PowerShell直到一个外部进程执行结束后返回?

在PowerShell 里启动Win32的外部进程后,控制会立即返回PowerShell并执行下一条指令。如何让PowerShell停止执行下一条指令,等待前面的进程运行结束呢?

可以使用 [diagnostics.process] 来启动Windows批命令或者其他应用程序,并通过WaitForExit等待进程结束
$batfile = [diagnostics.process]::Start(“D:\Demo\My_Script.bat”)
$batfile.WaitForExit()

然后PowerShell才继续执行余下的指令。

安装开源、免费的视频会议系统 OpenMeetings on CentOS

OpenMeetings 是一款免费、开源的网络视频会议系统,下面是在CentOS上安装 OpenMeetings 的手记。

首先确认以下系统服务正常运行
apmd
auditd
autofs
avahi-daemon
bluetooth
cpuspeed
cups
firstboot
gpm
hidd
ip6tables
iptables
irqbalance
mcstrans
mdmonitor
microcode_ctl
netfs
nfslock
pcscd
portmap
restorecond
rpcidmapd
rpcsvcgssd
sendmail
smartd
xfs
yum-updatesd

更新系统软件
yum update

安装好 MySQL 数据库
MySQL配置文件 /etc/my.cnf ,增加中文支持
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'

[client]
default-character-set=utf8

重启MySQL服务
/etc/init.d/mysqld start

如果不能关闭防火墙,请开放以下端口
1935 (RTMP), 8088 (基于HTTP的RTMP), 5080 (HTTP), 4445 (桌面共享), 8443 (基于SSL的RTMP)

导入 rpmforge 安装源
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

修改启动配置文件 /etc/rc.local,增加一行
/usr/lib/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &
如果是64位系统,则为
/usr/lib64/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

安装以下所有的软件包
yum install freetype freetype-devel fontconfig fontconfig-devel java-1.6.0-openjdk-devel libtiff libtiff-devel libjpeg-devel libjpeg giflib giflib-devel libpaper libpaper-devel xml-commons-apis libpng libpng-devel libxml2 libxml2-devel fftw3 fftw3-devel cairo cairo-devel flac flac-devel wavpack wavpack-devel libsndfile libsndfile-devel libmad libmad-devel yasm-devel yasm gcc gcc-c++

安装 OpenOffice 产品
yum install openoffice.org-base openoffice.org-headless openoffice.org-writer openoffice.org-impress openoffice.org-calc
yum groupinstall 'Office/Productivity'
yum install openoffice.org-headless

修改文件 /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"

安装中文字体支持
yum -y install fonts-chinese fonts-ISO8859-2-75dpi

安装 Ghostscript
yum install ghostscript

安装 Lame
yum install lame

安装 SWFTOOLS
yum install swftools

安装 ImageMagick
yum install ImageMagick

安装 FFmpeg
yum install ffmpeg

安装 SoX
yum install sox

准备 openmeetings 软件包
( 最新版本从Google 代码获得,目前为 v1.6.2 release 3675 )
cd /usr/src
wget http://openmeetings.googlecode.com/files/openmeetings_1_6_2_r3675.zip
unzip openmeetings_1_6_2_r3675.zip -d om

cd /usr/src/om/webapps/openmeetings/conf
cp mysql_hibernate.cfg.xml hibernate.cfg.xml

修改OpenMeetings 的配置文件 /usr/src/om/webapps/openmeetings/conf/hibernate.cfg.xml
输入数据库用户名、密码,其中 //localhost/openmeetings 是数据库地址和数据库名称 (可以先建好这个空数据库)

cd /usr/src/om
nohup ./red5.sh &

启动openoffice 服务
nohup /usr/lib/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &
如果是64位系统,则为
nohup /usr/lib64/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

开始安装 OpenMeetings,输入下面的地址
http://www.域名.com:5080/openmeetings/install

DDOS Deflate 脚本 – 利用 Iptables 或 SPF 防范攻击

一个很有效的、通过Advanced Policy Firewall (APF) 或者 iptables 防止DDOS攻击的脚本:
(D)DoS Deflate

安装方法
wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh

安装后,脚本会每分钟运行一次,屏蔽的IP地址10分钟后自动解封。
这些参数也可以在配置文件 /usr/local/ddos/ddos.conf 中修改

设置永不屏蔽的IP地址白名单 /usr/local/ddos/ignore.ip.list

DDOS Deflate 的目前版本是 0.6,在我测试的 centos 上运行时不能正常解析出IP地址

修复方法
打开脚本文件 /usr/local/ddos/ddos.sh

修改原来的代码:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

替换为
netstat -ntu | grep ':' | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -nr

备注:安装ddos deflate后,在系统的cron job里,会自动加上了命令 /usr/local/ddos/ddos.sh >/dev/null 2>&1