dimecres, 26 de novembre de 2014

divendres, 31 d’octubre de 2014

Virtualbox Linked Clones

Introducció:

En el següent article testejarem la funcionalitat de crear linked clones amb virtualbox. Aquesta funcionalitat va ser inttroduïda a partir de la versio 4.1. La versió de Virtualbox que utilitzarem es 4.3.10_Ubuntu r93012. Per a la configuració de les maquines virtuales utilitzarem Linux CentOS 7.0

Configuració del disc template:

La primera tasca a realitzar sera la creació d'un disc template, aquest disc sera la plantilla immutable que utilitzarem despres en els clons.

Pas 1: Crearem una màquina virtual base amb la següent configuració:
  • 768MB de RAM
  • 8Gb de Disc (Dinàmic)
Pas 2. Instalar el S.O. E.g. CentOS 7.0, devices → mount CD/DVD-ROM → elegir la imagen .iso o el DVD amb CentOS per a instal·lar-lo. S'instal·la com a qualsevol PC.

Pas 3: Busquem el disc dur i el detachem de la màquina virtual. Busquem el disc dur amb la següent comanda:
vboxmanage showvminfo "Centos Xymon" |  grep vdi

SATA (0, 0): /home/user/VirtualBox VMs/CentOS7/CentOS7.vdi 
   (UUID: 0e395175-0152-4f2c-88b1-6917f99b4388)

Mostrem les propietats del disc amb la següent ocmanda una volta sabem el seu path.
vboxmanage showhdinfo /home/user/VirtualBox\ VMs/CentOS7/CentOS7.vdi 
UUID:           0e395175-0152-4f2c-88b1-6917f99b4388
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/CentOS7/CentOS7.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   1061 MBytes
In use by VMs:  CentOS7 (UUID: ce273a51-c903-4f8f-b52c-cf714e10e0ff)
Per a la creacio de clons necessitem desassociar el disc de la maquina virtual. La següent comanda realitza aquesta tasca.
vboxmanage -q storageattach "CentOS7"  --storagectl \
          "SATA" --port 0 --device 0 --medium "none"
Pas 4: Marquem el disc com a immutable. En aquest moment configurem el disc com a immutable.
vboxmanage modifyhd /home/user/VirtualBox\ VMs/CentOS7/CentOS7.vdi \
     --type immutable 

Creació dels clons:

En aquesta secció creem una maquina amb el disc immutable associat i la configurem per a que el disc dur diferencial que tinga associat no es resetege cada volta que la apaguem.

Pas 1:Creem una nova màquina (Clone1) i li afegim el disc immutable. Cliquem en l'opcio "Use existing disk drive". Amb la següent comanda obtenim informacio del disc.
VBoxManage showvminfo Clone1 | grep .vdi
Ací podem veure el disc del clon.
...
-rw------- 1 user user 114294784 oct 30 16:34 {9163b056-58d8-4f37-8ed9-32343207d3fb}.vdi
Pas 2: Configurem el clon per a que no s'inicialitze cada volta. La següent comanda te aquesta funció.
VBoxManage modifyhd 9163b056-58d8-4f37-8ed9-32343207d3fb --autoreset off
Si revisem les característiques del disc veiem que el autoreset ara esta configurat a off.
VBoxManage showhdinfo 9163b056-58d8-4f37-8ed9-32343207d3fb 
UUID:           9163b056-58d8-4f37-8ed9-32343207d3fb
Parent UUID:    0e395175-0152-4f2c-88b1-6917f99b4388
State:          created
Type:           normal (differencing)
Auto-Reset:     off
Location:       /home/userr/VirtualBox VMs/Clone1/Snapshots/{9163b056-58d8-4f37-8ed9-32343207d3fb}.vdi
Storage format: VDI
Format variant: differencing default
Capacity:       8192 MBytes
Size on disk:   119 MBytes
In use by VMs:  Clone1 (UUID: 07270891-06a3-4e7c-b99c-8a1df46f44a6)

