游戏服备份
<h1>1、ops上传tar包到游戏服远程备份机器的/root/sh/目录下面</h1>
<pre><code>/home/jianwei/package/db_backup.tar.gz</code></pre>
<h1>2、远程备份服务器操作</h1>
<pre><code>#启动并加入开机自启
/usr/bin/rsync --daemon --config=/root/sh/db_backup/rsync_binlog.conf
/usr/bin/rsync --daemon --config=/root/sh/db_backup/rsyncd.conf
#创建备份目录
mkdir /data/remote_backup/data_temp
#放行防火墙
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 27812 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 27813 -j ACCEPT
</code></pre>
<h1>3、ops修改脚本,然后跑所有游戏服/etc/ansible/playbooks/backup/backup.ini</h1>
<pre><code>#只需要修改rsync_pub_ip、rsync_native_ip,其余不动
# ------------------- 备份配置文件 -------------------
# 注意:文件需遵循bash语法
# --------------------------------------------------
# 异地备份IP,留空的话,不做异地备份
rsync_pub_ip=124.71.191.222 #改为目标远程备份机的公网ip
# 异地备份的内网IP,如运营服和备份机不在同内网,此项留空
rsync_native_ip=10.0.14.237 #改为目标远程备份机的内网ip
# 异地备份端口
rsync_port=27812
# 异地备份认证用户名
rsync_user=sync_rmt_ali
# 异地备份同步密码
rsync_pass=Bpu1SnDTxriPMtboJ8fKYR2GkOFlqWwX
# 异地备份的节点名
rsync_node=rmt_backup
# 异地备份最大带宽,单位kB
rsync_bwlimit=20480
# 同步最大重试次数,防止一直重试
rsync_retry=3000
# 通知最大重试次数
web_retry=3000
# 是否在本机压缩,
loc_compress=1
# 指定项目代码,有些项目无法从路径中识别项目代码,如发生备份成功,但通知失败,那就指定这个
spc_code=
# 是否提交未提交的事务,如果提交事务,备份时不会压缩加密,提交后再压缩加密
apply_log=1
# dets 或 mnesia 的目录名,备份数据库时也要备份
ext_dir=dets
# 通讯加密key
api_key=ed0a49de3ae255e64892eef2c8ef3ee0
#异地传输同时最大的进程数,实际真正在同步的数量是比这个设定值少1个的
rmt_num=4
#通知的IP
msg_ip=120.79.159.114
#标记文件,会检查是否存在所有这些文件
#spc_tabs=( role role_ext )
spc_tabs=( role role_info )
#本机外网ip
loc_ip={{ ansible_ssh_host }}</code></pre>
<h1>4、ops跑脚本部署到每一台游戏服</h1>
<pre><code>ansible-playbook -i test.txt /etc/ansible/playbooks/backup/addbackup.yml -b</code></pre>
<h1>5、查看计划任务是否有下列任务</h1>
<pre><code>30 2 * * * bash /root/sh/backup.sh &gt;/dev/null 2&gt;&amp;1 #备份到远程
10 2 * * * bash /root/sh/backup.sh clean &gt;/dev/null 2&gt;&amp;1
5 * * * * bash /root/sh/dets.sh &gt;/dev/null 2&gt;&amp;1 #备份到本地</code></pre>
<h1>6、验证</h1>
<p>执行备份到远程,远程机器是否有文件</p>