#!/bin/bash # Quarterly UPS battery self-test — runs via cron first Sunday of Jan/Apr/Jul/Oct NUT_PASS='Sparky$100' NUT_USER='upsadmin' NUT_HOST='localhost' logger -t ups-quarterly-test 'starting quarterly battery self-test' logger -t ups-quarterly-test 'testing cyberpower1 (Tower)' upscmd -u "$NUT_USER" -p "$NUT_PASS" cyberpower1@$NUT_HOST test.battery.start.quick 2>&1 | logger -t ups-quarterly-test sleep 120 result1=$(upsc cyberpower1@$NUT_HOST ups.test.result 2>/dev/null) logger -t ups-quarterly-test "cyberpower1 result: $result1" logger -t ups-quarterly-test 'testing cyberpower2 (Rackmount)' upscmd -u "$NUT_USER" -p "$NUT_PASS" cyberpower2@$NUT_HOST test.battery.start.quick 2>&1 | logger -t ups-quarterly-test sleep 120 result2=$(upsc cyberpower2@$NUT_HOST ups.test.result 2>/dev/null) logger -t ups-quarterly-test "cyberpower2 result: $result2" if [[ "$result1" == 'Done and passed' && "$result2" == 'Done and passed' ]]; then logger -t ups-quarterly-test 'PASS: both UPS batteries healthy' else logger -t ups-quarterly-test 'FAIL: one or more UPS batteries need attention' fi