目前公司的本地Linux帐号采用NIS服务来统一验证登录,并且共享/home目录供其他开发服务器挂载。
由于老的服务器硬盘空间已不足以支持使用,现新购了一台服务器取代旧服务器,NIS和NFS服务都要迁移到新服务器上。
给新的服务器设置好磁盘阵列Raid 5后,安装Linux操作系统,并划分较大独立分区给/home目录供开发用户使用。
系统安装成功后,安装相应的应用软件, rpcbind, nfs-utils, ypbind, ypserv, yp-tools等。
接下来就是拷贝旧服务器上面的用户文件到新服务器, 将旧服务器的/home共享目录挂载在/mnt目录,然后执行copy命令
cp -av /mnt/* /home/
为了防止以后用户过度使用磁盘空间,设置好磁盘的配额也是很有必要,
编辑/etc/fstab文件,将磁盘配额的选项添加上去并重新挂载home目录
UUID=60eee9bd-ddf0-4b42-9292-18fd2c5ef04a /home ext4 defaults,usrquota,grpquota 1 2
quotaon -a
将所有用户帐号名保存为userlist.txt文件,先给user1设置好配额
edquota user1
然后再批量应用到其他用户
for u in `cat userlist.txt`;do edquota -p user1 -u $u;done
查看所有用户配额
repquota -a
设置用户磁盘占用满后给该用户发送邮件通知其清理,写一个检测磁盘用量和邮件通知用户的脚本,邮件正文写在mail_template.txt文件里
for u in `cat userlist.txt` do LIMIT=`quota -u $u | grep sda3 | awk '{print $2}'| sed 's/\*$//'` if [[ $LIMIT -gt 119000000 ]]; then quota -u $u mail -s "$u,your disk space of /home is full, please clean up them ASAP." [email protected] < mail_template.txt fi done
将该脚本加入crond任务,每天上下午各执行一次
0 10 * * * sh /root/warn_quota.sh 0 14 * * * sh /root/warn_quota.sh
如有必要再次同步旧服务器的文件,可以用rsync只复制新增的文件
rsync -av --progress /mnt/ /home/
新服务器准备好后,将其他开发服务器上的/home目录全部卸载,若有提示被占用无法卸载的话,可以pkill -U user 将某用户的进程杀掉,直到可以卸载为止
停掉各开发服务器的nis服务,
service ypbind stop
编辑/etc/yp.conf配置文件,将nis服务器地址修改为新服务器地址,再启动ypbind
service ypbind start
最后挂载home目录
mount -t nfs -o rsize=32768,wsize=32768 192.168.100.11:/home /home
至此完成了NIS/NFS服务器的迁移工作。