民审-M

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

作者:民审-M   发布时间:2017-04-16 22:20   回复数:0   浏览数:359
民审-M
3590民审-M金牌草根
2017-04-16 22:20:07
3590 2017-04-16 22:20:07
[indent]1、参考图
[/indent]


[indent]2、参考脚本
[/indent]#!/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

游客
登录后才可以回帖,登录 或者 注册