#!/usr/bin/env php | Poll single device\n"; echo "-h odd Poll odd numbered devices (same as -i 2 -n 0)\n"; echo "-h even Poll even numbered devices (same as -i 2 -n 1)\n"; echo "-h all Poll all devices\n"; echo "-h new Poll all devices that have not had a discovery run before\n"; echo "--os Poll devices only with specified operating system\n"; echo "--type Poll devices only with specified type\n"; echo "-i -n Poll as instance of \n"; echo " Instances start at 0. 0-3 for -n 4\n"; echo "\n"; echo "Debugging and testing options:\n"; echo "-d Enable debugging output\n"; echo "-v Enable verbose debugging output\n"; echo "-m Specify single module to be run. Comma separate modules, submodules may be added with /\n"; echo "\n"; echo "Invalid arguments!\n"; exit; } // If we've specified modules with -m, use them $module_override = parse_modules('discovery', $options); $discovered_devices = 0; if (! empty(\LibreNMS\Config::get('distributed_poller_group'))) { $where .= ' AND poller_group IN(' . \LibreNMS\Config::get('distributed_poller_group') . ')'; } global $device; foreach (dbFetch("SELECT * FROM `devices` WHERE disabled = 0 $where ORDER BY device_id DESC", $sqlparams) as $device) { DeviceCache::setPrimary($device['device_id']); $discovered_devices += (int) discover_device($device, $module_override); } $end = microtime(true); $run = ($end - $start); $proctime = substr($run, 0, 5); if (isset($new_discovery_lock)) { $new_discovery_lock->release(); } $string = $argv[0] . " $doing " . date(\LibreNMS\Config::get('dateformat.compact')) . " - $discovered_devices devices discovered in $proctime secs"; d_echo("$string\n"); if (! isset($options['q'])) { echo PHP_EOL; app(\App\Polling\Measure\MeasurementManager::class)->printStats(); } logfile($string); if ($doing !== 'new' && $discovered_devices == 0) { // No discoverable devices, either down or disabled exit(5); }