Linux服务器的配置和数据迁移方案

网友投稿 992 2023-03-11

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

Linux服务器的配置和数据迁移方案

问题将Linux功能服务器的配置和数据迁移到新服务器中

解决方案迁移一台主控+功能的Linux服务器方法

要求1:新旧服务器安装了同一版本的Prim@Hosting(最完善的虚拟主机管理系统)要求2:下面的例子都假设使用bash作为shell

此方法,不需要从主控执行检测与修复,就可以恢复全部数据和配置。只有磁盘配额限制除外,如需要重新设置磁盘配额限制,在恢复完之后从主控执行web站点的检测与修复,选上“同时更新正常站点”选项

[注意]请仔细阅读全部内容,了解了都有哪些工作要做,才真正开始操作。

在旧服务器上:下面假设备份目录为:/backup

2. 备份邮件数据cd /vartar zcpf /backup/vmail.tar.gz vmail

3. 备份dns数据cd /vartar zcpf /backup/named.tar.gz named

4. 备份MySQL(和PHP搭配之最佳组合)数据(包含URLForward数据库)cd /var/libtar zcpf /backup/MySQL(和PHP搭配之最佳组合).tar.gz MySQL(和PHP搭配之最佳组合)

6. 备份计数器数据cd /var/Countertar zcpf /backup/CounterData.tar.gz data

7. 备份配置cd /usr/Prima(最完善的虚拟主机管理系统)tar zcpf /backup/Prima(最完善的虚拟主机管理系统)_etc.tar.gz etc

cd /usr/Prima(最完善的虚拟主机管理系统)/postfixtar zcpf /backup/postfix_conf.tar.gz conf

cd /usr/local/frontpagetar zcpf /backup/frontpage_cnf.tar.gz *.cnf

cd /etccp named.conf /backup/named.conf

如果用resin(一个免费的JSP运行平台)提供jsp(SUN企业级应用的首选)服务:cd /usr/local/resin(一个免费的JSP运行平台)/confcp host.conf /backup/resin(一个免费的JSP运行平台)_host.conf

如果用tomcat(一个很好用的JSP运行平台)提供jsp(SUN企业级应用的首选)服务:cd /var/tomcat(一个很好用的JSP运行平台)4/confcp server.xml(标准化越来越近了) /backup/server.xml(标准化越来越近了)

在新服务器上:请将原服务器上的备份拷贝到新服务器上以下假设拷贝过来的备份放在/backup

2. 恢复邮件数据cd /vartar zxpf /backup/vmail.tar.gz

3. 恢复dns数据cd /vartar zxpf /backup/named.tar.gz

4. 恢复MySQL(和PHP搭配之最佳组合)数据cd /var/libtar zxpf /backup/MySQL(和PHP搭配之最佳组合).tar.gz

6. 恢复计数器数据cd /var/Countertar zxpf /backup/CounterData.tar.gz

7. 恢复配置cd /usr/Prima(最完善的虚拟主机管理系统)tar zxpf /backup/Prima(最完善的虚拟主机管理系统)_etc.tar.gz

cd /usr/Prima(最完善的虚拟主机管理系统)/postfixtar zxpf /backup/postfix_conf.tar.gz

cd /usr/local/frontpagetar zxpf /backup/frontpage_cnf.tar.gz

cd /etccp /backup/named.conf .

如果使用resin(一个免费的JSP运行平台)提供jsp(SUN企业级应用的首选)服务:cd /usr/local/resin(一个免费的JSP运行平台)/confcp /backup/resin(一个免费的JSP运行平台)_host.conf ./host.conf

如果使用tomcat(一个很好用的JSP运行平台)提供jsp(SUN企业级应用的首选)服务:cd /var/tomcat(一个很好用的JSP运行平台)4/confcp /backup/server.xml(标准化越来越近了) ./server.xml(标准化越来越近了)

7. 同步系统用户信息7.1 统一系统用户名为小写cat /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap|awk ’{printf("%s %s\n",$1,tolower($2))}’ > /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap.newcp /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap.oldcp /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap.new /usr/Prima(最完善的虚拟主机管理系统)/etc/usermap

