rsync备份系统

该文本记录怎么用rsync来备份系统,系统备份有整体部分和局部备份等分别,因为实验室需要备份的数据总体来说不是很大,所以我们可以用整体备份的方法来备份整个系统,这样当系统挂了之后,可以把备份的系统拷到服务器,迅速的恢复设备。

当然系统目录下的/proci和/sys目录是不需要备份的,因为它是系统运行是运行在系统内存上的一些记录,没有记录的必要,其他目录如/dev也是备份不备份看你需要了,通常这个目录不是很大,所以我决定采用除了/proc和/sys目录之外,其它统一进行备份的方法。

 

首先配置服务器端:(需要备份的系统)

1,安装rsync (系统安装很简单)

2,配置/etc/rsync.conf

    uid = root

    gid = root

    use chroot = no

    read only = yes

    max connections = 4

    timeout = 600

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsync.lock

    secrets file = /etc/rsyncd.secrets

    auth user = root

    list = yes

    ignore errors

 

    [grape]

    path = /home/gentoo/grapes

    comment = "grape test"

    hosts allow = 192.168.1.166

    hosts deny = 0.0.0.0/0

 

    [benchmark]

    path = /home/gentoo/benchmark

    comment = "benchmark"

    hosts allow = 192.168.1.166

    hosts deny = 0.0.0.0/0

上面是我测试用的配置,grape和benchmark是我定义的两个模块名,也就是你要拷贝的目录。认证用户名是root,密码在/etc/rsyncd.secrets里面保存,这里的用户名和密码是你在客户端里面当同步复制的时候,需要认证的用户名密码,这两个可以随便设置,

#cat /etc/rsycnd.secrets

        root:nopasswd

#/etc/init.d/rsycnd start

#rsync --daemon

 

这样,服务器配置好了,下面就说说客户端。

 

客户端就只需要写个脚本就ok了,网上有好多,下面贴出我根据网上的脚本进行修改后能正常运行并且测试过的代码:

-----------------------------------------------------------------------------------------------------------------------------------------

#!/bin/bash

unset verb progress

for i in $*; do

[ "$i" = "verb" ] && verb=v

[ "$i" = "progress" ] && progress="--progress"

done

RSYNC_SERVER=192.168.1.208  #rsync server IP

AUTH_USER=root          #认证用户,与服务器一致

BAKROOT=/home/rainbow/testbackup   #备份到客户端的目录

INC_DIR=increment               #每次进行变化的文件记录

NOW=`date +%Y-%m-%d_%H:%M`

 

[ ! -e $BAKROOT ] && mkdir -p $BAKROOT

PASSWD_FILE=$BAKROOT/passwd          #passwd里面是认证用户密码,直接写入密码就可以,我的文件里面就一句,nopasswd

PASSWD_PERM=`ls -l $PASSWD_FILE|awk '{print $1}'`

if [ "$PASSWD_PERM" != "-rw-------" ]; then

echo -e "/nWARNING: permission of passwd file changed to 0600 /n";

chmod 0600 $PASSWD_FILE

fi

LOGFILE=$BAKROOT/backup.log

EXCLUDES=$BAKROOT/exclude_file             #这里面写你不需要同步目录,每行一个记录,内容可以如右:/tmp,或者模块下的某个目录

                                           #如scripts,也能支持通配符。

[ ! -e $EXCLUDES ] && touch $EXCLUDES

BACKUP_MODULES="grape benchmark"             #服务器上的模块名字

#echo $BACKUP_MODULES

OPTIONS="--force --ignore-errors --delete --delete-excluded /

--exclude-from=$EXCLUDES $progress /

--password-file=$PASSWD_FILE --backup"

rm -f $BAKROOT/log.*

log_id=0

for bakdir in $BACKUP_MODULES; do

log_id=`expr $log_id + 1`

SUBOPTS="--backup-dir=$BAKROOT/$INC_DIR/$bakdir/$NOW -az${verb}"

rsync $OPTIONS $SUBOPTS $AUTH_USER@$RSYNC_SERVER::$bakdir /

$BAKROOT/$bakdir | tee $BAKROOT/log.$log_id

done

cat $BAKROOT/log.* >> $LOGFILE

rm -f $BAKROOT/log.*

 

---------------------------------------------------------------------------------------------------------------------------------------

 

#cat exclude_file

scripts

这里就是把grape模块里面的scripts目录同步。

#chmod 755 rsync.sh #上面脚本名字

#./rsync.sh 或者./rsync.sh verb progress #后者可以看到进度

这样,就可以备份了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值