Altres alternatives:

Podem realitzar exactament els mateixos passos directament amb la interficie d'usuari de Virtulbox amb l'opcio clonar i la maquina apagada però no disposarem del disc inmutable i l'autoreset estara configurat a on.

Enllaços


https://sandilands.info/sgordon/creating-a-virtual-network-of-linux-guests-using-virtualbox
http://wdb.ugr.es/~jorgenavarro/docencia/practicas-de-redes-de-ordenadores-con-virtualbox/
http://www.sysprobs.com/linked-clone-virtualbox-how-to-clone-virtual-machine

dimarts, 7 d’octubre de 2014

Bash useful combination: tr + cut

Si necessitem parsejar l'output d'un programa sovint son molt útils els programes tr i curl. 

free -g | grep ^Mem: | tr -s " " % | cut -d% -f2
Amb tr es pot subustituir un número il·limitat de caracters per un sol caracter i despres podem utilitzar cut per a seleccionar la columna que necessitem. En aquest exemple obtenim la RAM total de la màquina.

dimecres, 1 d’octubre de 2014

Extending Oracle Tablespaces

Un problema corrent que sol apareixer quan es gestiona una base de dades Oracle es l'ampliació d'un tablespace. Per ampliar el tablespace el primer que hem de fer es conectar-nos al sistema i accedir a la base de dades.
[user@homedb ~]$ sudo su -
[root@homedb ~]# su - oracle
==============================================================
Choose and load a profile:
Run asm -- For GRID PROFILE --
Run db -- For DB PROFILE --
==============================================================
[oracle@homedb ~]$ db
[oracle@homedb ~]$ sqlplus '/as sysdba'
Una volta veiem quin es el tablespace que presenta problemes consultem el seu estat.
SQL> select file_name, tablespace_name, \
bytes/1024/1024 MB, autoextensible, maxbytes, \
increment_by from dba_data_files \
where tablespace_name='PERFSTAT';

FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME MB AUT MAXBYTES INCREMENT_BY
------------------------------ ---------- --- ---------- ------------
/opt/oradata/db01test/perfstat_01.dbf
PERFSTAT 1500 NO 0 0
La següent taula ens mostra que el tablespace te 1500MB i que no es autoincrementable. Una volta tenim aquesta informació consultem l'espai disponble a la partició.
SQL> !df -h /opt/oradata/db01test/perfstat_01.dbf
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup1-u02
                       94G 57G 33G 64% /opt
Com es pot veure la partició on esta el tablespace disposa d'espai lliure, llavors podem ampliar el seu espai. El pròxim que farem serà duplicar l'espai del tablespace amb la següent comanda:
SQL> alter database datafile '/opt/oradata/db0101test/perfstat_01.dbf' \
resize 3000M;

Database altered.
Si tornem a revisar el tablespace veurem com ha sigut ampliat.
SQL> select file_name, tablespace_name, \
bytes/1024/1024 MB, autoextensible, maxbytes, \
increment_by from dba_data_files \
where tablespace_name='PERFSTAT';

FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME MB AUT MAXBYTES INCREMENT_BY
------------------------------ ---------- --- ---------- ------------
/opt/oradata/db01test/perfstat_01.dbf
PERFSTAT 3000 NO 0 0
Si revisem tots els tablespaces veurem que tornem a tenir espai disponible.
SQL> select * from dba_tablespace_usage_metrics;


TABLESPACE_NAME USED_SPACE TABLESPACE_SIZE USED_PERCENT
------------------------------ ---------- --------------- ------------
...
PERFSTAT 175200 384000 45.625
...

21 rows selected.

dimarts, 30 de setembre de 2014

Detach an already launched process from a shell

A voltes ens passa que hem llançat un procés en una shell i tenim la necessitat de tancar el shell i que el procés acabe d'executar-se.

