You should be able to copy and paste the following in a backup.sh file and then execute from cron. Should work out of the box, but you can change the backup directory and the teams.sh path if needed/wanted.
#!/bin/bash # LibreNMS backup script # Jan 1, 2019 lDate=`date +%Y%m%d-%H%M` # local date + hour minute dDate=`date +%Y%m%d` # todays date # If you have the teams.sh script, you can trigger a backup notification ALERT="/home/admin/teams.sh -b" # Directory to backup to bDir="/backup" bName="librenms_backup" # MySQL settings for tar and sqldump sqlDir="/var/lib/mysql" sqlDB="librenms" sqlUN="root" sqlPW="" LOG="${bDir}/${lDate}-${bName}.log" # Directory that contains data dDir="/opt/librenms" # tar LibreNMS dir # tar SQL dir "the whole thing with the innode files # sql dump of the db for extra redundancy if [ -d ${bDir} ]; then echo "backup dir exist, starting to backup" else echo "backup dir not available. Quiting" exit 1 fi ${ALERT} "Starting backup for ${bName} - `date`" systemctl stop mariadb httpd # LibreNMS data backup tar -zcvf ${bDir}/${lDate}-${bName}.tgz ${dDir} if [ $? -eq 0 ]; then echo "Tar succesfully backed up ${bDir}" else echo "Tar failed while trying to backup ${dDir}" echo " ${lDate} - Tar failed while trying to backup ${dDir}" >> ${LOG} ${ALERT} "${lDate} - Tar failed while trying to backup ${dDir}" fi # MySQL data backup tar -zcvf ${bDir}/${lDate}-${bName}-mysql.tgz ${sqlDir} if [ $? -eq 0 ]; then echo "Tar succesfully backed up ${sqlDir}" else echo "Tar failed while trying to backup ${sqlDir}" echo " ${lDate} - Tar failed while trying to backup ${sqlDir}" >> ${LOG} ${ALERT} "${lDate} - Tar failed while trying to backup ${sqlDir}" fi systemctl start mariadb httpd sleep 5 # SQL dump mysqldump -u ${sqlUN} -p'4rfvBHU8!' ${sqlDB} > ${bDir}/${lDate}-${bName}.sql if [ $? -eq 0 ]; then echo "MySQL DB dumped" else echo "Ran into error while doing sql dump" echo "${lDate} - Ran into error while doing sql dump" >> ${LOG} ${ALERT} "${lDate} - Ran into error while doing sql dump" fi echo "Removing old backups" if ( ls ${bDir} | grep -q ${dDate} );then find ${bDir}/* -prune -mtime +31 -exec rm {} \; else echo "Looks like there are no backup files! Aborting!!!" ${ALERT} "${lDate} - Error: find failed to find any backup files in backup dir. Aborting!!!" fi ${ALERT} "Finished backup for ${bName} - `date`"