Call us Today +49 (0)7543 609337-0
Login

Register - Lost your password?

Cacti Backup Guide

This guide describes a short how-to for backing up all essential cacti files.

Generic Information

This section provides an overview on what should be backed up as well as the script and cron jobs being used

What to Backup:

The goal of the backup is to have a full working Cacti installation restored as fast as possible. Therefore the following configuration files and directories should be included:

  • Apache configuration
  • PHP configuration
  • Cacti Cronjob
  • Full Cacti directory
  • Backup script
  • If installed: Spine

In addition to these files, the following database needs to be saved:

  • cacti

Backup Script:

The passwords have been changed to “xxx”.

[newsletter_lock]

#!/bin/bash
# Urban-Software.de
# Database Backup Script

# Set the backup filename and directory
DATE=`date +%Y%m%d` # e.g 20130721
FILENAME="cacti_database_$DATE.sql";
TGZFILENAME="cacti_files_$DATE.tgz";
BACKUPDIR="/backup/";

# Database Credentials
DBUSER="cactiuser";
DBPWD="xxx";
DBNAME="cacti";

# FTP Backup Server credentials
FTPHOST="127.0.0.1";
FTPUSER="cacti";
FTPPWD="xxx";

echo "Creating Cacti backup for [$DATE]"

# Where is our gzip tool for compression ?
# The -f parameter will make sure that gzip will
# overwrite existing files
GZIP="/bin/gzip -f";

# What files do we want to include ?
# Change the directories accordingly !
TARINCLUDE="./var/www/html
./etc/cron.d/cacti
./etc/php.ini
./etc/php.d
./etc/httpd/conf
./etc/httpd/conf.d
./usr/local/spine/etc/spine.conf
./usr/local/spine"

# Which files/directories do we want to EXCLUDE ?
TAREXCLUDE="./var/www/html/log"

# Delete old database backups older than 3 days
find /backup/cacti_database*.sql.gz* -mtime +3 -exec rm {} \;
find /backup/cacti_files*.tgz* -mtime +3 -exec rm {} \;

# Change to the root directory
cd /

# execute the database dump
mysqldump --user=$DBUSER --password=$DBPWD --add-drop-table --databases $DBNAME > $BACKUPDIR$FILENAME

# compress the database backup
$GZIP $BACKUPDIR$FILENAME

# Create the Cacti files backup
tar -czpf $BACKUPDIR$TGZFILENAME $TARINCLUDE

# Generate MD5 crc
md5sum $BACKUPDIR$TGZFILENAME > $BACKUPDIR$TGZFILENAME.md5
md5sum $BACKUPDIR$FILENAME.gz > $BACKUPDIR$FILENAME.gz.md5

# Uncomment the following to enable FTP upload
exit

# Upload to FTP server (on a SCP server, the transfer could be verified
# By a md5sum execution on the remote system with a comparison of the 2 files afterwards
ftp -inv $FTPHOST << EOF
user $FTPUSER $FTPPWD
bin
put $BACKUPDIR$TGZFILENAME.md5 $TGZFILENAME.md5
put $BACKUPDIR$FILENAME.gz.md5 $FILENAME.gz.md5
put $BACKUPDIR$TGZFILENAME $TGZFILENAME
put $BACKUPDIR$FILENAME.gz $FILENAME.gz
bye
EOF

[/newsletter_lock]

Backup Cronjob:

The following lines have been added to /etc/cron.d/cacti:

# Cacti Backup Schedule
0 2 * * * root /bin/bash /backup/cacti_backup.sh &>/backup/backup.log

Restore Procedures

Follow these steps in order to restore your Cacti system:

  1. Create a new System with all pre-requirements satisfied ( php, mysql, apache installed, basic Cacti )
  2. Fetch your latest backup files ( files + database ) and put it into the tmp directory
  3. Drop and Re-Create a the cacti database and add the cacti user with your DB credentials ( change xxx to match your current database user/password):
    mysql –p
    > CREATE DATABASE cacti;
    > GRANT ALL PRIVILEGES ON cacti.* TO cacti@localhost IDENTIFIED BY “xxx”;
    > FLUSH PRIVILEGES;
  4. Execute the following commands:
    cd /
    tar –xzvf /tmp/cacti_files_yyyymmdd.tgz
    cd /tmp/
    gunzip /tmp/cacti_database_yyyymmdd.sql.gz
    mysql –u cacti –p cacti < /tmp/cacti_database_yyyymmdd.sql

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close