频道栏目
首页 > 资讯 > 其他 > 正文

Cacti图形数据自动导出脚本

16-01-15        来源:[db:作者]  
收藏   我要投稿

Cacti图形数据自动导出脚本

此脚本在cacti服务器或者其他linux服务器中运行(其他服务器中运行需要打开数据库远程访问权限)

脚本通过crontab指定时间下载cacti中图形树中所有的图形的图形文件和CSV数据文件。

本脚本根据当前日期创建相应的图形和数据的每日和每月的文件夹并进行保存,方便查看

具体注意事项已经在脚本注释中做了详细解释

 

#Cacti图形数据自动导出脚本
#本脚本通过自动查询图形树中所有的图形编号和图形名称,使用wget工具进行下载,
#在图形树中添加图形以后,导出系统会在执行前自动查询数据库中最新的列表。
#您要做的就是,将您需要导出的图形添加至图形树即可。

#使用此脚本前应首先更改Cacti图形和数据导出网页的验证模式,更改完毕后可免验证登录,有一定的风险,请慎重!
#注释掉graph_image.php和graph_xport.php文件中[include("./include/auth.php");]行
#添加[include("./include/global.php");]

#使用以下命令添加crontab自动下载列表我这里添加的是每日00:01分进行下载。添加完成后重启crond服务
#我这里将脚本文件保存在cacti文件夹中的file文件夹中,为了安全,可将脚本保存在别处,并在apache中添加虚拟目录,进行文件浏览。
#echo"0100***root/var/www/html/file/export.sh>/dev/null2>&1">/etc/cron.d/export

#陕西西普数据通信股份有限公司运行与维护部
#By:Fenei2016年1月14日
#QQ:407603129EMAIL:babyfenei@qq.com
#http://babyfenei.blog.51cto.com

#!/bin/bash
USERNAME="root"#数据库用户名
PASSWORD="passwd"#数据库密码
DBNAME="cacti"#Cacti使用的数据库名称
MYSQL_CMD="mysql-u${USERNAME}-p${PASSWORD}"

rm-rf/tmp/list.log#删除旧的下载列表文件
#selectreplace(title_cache,'*','')此语句是去除图形标题中的*号我的所有图形树中的图形都有*号如果没有可将本语句改为selecttitle_cache,
select_db_sql="selectreplace(title_cache,'*',''),graph_tree_items.local_graph_id
fromgraph_tree_itemsleftjoingraph_templates_graph
ongraph_templates_graph.local_graph_id=graph_tree_items.local_graph_id
wheregraph_tree_items.local_graph_id<>0orderby'id'desc"
echo${select_db_sql}|${MYSQL_CMD}${DBNAME}>/tmp/list.log#查询图形树表中的图形ID非0的数据并将结果保存至下载列表
#判断是否创建成功
then
echo"selectdatabases${DBNAME}failed...">>/var/log/export/log#数据库查询失败时将添加失败日志到日志文件中
fi


cd/var/www/html/file
#此命令为指定导出文件所在目录,可根据需求更改。如不指定的话会造成下载到root目录。

#创建以日期为名称的文件夹
mkdir-p$(date-d1+%Y/%m/%d/image/)
mkdir-p$(date-d1+%Y/%m/month/image)
mkdir-p$(date-d1+%Y/%m/%d/data)
mkdir-p$(date-d1+%Y/%m/month/data)

#Cacti网址阐述这里必须在后面加'/'号否则报错
URL="http://localhost/"
#获取当日日期判断是否是1号
DAY=`date+%d`


#下载日流量图

cat/tmp/list.log|awk'NR>1'|whilereadnameid
do
wget"${URL}graph_image.php?local_graph_id=${id}&rra_id=1"-O$(date-d1+%Y/%m/%d/image/)${name}.jpg
done


#下载月流量图

cat/tmp/list.log|awk'NR>1'|whilereadnameid
do
if["$DAY"=01];then
wget"${URL}graph_image.php?local_graph_id=${id}&rra_id=3"-O$(date-d1+%Y/%m/month/image/)${name}.jpg
fi
done


#下载日流量数据表

cat/tmp/list.log|awk'NR>1'|whilereadnameid
do
wget"${URL}graph_xport.php?local_graph_id=${id}&rra_id=1"-O$(date-d1+%Y/%m/%d/data/)${name}.xls
done


#下载月流量数据表

cat/tmp/list.log|awk'NR>1'|whilereadnameid
do
if["$DAY"=01];then
wget"${URL}graph_xport.php?local_graph_id=${id}&rra_id=3"-O$(date-d1+%Y/%m/month/data/)${name}.xls
fi
done

导出结果如图

wKiom1aXnnCTnQtQAACLLBBeHY0858.png

 

如果想查看导出列表的,也可使用如下php文件进行查询

0orderby'id'desc";
//执行SQL语句
$result=mysql_query($query)ordie("Errorinquery:$query.".mysql_error());
//显示返回的记录集行数
if(mysql_num_rows($result)>0){
//如果返回的数据集行数大于0,则开始以表格的形式显示
echo"";
while($row=mysql_fetch_row($result)){
echo"";
echo"".$row[0]."";
echo"".$row[1]."";
echo"".$row[2]."";
echo"";
}
echo"";
}
else{
echo"记录未找到!";
}
//释放记录集所占用的内存
mysql_free_result($result);
//关闭该数据库连接
mysql_close($connection);
?>

查看结果如下
wKiom1aXn7yQuJCsAABEfSjmVOE939.png

相关TAG标签
上一篇:高级网络综合实战架构案例
下一篇:Linux内核TCP/IP参数分析与调优
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站