November 2008
Sorry, I don’t know anything about your “xterm-color” terminal.
Oggi durante una serie di comandi con un senso ben preciso Solaris mi ha parlato in questo modo:
Sorry, I don’t know anything about your “xterm-color” terminal.
La perplessità generale mi ha fatto lanciare questo comando:
bash-3.00# export TERM=vt100
Ma molto probabilmente sarebbe stato meglio un terminale “ansi”
Sorry, I don’t know anything about your “xterm-color” terminal. Read More »
Perl – Zabbix SMS Allert
Un netmonitor, non è un vero netmonitor se non fa squillare il telefono del sysadmin con un sms almeno 3 volte a notte, ecco qui uno script in perl per interfacciare zabbix con il servizio fornito da Mobyt tramite un POST http su un loro gateway, con qualche aggiustatina può essere usato anche con altri servizi analoghi.
#!/usr/bin/perl
# Leonardo Rizzi
# Version 0.3
# SMS sent throuth Mobyt gateway
# Designed for use without ip autentication only MD5 Hash
# Attention: there aren't any check but message limit is of 160 charaters.use Digest::MD5 qw(md5_hex);
use strict;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
my ($operation, $qty, $rcpt, $query, $out, $ua, $ok, $ko, $data, $from);
my ($code, $id, $password);$id="username";
$password="password";
$ok='SMS Sent Correctly';
$ko='SMS Not Sent';
$from= $ARGV[1];
$operation="TEXT";
$qty = 'h';#attention this fuking provider don't accept 00 for international area code only + if you use 00 you get sent error
$rcpt = $ARGV[0];
$data = $ARGV[2];
$code = join '', $id,$operation,$rcpt,$from,$data,$password;my $ticket=md5_hex($code);
$ua = new LWP::UserAgent;
$ua->agent("SMS_MD5_Relay/0.2 " . $ua->agent);
my $req = POST 'http://smsweb.mobyt.it/sms-gw/sendsmart',
[
id => $id,
operation => 'TEXT',
rcpt => $rcpt,
from => $from,
data => $data,
qty => $qty,
ticket=> $ticket
];my $res=$ua->request($req);
if ($res->content =~ /^OK/)
{
fine_ok (); }
else
{ fine_ko (); }exit;
sub fine_ko () {
my $msg=shift;
print "$ko\n";
exit (1);}
sub fine_ok () {
my $msg=shift;
print "$ok\n";
exit (1);}
Perl – Zabbix SMS Allert Read More »
MySQL – Reset root password
E si a volte capita di non ricordare o avere sotto mano la password di un database mysql, ecco qualche breve passaggio per reimpostarla:
1. Stoppare il server mysql solitamente una cosa del genere dovrebbe bastare:
root@tardis:~# /etc/init.d/mysql stop
2. Avviare una sessione del demone mysql con il parametro “skip grant table”
root@tardis:~# mysqld_safe –skip-grant-tables
3. A questo punto è possibile collegarsi al server senza che richieda credenziali quindi:
root@tardis:~# mysql
>
4. Reipostiamo direttamente nella tabella del db la password di root:
mysql> UPDATE mysql.user SET Password=PASSWORD(‘NewPass’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
5. Stoppiamo il demone avviato con il “skip grant table” e riavviare quello corretto:
root@tardis:~# /etc/init.d/mysql start
MySQL – Reset root password Read More »
PHP – Charset
Questo è dedicato a tutti quei programmatorucoli da quattro soldi che credono che si un problema di server quando nelle loro paginette del cavolo non vedono correttamente i caratteri.
Questa cosa:
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
Solitamente è quello che viene inserito nelle pagine html.
Per chi volesse capire ecco la spiegazione del perché questo non basta, in pratica l’engine legge il codice lo interpreta e restituisce un qualcosa, ovviamente questo qualcosa è definito chiaramente in fase di programmazione se vi dimenticate di inserire la codifica (vedi sotto) come diavolo può sapere l’engine php, che charset avete usato nella pagina?
<?php
header('Content-type: text/html; charset=utf-8');
?>
Quindi ricordate di entrambe le cose anche se la pagina contiene html ma è .php e non rompete ai sistemisti che hanno già tante cose da fare.
Apple – Resetting PowerBook and iBook Power Management Unit (PMU)
Ogni tanto il sistema di alimentazione, dei powerbook ammetto che si blocca o feggio ancora fa un po’ i fattacci suoi, una resettatina non fa male:
Rimando alla documentazione ufficiale sul sito apple:
Apple – Resetting PowerBook and iBook Power Management Unit (PMU) Read More »
Debian – PXE installation
Dato che ultimamente è più facile per me avere a portata di mano un portatile o dispositivo simile e non i cd che vanno innesorabilmente persi, mi sono deciso a mettere un sistema di boot PXE sul notebook per effettuare l’installazioni dei server.
Ecco quello che serve per partire, è necessario avere questi 3 pacchetti:
– Il server TFTP dove risiederanno le immagini di boot.
– Il server DHCP per distribuire gli indirizzi e i parametri PXE
– Il dnsmasq questo servirà ad installazione avviata per recuperare i pacchetti dal repository
1. Quindi prima cosa installiamo:
root@tardis:~/apt-get install tftpd-hpa dhcp3-server dnsmasq
2. Abilitiamo il server tftp con questi passaggi:
Editiamo:
/etc/default/tftpd-hpa
Modificando questo parametro:
RUN_DAEMON=”no”
in questo:
RUN_DAEMON=”yes”
Io mi sono creato per comodità un link simbolico alla root del tftp in /
root@tardis:~# ln -s /var/lib/tftpboot /tftp-root
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/tftpd-hpa start
3. Abilitiamo il server dhcp:
Editiamo questo file:
/etc/dhcp3/dhcpd.conf
Inserendo queste righe:
option domain-name-servers 192.168.10.50;
default-lease-time 86400;
max-lease-time 604800;
authoritative;subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.1.20;
filename “pxelinux.0”;
next-server 192.168.10.50;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.10.50;
}
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/dhcpd-server start
4. Abilitiamo il dnsmasq
Editiamo questo file:
/etc/dnsmasq.conf
dhcp-boot=pxelinux.0,tardis,192.168.10.50
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/dnsmasq start
5. Routing:
Questa parte ci serve per fare il get dal repository usando il portatile da router.
root@tardis:~# echo 1 > /proc/sys/net/ipv4/ip_forward
6. Prepariamo il repository locale:
root@tardis:~# cd /tftp-root
root@tardis:~# wget http://ftp.nl.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
root@tardis:~# tar xvf netboot.tar.gz
Con questa operazione creaiamo il repository per il boot normale senza opzioni, eventuali parametri andranno specificati manualmente.
Ora collegando una macchina da installare con il pxe abilitato, prederà l’ip dal server dhcp e caricherà l’immagine di boot tramite tftp!
Debian – PXE installation Read More »
Debian – debian-sys-maint
Se per sbaglio durante un restore di un database mysql cancellaste l’utente di sistema debian-sys-maint
Potete ripristinarlo usando la password generata e scritta in chiaro in questo file:
/etc/mysql/debian.cnf
Questo è necessario se usate il sitema APT per gestire gli aggiornamenti dei servizi, in caso contrario non ha senso di esistere.
Debian – debian-sys-maint Read More »
Cavo Ottico
Non c’è cosa migliore di incontrare una bobinona di fibra ottica, sotto l’ufficio di primo mattino.
Ero convinto che avvesero fermato l’ampliamento dell’infrastruttura ottica nelle zone centrali di milano, mi fa pensare che siamo attivati a livelli critici di saturazione delle linee su rame.
Tool – Make Self
Segnalo un tool per creare gli eseguibili autoestraenti sui sistemi *nix sempre utile per ogni evenienza.
Ed è solo lunedì..
Lunedì +
Il Lunedì, le ferrovie che scioperano, la benedizione natalizia dell’ufficio, hanno messo veramente a dura prova la mia pazienza.
Ed è solo lunedì.. Read More »
VPS Linux – TUN/TAP Device
Se aquistato una vps con Debian basata su XEN ricordatevi che nella maggio parte dei casi mancano tools per gestire i moduli quindi per utilizzare un qualsiasi modulo in questo caso particolare tun/tap occorre installarli:
# apt-get install module-init-tools
#modprobe tun
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
A questo punto è tutto pronto.
Per riconoscere se è questo il vostro problema è facile incorrere in questo errore:
QM_MODULES: Function not implemented
VPS Linux – TUN/TAP Device Read More »
Cisco Acquires Jabber, Inc.
Questa mi suona propio nuova eppure è una notizia di qualche settimana fa, Cisco ha acquisito Jabber.
Ma che sta succedendo?
More info:
http://www.cisco.com/web/about/ac49/ac0/ac1/ac258/JabberInc.html
Cisco Acquires Jabber, Inc. Read More »
Manipolazione certificati ssl P12
Memo su come estrarre i certificati compressi in P12
Comando per estrarre la chiave:
# openssl pkcs12 -nocerts -in cert.p12 -out key.pem
Comando per estrarre il certificato:
# openssl pkcs12 -nokeys -in cert.p12 -out cert.pem
Comando per decriptare la chiave, questo serve per evitare di reinserire tutte le volte che si usa la chiave, la password rsa:
# openssl rsa -in key.pem -out decryptkey.pem
Manipolazione certificati ssl P12 Read More »
Linux – Zabbix Build 1.6.1 (MySql)
Una breve guida sull’implementazione di questo giovane netmonitor che a mio avviso a differenza di soluzioni più conosciute e consolidate come nagios, introduce una gestione molto più web oriented semplificando moldo le operazioni in ambienti che necessitano di rapida scalabilità.
L’installazione è stata effettuato con successo usando Debian Etch 4.0r5 e CentOS 5.2 inutile dire che tutte le operazio che seguiranno dovranno essere fatte da utente ‘root’
1. Prepariamo quello che ci serve per la compilazione:
tardis:~# aptitude -y install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libiksemel-dev libcurl3-dev
tardis:~# apt-get install snmp libiksemel3 libcurl3 libsnmp-base libmysqlclient15off
2. Scarichiamo i sorgenti, e procediamo con scompattazione:
tardis:~# wget http://garr.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.1.tar.gz
tardis:~# tar zxvf zabbix-1.6.1.tar.gz
tardis:~# cd zabbix-1.6.1
3. Configurazione e compilazione, in questo caso verà compilato oltre all’agente dedicato a discovery e al monitoraggio, anche il server che ha la funzione di raccogliere di dati dai vari agent, gestire gli allarmi e le operazioni di cordinameto:
tardis:~# ./configure –prefix=/usr –with-mysql –with-net-snmp –enable-server –enable-agent –enable-ipv6 –with-jabber
tardis:~# make
Ora una piccola nota, se compilaste direttamente su macchine di produzione a questo punto basterebbe fare un ‘make install’ non avendo gli strumenti dedicati, è necessario spostare il compilato sulla macchina dedicata e procedere a mano, quindi (questa fase è da eseguire sulla macchina di produzione che dovrà avere a bordo Apache2, PHP5, Mysql5 già funzionanti):
4. Creiamo utente e gruppo dedicato:
groupadd zabbix
useradd -c ‘Zabbix’ -d /home/zabbix -g zabbix -s /bin/bash zabbix
mkdir /home/zabbix
chown zabbix:zabbix /home/zabbix
5. Creiamo database e utente dedicato in mysql server:
mysql -p -u root
create database zabbix;
grant all on zabbix.* to ‘zabbix’@’localhost’ identified by ‘changeme’;
quit;
6. Popoliamo le tabelle del database:
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/schema/mysql.sql
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/data.sql
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/images_mysql.sql
7. Creaiamo una struttura di directory dedicata, questa soluzione potrebbe risultare noiasa, ma durante le operazioni di aggiornamento e manutenzione sarà molto più comodo e veloce:
server:~# mkdir /usr/share/zabbix
server:~# mkdir /usr/share/zabbix/sbin
server:~# mkdir /usr/share/zabbix/etc
server:~# mkdir /usr/share/zabbix/frontends
8. Con i seguenti passaggi creaiamo un link simbolico delle /etc di zabbix alla /etc di sistema, copiamo il frontend php nella directory dedicata, e infine copiamo gli esguibili compilati che ci servono:
server:~/zabbix-1.6.1# ln -s /usr/share/zabbix/etc/ /etc/zabbix
server:~/zabbix-1.6.1# cp -r frontends/php/* /usr/share/zabbix/frontendsserver:~/zabbix-1.6.1# cp src/zabbix_agent/zabbix_agent /usr/share/zabbix/sbin/zabbix_agent
server:~/zabbix-1.6.1# cp src/zabbix_agent/zabbix_agentd /usr/share/zabbix/sbin/zabbix_agentd
server:~/zabbix-1.6.1# cp src/zabbix_server/zabbix_server /usr/share/zabbix/sbin/zabbix_server
9. Configuriamo i file di init.d copiandoli e aggiustando i path
server:~/zabbix-1.6.1# cp misc/init.d/debian/* /etc/init.d/
Modificate entrambi gli script aggiustando i path in particolare questa riga:
da così: DAEMON=/home/zabbix/bin/${NAME}
deve diventare così: DAEMON=/usr/share/zabbix/sbin/${NAME}
10. Aggiungiamo la definizione delle porte usate da zabbix nei /etc/services
echo ”
zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp” >> /etc/services
11. Copiamo le configurazioni di default e apportiamo le modifiche di base:
server:~/zabbix-1.6.1# chown -R zabbix:zabbix /usr/share/zabbix/etc
server:~/zabbix-1.6.1# cp misc/conf/zabbix_* /usr/share/zabbix/etc
Editiamo il file: zabbix_agentd.conf e assicuriamoci che ci sia la seguente riga
Server=127.0.0.1
Editiamo zabbix_server.conf
max_execution_time = 300
date.timezone = UTC
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=changeme
12. Apache e PHP
Nel file php.ini è necessario avere i seguenti parametri definiti:
max_execution_time = 300
date.timezone = UTC
La configurazione di apache è abbastanza a discrezione dell’amministratore si può fare in due modi:
Creando un vhost dedicato:
<virtualhost>
ServerName zabbix.domain.tld
DocumentRoot /usr/share/zabbix/frontends
<directory>
Options FollowSymLinks
AllowOverride None
</directory>
</virtualhost>
Oppure creando un’alias in una vhost già definito:
<IfModule mod_alias.c>
Alias /zabbix /usr/share/zabbix/frontends
</IfModule>
13. Ora se tutto è stato fatto correttamente avviando i servizi e aprendo la pagina web si potrà procedere con la rapiada configurazione del frontends e poi all’uso ma prima i seguenti comandi:
/etc/init.d/apache2 restart
/etc/init.d/zabbix-server start
/etc/init.d/zabbix-agent start
Linux – Zabbix Build 1.6.1 (MySql) Read More »
Mac OS X – root user
Abilitare l’utente di root nelle varie versioni dell’os X
10.5
Dal tool “Directory Utility” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Edit” c’e’ la comoda voce “Enable Root User” dopodiche’ settare la password.
10.2 – 10.3 – 10.4
Dal tool “NetInfo Manager” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Security” c’e’ la voce “Enable Root User” dopodiche’ settare la password.
10.0 – 10.1
Dal tool “NetInfo Manager” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Security”, “Domain”c’e’ la voce “Enable Root User” dopodiche’ settare la password.
Mac OS X – root user Read More »