#!/bin/bash # (c) 2021 Sancho Lerena # This is a remote agent script, to use local plugins from a distant server. # You can run this from a local pandora agent. # Run with -h to see more information # Configurable tokens TEMP=/tmp OUTPUTDIR=/var/spool/pandora/data_in OS_NAME=Linux ENCODING="iso-8859-1" INTERVAL=300 function help { echo -e "" echo -e "Remote agent script for Pandora FMS. http://pandorafms.com" echo -e "Syntax:" echo -e "\t-a agent Agent name as will be presented in the output XML" echo -e "\t-f scriptfile Script file to execute. It must generate the XML for modules itself" echo -e "\t-e encoding Character encoding of the agent name and scriptfile output (default: $ENCODING)" echo -e "\t-h This help" echo "" exit } if [ $# -eq 0 ] then help fi AGENT="" SCRIPTFILE="" while getopts ":h:a:f:e:" optname do case "$optname" in "h") help ;; "a") AGENT=$OPTARG ;; "f") SCRIPTFILE=$OPTARG ;; "e") ENCODING=$OPTARG ;; ?) help ;; default) help ;; esac done if [ -z "$AGENT" ] then help exit fi if [ -z "$SCRIPTFILE" ] then help exit fi # Date and time, SERIAL is number of seconds since 1/1/1970, for every packet. TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"` SERIAL=`date +"%s"` # File names DATA=$TEMP/$AGENT.$$.$SERIAL.data # Makes data packet echo " " > $DATA echo "" >> $DATA # Execute the script file eval $SCRIPTFILE >> $DATA # Finish data packet echo "" >> $DATA echo "" >> $DATA # Moving to target directory mv $DATA $OUTPUTDIR