8. 同步邮件用户信息(convert_vmail_id.sh附后)sh convert_vmail_id.sh

完成。

附录1 convert_vmail_id.sh

#!/bin/sh userdb_dir="/usr/Prima(最完善的虚拟主机管理系统)/etc/mail/userdb" default_userdb="$userdb_dir/default" makeuserdb_prog="/usr/Prima(最完善的虚拟主机管理系统)/maildrop/bin/makeuserdb" update_ugid_infile() { if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] ; then return 1 fi if [ ! -f $3 ] ; then return 1 fi sed -e "s/uid=[0-9]*/uid=$1/g" $3 > $3.tmp if [ $? != 0 ] ; then rm -f $3.tmp return 1 fi cp $3.tmp $3 rm -f $3.tmp sed -e "s/gid=[0-9]*/gid=$1/g" $3 > $3.tmp if [ $? != 0 ] ; then rm -f $3.tmp return 1 fi cp $3.tmp $3 rm -f $3.tmp return 0 } vuid=`id -u vmail` if [ $? != 0 ] ; then echo "can not get vmail user id" exit 1 fi vgid=`id -g vmail` if [ $? != 0 ] ; then echo "can not get vmail group id" exit 1 fi if [ ! -d $userdb_dir ] ; then echo "$userdb_dir does not exist or is not a dir" exit 1 fi for name in `ls $userdb_dir` do file="$userdb_dir/$name" if [ -f $file ] ; then echo -n "Updating $name..." if [ $name != "default" ] ; then update_ugid_infile $vuid $vgid $file else echo -e "vmail\tuid=$vuid|gid=$vgid|home=/var/vmail|shell=/bin/bash|systempw=!!\n$vuid=\tvmail\nroot@$HOSTNAME\tuid=$vuid|gid=$vgid|home=/var/vmail|mail=/var/vmail/root|systempw=!!" > $default_userdb fi if [ $? = 0 ] ; then echo "success." else echo "fail." fi fi done echo echo "Rebuild db..." $makeuserdb_prog echo "done." echo echo "bye."

#!/bin/sh userdb_dir="/usr/Prima(最完善的虚拟主机管理系统)/etc/mail/userdb" default_userdb="$userdb_dir/default" makeuserdb_prog="/usr/Prima(最完善的虚拟主机管理系统)/maildrop/bin/makeuserdb" update_ugid_infile() { if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] ; then return 1 fi if [ ! -f $3 ] ; then return 1 fi sed -e "s/uid=[0-9]*/uid=$1/g" $3 > $3.tmp if [ $? != 0 ] ; then rm -f $3.tmp return 1 fi cp $3.tmp $3 rm -f $3.tmp sed -e "s/gid=[0-9]*/gid=$1/g" $3 > $3.tmp if [ $? != 0 ] ; then rm -f $3.tmp return 1 fi cp $3.tmp $3 rm -f $3.tmp return 0 } vuid=`id -u vmail` if [ $? != 0 ] ; then echo "can not get vmail user id" exit 1 fi vgid=`id -g vmail` if [ $? != 0 ] ; then echo "can not get vmail group id" exit 1 fi if [ ! -d $userdb_dir ] ; then echo "$userdb_dir does not exist or is not a dir" exit 1 fi for name in `ls $userdb_dir` do file="$userdb_dir/$name" if [ -f $file ] ; then echo -n "Updating $name..." if [ $name != "default" ] ; then update_ugid_infile $vuid $vgid $file else echo -e "vmail\tuid=$vuid|gid=$vgid|home=/var/vmail|shell=/bin/bash|systempw=!!\n$vuid=\tvmail\nroot@$HOSTNAME\tuid=$vuid|gid=$vgid|home=/var/vmail|mail=/var/vmail/root|systempw=!!" > $default_userdb fi if [ $? = 0 ] ; then echo "success." else echo "fail." fi fi done echo echo "Rebuild db..." $makeuserdb_prog echo "done." echo echo "bye."

上一篇:Linux_基于Docker搭建Redis集群
下一篇:短小精干的Unix类后门Tiny shell的使用与分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~