no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | monitors:xymon-duplicity [2020/05/17 09:02] (current) – created doktoil_makresh | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== xymon-duplicity ====== | ||
+ | |||
+ | ^ Author | [[ damien@makelofine.org | Damien ]] | | ||
+ | ^ Compatibility | Xymon 4.2 / 4.3 | | ||
+ | ^ Requirements | Basic unix tools | | ||
+ | ^ Download | Part of https:// | ||
+ | ^ Last Update | 2020-05-17 | | ||
+ | |||
+ | ===== Description ===== | ||
+ | This script will connect to your duplicity server to check the status of backups (see xymon-duplicity.cfg) | ||
+ | ===== Installation ===== | ||
+ | === Client side === | ||
+ | Add this entry in / | ||
+ | Adapt the name (root) to the user launching the backups | ||
+ | Adapt the path to duplicity | ||
+ | xymon ALL=(root) NOPASSWD: / | ||
+ | |||
+ | === Server side === | ||
+ | Nothing | ||
+ | ===== Source ===== | ||
+ | ==== xymon-duplicity.sh ==== | ||
+ | |||
+ | <hidden onHidden=" | ||
+ | < | ||
+ | # | ||
+ | #Verifying if the backup plan is working or not | ||
+ | #Heavily inspired by https:// | ||
+ | TEST=duplicity | ||
+ | INTERVAL=12h | ||
+ | export LANG=en_US | ||
+ | CONFIG_FILE=${XYMONCLIENTHOME}/ | ||
+ | BACKUP_BASE_DIR=${DUPLICITY_PROTOCOL}:// | ||
+ | |||
+ | #Debug | ||
+ | if [ " | ||
+ | echo "Debug ON" | ||
+ | XYMON=echo | ||
+ | XYMONCLIENTHOME="/ | ||
+ | XYMONTMP=" | ||
+ | XYMONDISP=your_xymon_server | ||
+ | MACHINE=$(hostname) | ||
+ | fi | ||
+ | |||
+ | STATUS_FILE=${XYMONTMP}/ | ||
+ | #Load configuration file | ||
+ | source $CONFIG_FILE | ||
+ | |||
+ | #Check each folders defined in Xymon_duplicity_config_file | ||
+ | TODAY=$(LANG=en_US date +%c | awk ' | ||
+ | YESTERDAY=$(LANG=en_US date +" | ||
+ | |||
+ | for FOLDER in $FOLDERS ; do | ||
+ | COLLECTION_STATUS=$(sudo duplicity collection-status $BACKUP_BASE_DIR/ | ||
+ | exitcode=$? | ||
+ | LATEST=$(echo $COLLECTION_STATUS | egrep " | ||
+ | |||
+ | #Check backup status | ||
+ | echo " | ||
+ | if [[ $exitcode != 0 ]] ; then | ||
+ | red=1 | ||
+ | echo "& | ||
+ | fi | ||
+ | if [[ $LATEST == "" | ||
+ | red=1 | ||
+ | echo "& | ||
+ | fi | ||
+ | if [[ $LATEST == *$TODAY* ]] ; then | ||
+ | echo "& | ||
+ | elif [[ $LATEST == *$YESTERDAY* ]] ; then | ||
+ | yellow=1 | ||
+ | echo "& | ||
+ | else | ||
+ | red=1 | ||
+ | echo "& | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | #Define global status | ||
+ | if [ " | ||
+ | global_color=red | ||
+ | elif [ " | ||
+ | global_color=yellow | ||
+ | else | ||
+ | global_color=green | ||
+ | fi | ||
+ | |||
+ | #Send Xymon the results | ||
+ | " | ||
+ | |||
+ | $(cat $STATUS_FILE) | ||
+ | " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Known Bugs and Issues ===== | ||
+ | None | ||
+ | ===== To Do ===== | ||
+ | Monitor backups on several duplicity servers | ||
+ | ===== Credits ===== | ||
+ | https:// | ||
+ | ===== Changelog ===== | ||
+ | |||
+ | * **2020-05-17** | ||
+ | * Initial release | ||