Existeix una sol·lució:
[root@home ~]$ updatedb
[1]+  Stopped                 updatedb
[root@home ~]$ bg
[1]+ updatedb &
[root@home ~]$ jobs
[1]+  Running                 updatedb &
[root@home ~]$ disown -ar
[root@home ~]$ jobs
[root@home ~]$ ps -ef |  grep updatedb
root     13931 26280  0 14:23 pts/0    00:00:00 grep updatedb
root     27442 26280  0 12:45 pts/0    00:00:30 updatedb
Aquesta sequència permet continuar executar el procés i el desvincula del shell al que pertany.

Enllaços:


http://monkeypatch.me/blog/move-a-running-process-to-a-new-screen-shell.html
http://www.cyberciti.biz/faq/unix-linux-bg-command-examples-usage-syntax/

dimarts, 9 de setembre de 2014

Xymon 4.3.17 Installation on Centos 7

Creant la infrasturctura de treball

La instal·lacio s'ha realitzat utilitzant Centos 7 sobre Virtualbox. La maquina virtual disposa de dos interficies de xarxa: una en mode NAT i l'altra en mode host-only.

Configuracio Basica de la maquina

Instal·lem la instal·lacio mínima en la distribuucio centos i a continuació realitzem els passos següents com a usuari root.
yum install wget httpd make vim man
yum -y install gcc gcc-c++ pcre-devel libpng-devel openssl-devel \
       openldap-devel rrdtool-devel
yum install c-ares-devel
wget -c http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -i rpmforge-release-*.rpm
yum -y install fping
yum update

Deshabilitant el firewall

Les noves versions de Redhat 7 and Centos 7 utilitzen systemctl per a manipular els daemons i ja no utilitzen iptables.
systemctl stop firewalld.service
systemctl disable firewalld.service

Habilitant el servici HTTPD

echo "helo" > /var/www/html/index.html
systemctl start httpd.service
systemctl enable httpd.service

Configurant el entorn

useradd xymon
passwd xymon
chmod o+rx /usr/sbin/fping
chmod go+rx /home/xymon

Instal·lant Xymon

Una volta configurat l'entorn procedim a la instal·lació de Xymon. Com a usuari Xymon executem les següents comandes.
su - xymon
wget http://iweb.dl.sourceforge.net/project/xymon/Xymon/4.3.17/xymon-4.3.17.tar.gz
tar zxvf xymon-4.3.17.tar.gz
./configure.server
Hi ha que canviar la IP en la configuració de la maquina quan configure.server ens ho demane. Una volta finalitza el script executem el make com a usuari xymon.
make
Quan finalitze la comanda ens passem a usuari root i executem la instal·lació.
make install

Configuració Interna

Com a usari root executem les següents comandes. El primer que farem sera editar el fitxer robots.txt
echo -e User-agent: *"\n"Disallow: / > /var/www/html/robots.txt
mkdir -p ~xymon/server/www
echo -e User-agent: *"\n"Disallow: / > ~xymon/server/www/robots.txt
cd ~/xymon/server/
chown xymon:xymon www
chmod 755 www
cd www
chown xymon:xymon robots.txt
chmod 644 robots.txt
Agafem la configuració del httpd que la instal·lacio ha creat i la enmagatzemem en el directori d'Apache.
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig
cat /home/xymon/server/etc/xymon-apache.conf >> /etc/httpd/conf/httpd.conf
Realitzem els següents canvis en el fitxer de httpd de Xymon.
DocumentRoot "/home/xymon/server/www"
RedirectMatch ^/robots.txt$ /xymon/robots.txt
Realitzem un test, que ens fallara per la politica de Selinux. La deshabilitarem després. No ens preocupem per el error en el DocumentRoot.
apachectl configtest
apachectl graceful
Creem un usuari per a l'administració dels scripts en Xymon.
htpasswd -c /home/xymon/server/etc/xymonpasswd YOURUSERNAME
Compien del directori xymon-4.3.17/rpm el fitxer xymon-init.d Editem el fitxer que acabem de copiar i canviem /usr/lib/xymon en la linia DAEMON per el directory on hem instal·lat xymon en aquest cas /home/xymon.
cp xymon-init.d /etc/init.d/xymon
cd /etc/init.d/
chmod 755 xymon
chkconfig --add xymon
chkconfig xymon on
Per ulitm deshabilitem SELINUX
edit /etc/sysconfig/selinux
SELINUX=disabled
Si estem utiltitzan Apache 2.4 hi ha que canviar les següents linies que ha afegit Xymon al fitxer de configuracio del HTTPD. Tenim que subustituir totes les linies
Order allow, deny
Allow from all
Per
Require all granted
O ens donarà un Forbiden. Una volta arribats ací reiniciem el servei amb
 
