Manual - A Sample cron using CQLSÍ

Aquí teniu un exemple de cron a crons/server_stats.php que guarda el percentatge de CPU usat al servidor, cada 5 minuts.

Aquest cron és executat pel cron de Linux. Per a definir-lo feu:

crontab -e
I llavors escrigueu una línea com aquesta:
*/5 * * * * /path/to/server_stats.php

Aquí està el codi, molt senzill

Codi d'exemple

#!/usr/bin/env php
# Remember to set as executable with chmod +x
# install it with crontab -e
# */5 * * * * /path/to/server_stats.php
<?php

/**
 * Creator:      Carles Mateo
 * Date Created: 2014-01-29 20:28
 * Last Updater: Carles Mateo
 * Last Updated: 2014-01-30 14:55
 * Filename:     server_stats.php
 * Description:  Stores the stats of the server in the Cassandra Db
 */

$s_path = dirname(__FILE__);
if (substr($s_path,-1) != '/' && substr($s_path,-1) != '\\') {
    $s_path .= '/';
}

require_once $s_path.'../config/general.php';
require_once CATFW_CORE_ROOT.'datetime.class.php';
require_once CATFW_CORE_ROOT.'security.class.php';
require_once CATFW_CORE_ROOT.'file.class.php';
require_once CATFW_CORE_ROOT.'db.class.php';

use CataloniaFramework\Db as Db;

$st_db_config = Array(	'read'  => Array(   'servers'   => Array(0 => Array('connection_type'   => Db::TYPE_CONNECTION_CASSANDRA_CQLSI,
                                                                            'connection_method' => Db::CONNECTION_METHOD_TCPIP,
                                                                            'server_hostname'   => '127.0.0.1',
                                                                            'server_port'       => Db::PORT_DEFAULT_CASSANDRA,
                                                                            'username'          => 'www_cassandra',
                                                                            'password'          => 'passCassandra',
                                                                            'database'          => 'cataloniafw',
                                                                            'client_encoding'   => 'utf8'
                                                                            )
                                                                )
                                        ),
                        'write' => Array(   'servers'   => Array(0 => Array('connection_type'   => Db::TYPE_CONNECTION_CASSANDRA_CQLSI,
                                                                            'connection_method' => Db::CONNECTION_METHOD_TCPIP,
                                                                            'server_hostname'   => '127.0.0.1',
                                                                            'server_port'       => Db::PORT_DEFAULT_CASSANDRA,
                                                                            'username'          => 'www_cassandra',
                                                                            'password'          => 'passCassandra',
                                                                            'database'          => 'cataloniafw',
                                                                            'client_encoding'   => 'utf8'
                                                                            )
                                                                )

                                        )


                    );

$s_node = 'CRON01';

$o_db = new Db($st_db_config);


// Simple insert
$s_uuid = \CataloniaFramework\Security::getUUIDV4();
$s_unix_datetime = \CataloniaFramework\Datetime::getDateTime(\CataloniaFramework\Datetime::FORMAT_UNIXTIME);
$s_datetime = \CataloniaFramework\Datetime::getDateTime(\CataloniaFramework\Datetime::FORMAT_MYSQL_COMP);

$i_error_code = 0;

// Use top to get CPU usage.
// Finally converts Catalan decimals comma separated to American decimals point separated in case locale did transformations
// Tested with Ubuntu 13.10 and Ubuntu 12.04 with different locales
$s_command = "top -b -n1 | sed 's/%/ /g' | sed 's/,/./g' | awk '/Cpu/ {print $2 + $4}' | sed 's/,/./g'";
$s_cpu_used = system($s_command, $i_error_code);

$s_cql = "INSERT INTO
                        serverstats
                        (vdate, unix_datetime, node, vname, vvalue, datetime)
               VALUES
                        ('$s_vdate', $s_unix_datetime, '$s_node', 'CPU_USED', '$s_cpu_used', '$s_datetime');";

$st_results = $o_db->queryWrite($s_cql);
if ($st_results['result']['error'] > 0) {
    echo 'The query: '.$st_results['result']['query'].' returned error: '.$st_results['result']['error_description']."\n";
} else {
    echo 'Row inserted!'."\n";
}


Llavors tindreu les dades de consum de la vostra CPU guardades cada 5 minuts.


Tornar a la plana principal del Manual