45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全

Unix/Linux系统自动化管理:数据备份与同步篇(3)

电脑软硬件应用网 45IT.COM 时间:2009-08-25 16:04 作者:网络收集

 

auth users

该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户不一定是客户端存在的用户。如果"auth users"被设置,那么客户端发出对该模块的连接请求时,需要对用户身份进行验证。用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认情况下无需密码就可以连接模块 ( 也就是匿名方式 )。


创建 rsync.secrets 作为用户密码文件


#touch /etc/rsyncd/rsyncd.secrets

#chmod 600 /etc/rsyncd/rsyncd.secrets

 


编辑 rsyncd.secrets, 格式为“用户 : 密码”


rsync:passwd

 


注意:rsync是服务器上存在的用户,同时将/CriticalData的使用者改为rsync


#chown -R rsync /CriticalData/

 


创建 rsync.motd 作为登录消息文件


此文件是选择性配置文件,也可以不创建。


#touch /etc/rsyncd/rsyncd.motd

 


编辑 rsyncd.conf


============================

This is Critical Data Server

=============================

 


1.启动 rsync

将 rsync 启动


#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

 


可以将这个命令写入 /etc/rc.d/rc.local 中,当系统启动时,自动运行 rsync。


2.创建脚本

在客户端创建一个 /root/rsync/ 目录用来存放自动化脚本和其它文件。


创建 /root/rsync/rsync.sh 自动化脚本,保证权限为 755。

 


清单 6. rsync 自动化示例脚本


#!/bin/sh


export RSYNC_PASSWORD=passwd

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin


// 设置远程服务器与需要备份的目录

SERVER=rsync@Server

DIR=CriticalData


// 设置客户端上的用于备份的目录

BDIR=/Backup

BASE=Current

INCREMENTDIR=`date +%Y-%m-%d`


// 在客户端灵活使用 exclude 功能;设置日志

EXCLUDES=/root/rsync/excludes

LOG=/tmp/rsync.log


// 参数设置,调用 backup-dir 将服务器端的增量文件存储到 INCREMENTDIR 目录下

OPTS="-avz--force --delete --delete-excluded --exclude-from=$EXCLUDES -b

--backup-dir=$BDIR/$INCREMENTDIR --ignore-errors"


// 确保客户端上的用于备份的目录存在

install -d $BDIR/$BASE


// 实现数据备份与同步,将日志邮寄给 root 用户

run_rsync()

{

echo "==========Begin rsync: `date`===========" >>$LOG 2>&1

du -s $BDIR/* >>$LOG 2>&1

rsync $OPTS $SERVER::$DIR $BDIR/$BASE >>$LOG 2>&1

echo "==========End rsync: `date`===========" >>$LOG 2>&1

mail root -s "Backup Report" < $LOG

rm $LOG

}


// 条件测试,运行程序

if [ -f $EXCLUDES ]; then

if [ -d $BDIR ]; then

run_rsync

else

echo "cant find $BDIR"; exit

fi

else

echo "cant find $EXCLUDES"; exit

fi

 


执行完 rsync.sh 后,可以查看 /Backup 目录来检查数据的正确性。将有两种目录,一个是 Current 目录,用于存放当前服务器端备份和同步后的数据。在脚本运行过程中,进行增量传输。另外还有一个类似于 2009-06-16 的目录,用于存放已在服务器端删除的增量数据。目录的名称将根据脚本执行的日期定义。


# pwd

/Backup

# ls

2009-06-16 Current

 


3.启用 cron 服务,实现定期自动备份

如果系统管理员需要连续地定期地执行脚本,那么就需要借助 Unix/Linux 系统的 crontab 功能,使系统可以定期地调用 rsync.sh 脚本。


使用命令“crontab -e”编辑 crontab,添加一条类似于以下的项:


0 0 * * * /root/rsync/rsync.sh 2>&1>>/root/rsync/rsync_cron.log

 


重新启动 cron 服务,并用“crontab – l” 查看任务是否添加成功。也可以定期查看 /root/rsync/rsync_cron.log 来监控 cron 服务的运行情况。


4.监控脚本的执行过程

如果配置正确 , rysnc.sh 的执行过程将会邮寄给 root 用户,通过 mail 命令可读取这些邮件。

 


清单 7. 使用 mail 命令读取监控输出

# mail

Mail version 8.1 6/6/93. Type ? for help.

"/var/spool/mail/root": 1 message 1 new

>N 1 root@cdlf2ler02.clus Tue Jun 16 16:53 32/1050 "Backup Report"

&


敲入回车,可显示具体的邮件内容。类似于:


清单 8. 邮件内容


Message 1:

From root@cdlf2ler02.clusters.com Tue Jun 16 16:53:35 2009

Date: Tue, 16 Jun 2009 16:52:14 -0400

From: root

To: root@cdlf2ler02.clusters.com

Subject: Backup Report


==========Begin rsync: Tue Jun 16 16:52:14 EDT 2009===========

16 /Backup/Current

===========================

This is Critical Data Server

===========================

 

receiving file list ... done

deleting b/

./

Location/

Name/

Name/Namelist1


sent 214 bytes received 317 bytes 1062.00 bytes/sec

total size is 3 speedup is 0.01

==========End rsync: Tue Jun 16 16:52:14 EDT 2009===========


小结


本文介绍了在 Unix/Linux 上广泛应用的实用命令和程序。随着磁盘的容量变得越来越大,要想跟踪所有的数据更加困难。只有更好的了解数据组成,进行数据分类,分析重要数据,结合工具的使用,才能低成本,高效率的进行数据备份与同步。自动化的实现同时也为数据备份与同步提供了很大的方便性,是另一种节省时间和精力并减少人工错误的方法。

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识