博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用windos模拟搭建web集群(二)
阅读量:5358 次
发布时间:2019-06-15

本文共 4571 字,大约阅读时间需要 15 分钟。

一.通过rsync搭建备份服务器

这三个目录我们需要做实时热备,他们分别是  系统的脚本目录  系统的配置文件目录  系统的定时任务目录

[root@mage-monitor-01 ~]# cat /server/scripts/backuplist /server/scripts/etc/var/spool/cron

1.使用ansible 的 file模块 在所有主机上模拟创建 一个写脚本的 目录

[root@mage-monitor-01 scripts]# for i in `cat backuplist`;do ansible all -m file -a "path=/server/scripts state=directory"; done;

2.服务端安装部署rsync 

[root@store-rsync-01 ~]# yum install -y rsync

 设置rsync的开机自启动

[root@store-rsync-01 ~]# chmod +x /etc/rc.d/rc.local
[root@store-rsync-01 ~]# echo  "rsync --daemon" >>/etc/rc.d/rc.local

配置

uid = rootgid = rootuse chroot = nomax connections = 200timeout = 300pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.logignore errorsread only = falselist = falsehosts allow = 192.168.5.0/24auth users = benjaminsecrets file = /etc/rsync.password[backup]comment = "backup dir "path = /backup[nfsbackup]comment = "nfsbackup dir"path = /nfsbackup[scripts]comment = "scripts dir"path = /server/scripts[etc]comment = "etc dir"path = /etc[crontab]comment = "crontab dir"path = /var/spool/cron

创建 rsync用户

[root@store-rsync-01 ~]# useradd -s /sbin/nologin -M rsync

创建数据备份储存目录,目录修改属主

[root@backup ~]# mkdir /nfsbackup/[root@backup ~]# chown -R rsync.rsync /nfsbackup/

创建认证用户密码文件并进行授权600

[root@store-rsync-01 ~]# echo "benjamin:123" >>/etc/rsync.password [root@store-rsync-01 ~]# chmod 600 /etc/rsync.password

启动rsync服务

rsync --daemon
[root@store-rsync-01 ~]# ps -ef |grep rsyncroot       1087      1  0 07:57 ?        00:00:00 rsync --daemonroot       1091   1049  0 07:57 pts/0    00:00:00 grep --color=auto rsync

3.客户端测试

创建安全认证文件,并进行修改权限600

echo "123" >>/etc/rsync.passwordchmod 600 /etc/rsync.password
[root@mage-monitor-01 scripts]# rsync -avz `pwd`  benjamin@192.168.5.131::nfsbackup  --password-file=/etc/rsync.passwordsending incremental file listrsync: chgrp "scripts" (in nfsbackup) failed: Operation not permitted (1)scripts/scripts/a.shrsync: chgrp "scripts/.a.sh.SdKZyg" (in nfsbackup) failed: Operation not permitted (1)sent 122 bytes  received 216 bytes  676.00 bytes/sectotal size is 0  speedup is 0.00rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

4.使用ansible  copy模块 将/etc/rsync.password   和  同步脚本发送到所有主机

备份脚本

[root@mage-monitor-01 scripts]# cat backup_to_rsync.sh #!/bin/bash#source function lib. /etc/init.d/functionsrsync_host=rsync.woniu.com#Defined variblesIP=$(ifconfig eth1|awk -F '[ :]+' 'NR==2 {print $3}')Path="/backup/$IP"TIME=`/bin/date +%F`BackupFile=/server/scripts/backuplist# Judge the existence of varibles[ ! -d $Path ] && mkdir -p $Path[ ! -f $BackupFile ] && {   echo "Please give me $BackupFile"   exit 1}# Defined result functionfunction Msg(){  if [ $? -eq 0 ];then        action "$*" /bin/true  else        action "$*" /bin/false  fi}# Backup config filestar  zcfh $Path/conf_${TIME}.tar.gz `cat $BackupFile` &>/dev/nullMsg 'Backup config files'# Make a flag for backupfind $Path -type f -name "${TIME}.tar.gz"|xargs md5sum >$Path/flag_$TIME 2>/dev/nullMsg 'Make a flag for backup'# Send backup to backup serverrsync -avz $Path  benjamin@${rsync_host}::backup  --password-file=/etc/rsync.passwordMsg  'Send backup to backup server'# Delete backup a week agofind ${Path-/tmp} -type f -name "*.tar.gz" -mtime +7|xargs rm -f &>/dev/nullMsg 'Delete backup a week ago'

 

[root@mage-monitor-01 ~]# ansible all -m copy -a "src=/server/scripts/backuplist  dest=/server/scripts/"

 

[root@mage-monitor-01 scripts]# ansible all -m copy -a "src=/etc/rsync.password dest=/etc"
[root@mage-monitor-01 scripts]# ansible all -m copy -a "src=/server/scripts/backup_to_rsync.sh  dest=/server/scripts/"

5.将脚本加入定时任务使用每天凌晨推送 ansible的 shell 模块

centos7默认 的定时任务文件没有执行权限需要添加一下

[root@mage-monitor-01 scripts]# ansible all -m shell -a "chmod +x /etc/rc.d/rc.local"

定时脚本

[root@mage-monitor-01 scripts]# cat set_backup_script.sh #!/bin/bashfunction crond_backup(){        [ `crontab -l|grep "backup data"|wc -l` -eq 0 ]&&{        echo -e "#backup data\n 00 00 * * * /bin/sh /server/scripts/backup_to_rsync.sh >/dev/null 2>&1" >> \/var/spool/cron/rootcrontab -l sleep 2}||{        echo "backup cron is exist,no config."}}crond_backup

将脚本 发送到所有主机 已存在的不做覆盖

[root@mage-monitor-01 ~]# ansible all -m copy -a "src=/server/scripts/set_backup_script.sh  dest=/server/scripts/"

使用ansible的 script模块 执行脚本 removes参数判断脚本不存在就不执行,反之就执行

[root@mage-monitor-01 ~]# ansible all -m script -a "removes=/server/scripts/set_backup_script.sh /server/scripts/set_backup_script.sh "

将备份结果发邮件提醒就不弄了,比较简单。

 

下一节搞小米监控

 

转载于:https://www.cnblogs.com/benjamin77/p/9265025.html

你可能感兴趣的文章
a标签添加点击事件
查看>>
Context.startActivity出现AndroidRuntimeException
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
回到顶部浮窗设计
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>