返回列表 发新帖
查看: 363|回复: 0

Discuz!网站Linux下用rsync在不同服务器之间备份数据脚本[AMH kangle环境下实测]

[复制链接]

1万

热度

1万

元宝

1万

贡献

金牌草根

发表于 2017-4-16 22:20:07 | 显示全部楼层 |阅读模式
1、参考图



2、参考脚本
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# 备份服务器的IP
server="192.168.50.100"
# 备份服务器的SSH用户账号
user="rsync_user"
# 备份服务器的SSH服务端口号
port=50000
SSH="ssh -p $port -l $user -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
# 避免同时启动同一个脚本多次的锁文件
lock_file="/opt/rsync/lock"
# 需备份的源目录
sync_dir="/opt/source/sync"

function rsync_data()
{
local i
local n
local ret
n=`ls $sync_dir | wc -l`
if [ $n -ge 1 ]; then
echo "Info: $n files need rsync"
rsync -az -e "$SSH" $sync_dir $server:~/ 2>/dev/null
ret=$?
if [ $ret -eq 0 ]; then
for i in `ls $sync_dir`
do
$SSH $server "mv ~/sync/$i ~/backup/data" 2>/dev/null
if [ $? -eq 0 ]; then
rm -f "$sync_dir/$i"
fi
done
else
echo "Error: rsync return $ret"
ret=1
fi
else
echo "Info: no file need rsync"
ret=0
fi
return $ret
}
if [ -f $lock_file ]; then
pid=`cat $lock_file`
if ps -p $pid > /dev/null ; then
exit 0
fi
fi
echo $$ > $lock_file
# 同步数据
rsync_data
# 删除锁文件
rm -f $lock_file
exit 0

本文来源于网友学习研究交流 www.caogen8.co,请以学习研究交流为主。
如果您没有贡献积分,可以直接免费领取,免费领取
如果你需要加入本学习研究交流,请以学习研究交流为目的,免责声明
如果找不到您要的资源,请搜索一下,点击搜索
返回列表 发新帖
 懒得打字嘛,点击右侧快捷回复【最新发布】   【赞助草根吧享更多权益】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏帖子 返回列表 搜索

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

小黑屋|手机版|草根吧