/etc/init.d/xymon restart
I ja tenim el xymon funcionant!

Enllaços:


http://en.wikibooks.org/wiki/System_Monitoring_with_Xymon/Administration_Guide/Compiling_on_CentOS
https://monitor.phys.ethz.ch/xymon/help/install.html#commonrhel6
http://www.linuxbrigade.com/centos-7-rhel-7-systemd-commands/
http://www.tejasbarot.com/2014/08/02/rhel-7-centos-7-disable-firewalld-and-use-iptables/#axzz3CMGBMS5S

divendres, 20 de juny de 2014

Babun una distribució Cygwin molt útil

Babun es un distribució de Cygwin amb un entorn ja preconfigurat per a que puga ser utilitzat desde el primer moment.

El projecte esta disponble a la següent web:
http://babun.github.io/

El següent video mostra l'entorn i els principals programes que estan preconfigurats en la distribució:

dijous, 19 de juny de 2014

Some Solaris commands for surviving

La següent guia preten donar 4 nocions bàsiques per a ser capaç de realitzar tasques bàsiques del dia a dia en un sistema Solaris.
# uname -a
SunOS mybox 5.10 Generic_147441-19 i86pc i386 i86pc
Revisar el espai swap actualment utilitzat.
# swap -s
total: 4110592k bytes allocated + 578156k reserved = 4688748k used, 
       630444k available
Revisar el espai swap configurat.
# swap -l
swapfile             dev  swaplo blocks   free
/dev/dsk/c0t0d0s1   33,65      8 4194288 2029080
Per a obtenir informacio dels processos disposem de la utilitat prstat. Aquesta utilitat examina tots els processos actius del sistema i obte estadisitiques depenent de les opcions que li afegim. La comanda per extraure informació sobre els processos que estan actualment corrent a la maquina en Solaris es la següent:
prstat 
La opcio -Z mostra la informacio dels processos separada per zones.
prstat -Z
prstat | grep java
Per revisar la informacio relativa a les particions es exactament igual que en Linux.
df -h 
# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0t0d0s0      3.8G   3.4G   433M    89%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   604M   852K   603M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/dev/dsk/c0t0d0s4      5.8G   4.4G   1.3G    78%    /usr
/usr/lib/libc/libc_hwcap1.so.1
                       5.8G   4.4G   1.3G    78%    /lib/libc.so.1
fd                       0K     0K     0K     0%    /dev/fd
/dev/dsk/c0t0d0s3      1.9G   936M   946M    50%    /var
swap                   512M    84K   512M     1%    /tmp
swap                   603M    36K   603M     1%    /var/run
Per a interacturar amb els serveis en Solaris utilitzem les següents comandes: Aixi arranquem un servei.
svcadm enable tomcat
Amb la següent comanda parem un servei.
svcadm disable tomcat
La següent comanda llista tots els serveis actualment instal·lats, així com el seu estat.
svcs -a 
svcs -a | grep online
Per a poder utilitzar funcionalitats com les ultimes comandes executades i altres funcions avançades podem llançar bash com el nostre shell.
bash 
La comanda history ens permetra obtenir les comandes executades.
history
La comanda zlogin permet conectar-se a les diferents zones configurades en la maquina.
zlogin zone1 to access the solaris zone.
# zlogin zone1
[Connected to zone 'zone1' pts/6]
Last login: Fri Feb  7 11:17:25 on pts/8
Zone 1 de mybox : MyBox.

