设为首页 收藏本站
查看: 739|回复: 0

测试NFS+rsync+sersync+SMTP+shell脚本+cron

[复制链接]

尚未签到

发表于 2018-8-25 06:05:01 | 显示全部楼层 |阅读模式
考核1:
  实现拓扑图:
DSC0000.jpg

  实验需要的机器:
  名称
  ip地址
  主机名
  web服务器
  192.168.1.10
  web01
  rsync备份服务器
  192.168.1.20
  rsync
  nfs存储服务器
  192.168.1.30
  nfs
  1,nfs创建一个目录名为/data/web的目录作为web服务器的后端存储,然后共享使用虚拟用户webuser,因为公司访问量不是很大,所以可以直接用sync来同步写入到磁盘
  在NFS服务器上:
  yum -y install nfs-utils.x86_64 rpcbind.x86_64
  /etc/init.d/rpcbind start && /etc/init.d/nfs start
  mkdir -p /data/web
  [root@nfs ~]# cat /etc/exports  #修改nfs配置文件
  /data/web 192.168.1.0/24(rw,sync,root_squash,all_squash,anonuid=666,anongid=666)
  useradd -u 666 webuser -s /sbin/nologin –M
  chown -R webuser:webuser /data/web/
  [root@nfs ~]# exportfs -arv
  exporting 192.168.1.0/24:/data/web
  #先进行本地挂载测试,如果成功在到远端挂载
  [root@nfs ~]# showmount -e 192.168.1.30
  Export list for 192.168.1.30:
  /data/web 192.168.1.0/24
  [root@nfs ~]# mount -t nfs 192.168.1.30:/data/web /mnt/
  [root@nfs ~]# df -Th

  Filesystem           Type  >  /dev/mapper/vg_moban-lv_root
  ext4    18G 1000M   16G   6% /
  tmpfs                tmpfs  490M     0  490M   0% /dev/shm
  /dev/sda1            ext4   477M   52M  400M  12% /boot
  192.168.1.30:/data/web   nfs     18G 1000M   16G   6% /mnt
  [root@nfs ~]# umount /mnt
  在web服务器挂载nfs用作网站的后端存储:
  [root@web01 ~]# mkdir /webdata
  [root@web01 ~]# mount -t nfs 192.168.1.30:/data/web /webdata/
  [root@web01 ~]# df -Th

  Filesystem           Type  >  /dev/mapper/vg_moban-lv_root
  ext4    18G  998M   16G   6% /
  tmpfs                tmpfs  490M     0  490M   0% /dev/shm
  /dev/sda1            ext4   477M   52M  400M  12% /boot
  192.168.1.30:/data/web  nfs     18G 1000M   16G   6% /webdata
  [root@web01 ~]# echo "mount -t nfs 192.168.1.30:/data/web /webdata/" >>/etc/rc.local  #设置成开机自动挂载
  NFS共享挂载已经完成,然后下一步实施搭建rsync服务器
  yum -y install rsync.x86_64
  [root@rsync ~]# vim /etc/rsyncd.conf
  uid = rsync
  gid = rsync
  use chroot = no
  max connections = 20
  list = false
  timeout = 300
  read only = false
  pid file = /var/run/rsyncd.pid
  lock file= /var/run/rsyncd.lock
  log file = /var/log/rsyncd.log
  ignore errors
  host allow = 192.168.1.0/24
  [nfsbackup]
  comment = This is an nfs real-time backup module
  path = /backup/nfs
  auth users = nfs_rsync
  secrets file = /etc/rsync.password
  [root@rsync ~]# mkdir -p /backup/nfs
  [root@rsync ~]# useradd rsync -s /sbin/nologin -M
  [root@rsync ~]# chown rsync:rsync /backup/nfs/
  [root@rsync ~]# echo "nfs_rsync:nfspassword" >> /etc/rsync.password
  [root@rsync ~]# chmod 600 /etc/rsync.password
  [root@rsync nfs]# /usr/bin/rsync --daemon
  [root@rsync nfs]# echo "/usr/bin/rsync --daemon" >>/etc/rc.local
  NFS充当客户端:
  [root@nfs ~]# echo "nfspassword" >> /etc/rsync.password #生成密码文件
  [root@nfs ~]# chmod 600 /etc/rsync.password
  [root@nfs ~]# yum -y install rsync.x86_64
  [root@nfs ~]# rsync -avz /data/web/ nfs_rsync@192.168.1.20::nfsbackup/ --password-file=/etc/rsync.password
  测试推送成功,
  然后在NFS上的数据要实时的备份到rsync服务器上(sersync)
  [root@nfs ~]# mkdir /applocal/
  [root@nfs~]# mv sersync2.5.4_64bit_binary_stable_final.tar.gz  /applocal/
  [root@nfs ~]# cd /applocal/
  [root@nfs applocal]# tar -xvzf sersync2.5.4_64bit_binary_stable_final.tar.gz
  sersync /
  sersync /bin/sersync2
  sersync/conf/confxml.xml
  [root@nfs sersync]# tree /applocal/sersync
  /applocal/sersync
  ├── bin
  │   └── sersync2
  └── conf
  └── confxml.xml
  2 directories, 2 files
  [root@nfs conf]# cp confxml.xml{,.bak}
  [root@nfs conf]# vim confxml.xml
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  [@nfs /]# /applocal/sersync/bin/sersync2 -dro /applocal/sersync/conf/confxml.xml
  [root@nfs conf]# cd /data/web/
  [root@nfs web]# touch 1
  [root@nfs web]# echo " /applocal/sersync/bin/sersync2 -dro /applocal/sersync/conf/confxml.xml" >>/etc/rc.local
  #然后实行全网备份脚本:
  备份每台服务器里面的:/etc/rc.local    /etc/hosts    /scripts
  备份数据在本地保存7天,在rsync上保存180天,星期六的数据不删除
  如果备份成功发送邮件到18163201@qq.com
  1)先搭建邮件服务,用SMTP
  [root@rsync etc]# yum -y install mailx.x86_64
  [root@rsync etc]# vim /etc/mail.rc
  ##邮件服务,利用qq.com来发送邮件
  set from=18163201@qq.com
  set smtp=smtps://smtp.qq.com:465
  set smtp-auth-user=18163201@qq.com
  set smtp-auth-password=dcnhslrkexdbbgbh
  set smtp-auth=login
  set ssl-verify=ignore
  set nss-config-dir=/etc/pki/nssdb
  [root@rsync etc]# echo 123 | mail -v -s "test Email" 18163201@qq.com
  然后开始写备份脚本:
  在rsync配置文件里面增加:
  [networkbackup]
  comment = This is a full network backup module
  path = /backup
  auth users = rsync_backup
  secrets file = /etc/rsyncn.password
  [root@rsync etc]# chown rsync:rsync /backup/
  [root@rsync etc]# echo "rsync_backup:rsync_backup" >>/etc/rsyncn.password
  [root@rsync etc]# chmod 600 /etc/rsyncn.password
  [root@nfs backup]# vim /scripts/nfs_backup.sh
  #!/bin/bash
  #创建一个备份使用的脚本,要求如下:
  #1,使用日期作为文件名的一部分
  #2,打包备份/etc/rc.local and /etc/exports and /scripts/ and /etc/crontab
  #3,备份数据在本地只保留7天
  #4,备份数据都放在/backup/目录下
  #5,推送到备份服务器上要是用自己的ip地址作为目录
  #每天00点打包文件,然后推送,这时候文件名日期应该是前一天的日期,截取前一天的日期
  Time=$(/bin/date +"%Y-%m-%d" -d "-1 days")
  Ip=$(/sbin/ifconfig eth3|awk -F "[ :]+" 'NR==2 {print $4}' )
  [ ! -d /backup/$Ip ] && mkdir -p /backup/$Ip
  Path=/backup/$Ip
  tar -czf $Path/$Time\.tar.gz /etc/rc.local /etc/exports /scripts/ /etc/crontab \
  && md5sum $Path/$Time\.tar.gz >$Path/file.md5
  rsync -az /backup/ rsync_backup@192.168.1.20::networkbackup --password-file=/etc/rsyncn.password
  #然后删除七天以前的文件
  find $Path -mtime +7 -type f |xargs -i rm -rf {}
  [root@nfs ~]# crontab -l -u root
  00 * * * * /bin/sh /scripts/nfs_backup.sh
  #!/bin/bash
  #先找出180天以前的文件,进行删除,因为/backup目录下有一个nfs目录是nfs的备份文件所以它里面的内容不>
  能动,要给他排除掉
  for i in  `find /backup/ -type d ! -name nfs`
  do
  #进行文件完整性校验
  [ -f $i/file.md5 ] && \
  if [ $(md5sum $i/file.md5 | awk -F "[: ]+" '{print $2}') = 'OK' ]
  then
  echo "文件备份成功" |mail -s "文件备份" 18163201@qq.com
  fi
  #删除80天以前的内容
  find $i -type f -mtime +180 | xargs -i rm -rf {}
  done
  [root@rsync 192.168.1.30]# crontab -l -u root
  00 * * * * /bin/sh /scripts/backup_del_md5.sh


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556064-1-1.html 上篇帖子: 超级实用的linux 下shell快捷键汇总 下篇帖子: linux 通过shell上传zip包到指定ftp
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表