<?php
/**
 * Squid の File descriptor を引数で取得するもの
 * Zabbix で 使ってください。
 */

/**
 * @param string $host 第1引数 IPアドレス
 * @param string $key 第2引数 maximum or largest or number or file or .....
 */
$host = $argv[1];
$key = $argv[2];
file_put_contents("result", shell_exec("squidclient -h ${host} mgr:info"));

$result = file("result");

switch($key){
    case 'maximum':
        $maximum = preg_replace("/\\D/", "", $result[72]); //Maximum number of file descriptors
        echo $maximum;
        break;

    case 'largest':
        $largest = preg_replace("/\\D/", "", $result[73]); //Largest file desc currently in use
        echo $largest;
        break;

    case 'number':
        $number = preg_replace("/\\D/", "", $result[74]); //Number of file desc currently in use
        echo $number;
        break;

    case 'file':
        $file = preg_replace("/\\D/", "", $result[75]); //Files queued for open
        echo $file;
        break;

    case 'available':
        $available = preg_replace("/\\D/", "", $result[76]); //Available number of file descriptors
        echo $available;
        break;

    case 'reserved':
        $reserved = preg_replace("/\\D/", "", $result[77]); //Reserved number of file descriptors
        echo $reserved;
        break;

    case 'store':
        $store = preg_replace("/\\D/", "", $result[78]); //Store Disk files open
        echo $store;
        break;

    default:
        die();
}