services:

apache : /etc/init.d/httpd stop|start|restart ....
mysql  : /etc/init.d/mysql stop|start

root@mybox-zone1#

dilluns, 24 de març de 2014

MySQL reaching maxconnections limit

L'altre dia admininistrant una base de dades mysql ens vam trobar el següent problema, al mirar els procesos que estavem corrent en la base de dades:
mysql>show processlist;
Mostrava la següent eixida per pantalla:
+---------+------------------+--------------------+------+---------+------+-------+------+
| ID      | USER             | HOST               | DB   | COMMAND | TIME | STATE | INFO |
+---------+------------------+--------------------+------+---------+------+-------+------+
| 2040032 | unauthenticated  | 1.2.3.3:41012      | NULL | Connect |    0 | login | NULL |
| 2040008 | unauthenticated  | 1.2.3.7:49150      | NULL | Connect |    0 | login | NULL |
| 2039980 | unauthenticated  | 1.2.3.3:40710      | NULL | Connect |    0 | login | NULL |
| 2039976 | unauthenticated  | 1.2.3.4:60759      | NULL | Connect |    0 | login | NULL |
| 2039975 | unauthenticated  | 1.2.3.4:60600      | NULL | Connect |    0 | login | NULL |
| 2039974 | unauthenticated  | 1.2.3.4:60589      | NULL | Connect |    0 | login | NULL |
| 2039973 | unauthenticated  | 1.2.3.7:49134      | NULL | Connect |    0 | login | NULL |
| 2039972 | unauthenticated  | 1.2.3.7:49121      | NULL | Connect |    0 | login | NULL |
| 2039971 | unauthenticated  | 1.2.3.3:40057      | NULL | Connect |    0 | login | NULL |
| 2039970 | unauthenticated  | 1.2.3.7:49108      | NULL | Connect |    0 | login | NULL |
| 2039968 | unauthenticated  | 1.2.3.7:49091      | NULL | Connect |    0 | login | NULL |
| 2039967 | unauthenticated  | 1.2.3.7:49087      | NULL | Connect |    0 | login | NULL |

Per a solucionar aquest problema podem utilitzar dos aproximacions diferents, o configurar el /etc/hosts per a que la màquina realitze les traduccions DNS o configurar el mysql amb la opció: skip-name-resolve.

Si configurem el fitxer /etc/mysql/my.cnf
[mysqld]
...
skip-name-resolve
...

Una volta hem configurat aquesta opcio i reiniciat el servei el problema ha desaparegut i ja no tenim el problema massa conexiions establides.

ENLLAÇOS:


http://www.debianhelp.co.uk/mysqlperformance.htm
http://www.danterobles.com.mx/?p=66

divendres, 17 de gener de 2014

Change Passwords for MySQL Users

Cambiar el password d'un usuari ja creat de MySQL es molt fàcil només hem d'utilitzar les segûents comandes:
root@db [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
root@db [mysql]> \P less
PAGER set to 'less'
root@db [mysql]> select * from user where user='user'\G;
1 row in set (0.01 sec)

ERROR:
No query specified

root@db [mysql]> SET PASSWORD FOR 'user'@'localhost' = PASSWORD('Pass');
Query OK, 0 rows affected (0.04 sec)

root@db [mysql]> SET PASSWORD FOR 'user'@'%' = PASSWORD('Pass');
Query OK, 0 rows affected (0.04 sec)


root@db [mysql]> select * from user where user='user'\G;
1 row in set (0.00 sec)
Una volta el select ens mostra tots els usuaris busquem l'usuari que vulguem cambiar i llancem la comanda SET.

El '%' indica que es pot accedir desde qualsevol IP.