您的位置:首页 > 运维架构

cacti配置流量监控三---备份与恢复cacti数据

2011-04-15 17:47 549 查看
相关的安装及配置文档,可参见之前的两篇博文:

/article/4288762.html

/article/4288765.html

备份cacti数据

1、对于cacti文件数据的备份,有几个重要的目录文件:

/var/www/html/cacti/rra (该目录为rrdtool图形文件,此处的备份不能用简单的cp,而要使用rrdtool工具来进行备份及恢复)

rrdtool dump filename.rrd >filename.xml

注:如果是直接cp备份的,恢复后在cacti的主页上显示不出来图形,因此对于rrd文件的备份与恢复必须例用rrdtool工具来做。

/var/www/html/cacti (该目录为cacti的主程序文件,此处的备份,可以使用cp、rsync或tar进行备份)

2、对于cacti的数据库的备份,此处主要涉及mysql的备份方法,这里主要采用mysqldump命令行方式备份,如采用命令

mysqldump -ucactiuser -pcacti cacti --opt > cacti.sql
注:此处的--opt参数是很多参数的一个群组。

在mysqldump的man page页里的解释:

use of --opt is the same as specifying --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset.

Note that all of the options that --opt stands for also are on by default because --opt is on by default.

从上面的解释中,它是一组参数的群组,当指定了--opt后,就相当于默认指定了这些参数:

--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset

3、根据以上的几项要点,写出备份的SHELL脚本

大致的意思是将cacti数据库、cacti的主程序文件、rrd图形文件备份到一个指定的目录





脚本文本格式如下:

#!/bin/bash

RRDDUMP="/usr/bin/rrdtool dump"

RRASOURCEDIR="/var/www/html/cacti/rra"

CACTIDIR="/var/www/html/cacti"

RRADESTDIR="/opt/rraxml"

DATABASEDIR="/opt"

BCACTIDIR="/opt/cacti"

MYSQLDUMP="/usr/bin/mysqldump"

DATE=`date +%Y%m%d`

echo "Backup cacti's database...."

$MYSQLDUMP -ucactiuser -pcacti cacti --opt > ${DATABASEDIR}/cacti.$DATE.sql

if [ ! -e ${RRADESTDIR} ];then

mkdir ${RRADESTDIR}

else

rm -rf ${RRADESTDIR}/*

fi

echo "Backup cacti's files..."

if [ -e $BCACTIDIR ];then

rm -rf $BCACTIDIR

fi

cp -rf ${CACTIDIR} $DATABASEDIR

rm -f $BCACTIDIR/rra/*.rrd

rm -f $BCACTIDIR/log/*.log

cd ${RRASOURCEDIR}

echo "rrddump is processing ..."

for file in `ls ${RRASOURCEDIR}/*.rrd|awk -F\/ '{print $NF}'`

do

$RRDDUMP $file > ${RRADESTDIR}/${file}.xml

done

echo "ok"

恢复cacti数据

对于cacti的数据恢复主要包括cacti数据库、cacti的主程序文件、rrd图形文件

数据库的恢复主要为,先删除已经存在的cacti数据库,然后再创建,再将备份的数据导入。

cacti的主程序文件的恢复主要为,将备份文件复制到/var/www/html目录。

rrd图形文件的恢复主要为,使用rrdtool restore filename.xml filename.rrd

因此根据上面的备份,同样,写出如下SHELL脚本来进行处理





脚本文本格式如下:

#!/bin/bash

RRDRESTORE="/usr/bin/rrdtool restore"

RRADESTDIR="/var/www/html/cacti/rra"

CACTILOG="/var/www/html/cacti/log"

CACTI="/var/www/html"

CACTIDIR="/var/www/html/cacti"

RRASOURCEDIR="/opt/rraxml"

DATABASEDIR="/opt"

BCACTIDIR="/opt/cacti"

MYSQL="/usr/bin/mysql"

DATE=`date +%Y%m%d`

echo "Creating cacti database and grant priviliges..."

$MYSQL <<EOF

drop database cacti;

create database cacti;

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cacti';

flush privileges;

EOF

echo "Restore cacti's database...."

${MYSQL} -ucactiuser -pcacti cacti < $DATABASEDIR/cacti.$DATE.sql

echo "Restore cacti's files...."

rm -rf $CACTIDIR

cp -rf $BCACTIDIR $CACTI

echo "rrdrestore is processing..."

cd $RRASOURCEDIR

for file in `ls $RRASOURCEDIR |awk -F\/ '{print $NF}'|sed 's/.xml//g'`

do

${RRDRESTORE} $RRASOURCEDIR/${file}.xml ${RRADESTDIR}/${file}

done

echo "ok"

chown -R cactiuser:cactiuser ${RRADESTDIR} ${CACTILOG}

脚本内容可以根据自己需要进行更改目录及路径。
本文出自 “宁静致远” 博客,请务必保留此出处http://skyou.blog.51cto.com/2915693/545841
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: