Category: Información general

Información general

Top 5 – Red de código abierto y Monitoreo del Desempeño + sistema de alerta

Top 5 – Red de código abierto y Monitoreo del Desempeño + sistema de alerta

Introducción – La supervisión de su red y aplicaciones de diferentes es la parte más importante de su negocios. Así que la elección de las herramientas de supervisión es fundamental y más importante tarea, ya que responderá plenamente en esta herramienta para notificar cada vez que algo sale mal!

1) Nagios – es un popular equipo de código abierto del monitor del sistema, monitoreo de red y de infraestructura de aplicaciones de software de monitoreo. Nagios ofrece una monitorización completa y alerta para servidores, switches, aplicaciones y servicios, y se considera como la industria de facto
estándar. Nagios apoya dos tipos de control-Activa y Pasiva. En el caso de los activos de supervisión Nagios chequea en los horarios o los servicios mencionados, mientras que en el caso de los controles pasivos, aplicación externa se puede utilizar para presentar los resultados de servicios de verificación.
– Para los controles pasivos NSCA (Nagios Servicio Aceptador Check) demonio debe ejecutarse en el servidor de Nagios a aceptar cheques pasivos través de la red, que presentarán de verificación pasiva de Nagios via UNIX socket.
– Para que el control Acitive NRPE (Ejecutor Nagios Plugin de distancia) el demonio se tiene que ejecutar en la máquina remota para monitorear los servicios. Sin embargo, usted puede usar SSH también.

Para controlar máquinas remotas y la comunidad los servicios que usted proporciona nagios plugins como se muestra a continuación …
* NRPE – demonio de NRPE se ejecutarán en servidores remotos y servicios de cheques de Nagios en hosts remotos a través de plug-in check_nrpe (comando) de los ejércitos nagios.
* Check_MK – El mejor plugin de nagios para monitorear host remoto. La belleza de este plugin es que la mayoría de los servicios comunes se comprueban en una conexión con servidores remotos y los resultados se presentan como resultados de pasivos a Nagios. Esto mejora el rendimiento, menos tráfico de red y, por supuesto, sin carga o carga en el host remoto (el cual estamos monitoreando). Para Check_MK, tenemos que decir agente instalado check_mk check_mk_agent simple script de shell y se unen a esta secuencia de comandos usando el puerto TCP 6556 demonio xinetd. Check_MK también proporciona funciones siguientes.
– Apoyo Check_MK dinámica de configuración de nagios generación, el inventario de los cheques.
– Livestatus – un plugin hermosa para comunicarse con nagios (socket de Unix)
– Nagios para varios sitios interfaz gráfica de usuario – Nagios varios monitores desde una sola interfaz basada en web
– Soporta SNMP y detecciones automáticas de servicio para muchos conmutadores de Cisco, routers y servidores de archivos NetApp así.
Nagios para varios sitios interfaz gráfica de usuario – Otra belleza de Check_MK nagios nagios plugin se montoring múltiples utilizando una única interfaz basada en web. Esta interfaz basado en web usese Check_MK plugin de Livestatus para obtener los datos de Nagios.
Check_MK – http://mathias-kettner.de/
URL – http://www.nagios.org/~~V
Autor – Ethan Galstad

2) Ganglios – es una herramienta de distribución escalable monitor de sistema para los sistemas de computación de alto rendimiento, tales como clusters y grids. Permite al usuario ver de forma remota estadísticas en tiempo real o histórico (como los promedios de carga de la CPU o la utilización de la red) para todas las máquinas que están siendo monitorizados. Ganglios es muy útil para averiguar la utilización de la aplicación o el equipo de recursos sabio, incluso en entornos de clúster. Tenemos que instalar gmond (demonio de los ganglios de la pantalla) en cada máquina (en el grupo o cluster), que recoge todas las estadísticas.
gmetad (demonio de los ganglios de metadatos) que instalado en un mecanizado en el grupo o cluster que recogerá los datos de los servidores especificados gmond.
URL – http://ganglia.info/~~V

3) Los cactus – es un código abierto, basado en la web herramienta gráfica (frontend para RRDtool). Cactus permite a un usuario a los servicios de encuestas a intervalos predeterminados y el gráfico de los datos resultantes. En general, se utiliza para graficar datos de series temporales de indicadores tales como carga de la CPU y la utilización de ancho de banda de red. Cactus es mejor para controlar los dispositivos de hardware tales como switches, routers a través de SNMP.
URL – http://www.cacti.net/

4) Zabbix – Está diseñado para monitorear y rastrear el estado de varios servicios de red, servidores y otro hardware de red. Se utiliza MySQL, PostgreSQL, SQLite, Oracle o IBM DB2 para almacenar datos. Su servidor está escrito en C y la interfaz web está escrito en PHP.
Zabbix ofrece varias opciones de monitoreo. Un agente de Zabbix también se puede instalar en los sistemas UNIX y Windows para monitorear las estadísticas, tales como carga de la CPU, utilización de la red, espacio en disco, etc
Como alternativa a la instalación de un agente en los ejércitos, Zabbix incluye soporte para el monitoreo a través de SNMP, ICMP TCP y los cheques, así como más de IPMI, SSH, Telnet y el uso de parámetros personalizados.
Zabbix soporta una variedad de mecanismos de notificación en tiempo real. La belleza de las notificaciones es Zabbix XMPP!
URL – http://www.zabbix.com/
Autor – Alexei Vladishev

5) Zenoss – Zenoss (Zenoss Core) es una aplicación de código abierto, el servidor y la plataforma de gestión de red basada en el servidor de aplicaciones Zope.
URL – http://www.zenoss.com/

NOTA – Esta lista se basa en la experiencia personal y la elección de muchos miembros de la comunidad IndianGNU.

Gracias,
Arun Bagul

¿Cómo usar la memoria RAM (física) que el disco

¿Cómo usar la memoria RAM (física) que el disco

Introducción –
En algún momento de obtener el rendimiento, la memoria RAM física puede ser utilizado como espacio de disco que es muy rápido en comparación con el disco duro normal.
Entonces, ¿cómo puedo usar la memoria RAM es el disco? pasar por estos pasos.

Paso 1) Crear un directorio, como se muestra a continuación en la que desea montar la memoria RAM como disco

root @ arunbagul: ~ # mkdir-p / tmp / RAM
root @ arunbagul: ~ # ls / tmp / RAM
root @ arunbagul: ~ #

Paso 2) kit de montaje RAM es decir, tmpfs en el punto de montaje “/ tmp / ram” directorio

root @ arunbagul: ~ # mount-t tmpfs-o size = 10M tmpfs / tmp / RAM /

* Ver montado en no?

root @ arunbagul: ~ # df-h
Tamaño del sistema de archivos% Usado Disp Uso Montado en
tmpfs 10M 0 10M 0% / tmp / RAM

** Para montar esta entrada permanente de agregar en / etc / fstab como se muestra a continuación.

root @ arunbagul: ~ # cat / etc / fstab

….

tmpfs / tmp / RAM tmpfs defaults, size = 10 m 0 0

root @ arunbagul: ~ #

– Para el montaje de este comando mount uso (esto se montará todos los puntos de montaje mencionados en fstab)

root @ arunbagul: ~ # mount-a

Gracias,
Arun Bagul

IndianGNU.org – Cuarto Aniversario!

IndianGNU.org – Cuarto Aniversario!

Queridos todos,

Hoy, que celebramos el cuarto aniversario! Hemos completado con éxito cuatro años y sigue creciendo a toda velocidad! Era simplemente imposible sin su apoyo, contribución y trabajo duro.

openlsm Proyecto ~

Este año fue difícil para openlsm y estaremos lanzando panel de administración versión de desarrollo a finales de diciembre de 2010. Estamos a la espera mucho más de segundo hito …

Saludos,
IndianGNU.org

Perl CGI – período de sesiones y cookies howto

Perl CGI – período de sesiones y cookies howto

Introducción –

Casi un año atrás, me esforcé mucho para la aplicación de sesión y cookies en Perl aplicación CGI. Así que cree que compartir mi trabajo con todos ustedes.
Yo quería hacerlo a mi manera …

Asunción, el servidor web Apache es decir, está habilitado para ejecutar scripts CGI

Step 1] Write Auth.pm Perl module –

Please simply copy following Auth.pm perl module for authentication using Session and Cookies…

[root@arun ~]# cat /var/application/module/Auth.pm

package Auth;

### Subroutine to authenticate user
sub  User
{
my ($ref_page) = (@_);
### Session information
my $sid = $ref_page->cookie(“APP_SID”) || undef;
my $session = CGI::Session->load(undef,$sid);
if ( $session->is_expired ) { print $ref_page->redirect(-location => ‘../arun.html’);}
elsif ( $session->is_empty) { print $ref_page->redirect(-location => ‘../arun.html’);}
else { print $ref_page->header();}
# don’t forget to create dir ‘/var/tmp’
# with proper ownership/permission
#$session = new CGI::Session(undef, $sid, {Directory=>’/var/tmp’});
#################################################
return($session->param(‘login_user’));
}

1;
[root@arun ~]#

Step 2] authe_me.pl –

authe_me.pl file is used to set cookies and verify username/password. You may use MySQL DB to store username and password.
In this case you have to this file…

[root@arun ~]# cat /var/application/www/cgi-bin/auth_me.pl
#!/usr/bin/perl

sub BEGIN
{
unshift (@INC, ‘/var/application/module/’);
}

use strict;
use warnings;
use CGI qw(:standard);
use CGI::Session;
use Auth; ## our module

### Header
########################
my $page = CGI->new();
##print $page->header();

##########
if ( $ENV{REQUEST_METHOD} eq “POST” )
{
my %form;
my $session_dir=”/var/tmp”;
my ($admin_user,$admin_password) = (“admin”,”arun123″);

foreach my $key (param()) { $form{$key} = param($key);}
##
if (($form{username}) && ($form{password}))
{

### Session Details ###
CGI::Session->name(“APP_SID”);
## Create new session
my $session = new CGI::Session(undef, undef, {Directory=>$session_dir});
## Set cookies
my $cookie = $page->cookie(-name=>$session->name(),-value=>$session->id(),-expires=>’+2h’,-path=>’/’);
## Store data in session variable and save it
$session->param(‘login_user’,$form{username}); # OR
##$session->param(-name=>’login_user’,-value=>$form{username});
$session->save_param($page, [“login_user”]);

## Session and Cookie expiration time is SAME.
$session->expire(“+2h”);
#### Session Details end ####

## if login successful redirect to main.pl else login page
if (($form{username} eq $admin_user) and ($form{password} eq $admin_password))
{ print $page->redirect(-location => ‘main.pl’,-cookie=>$cookie);}
else { print $page->redirect(-location => ‘../arun.html’); }
############################
} else { print $page->redirect(-location => ‘../arun.html’); }
}

[root@arun ~]#

Step 3] Create Login Page –

[root@arun ~]# cat /var/application/www/arun.html
<html>
<title>Arun Login Page</title>

<!– Form start –>
<table align=’center’ border=’1′>
<form method=”POST” action=”cgi-bin/auth_me.pl”>
<tr>
<td><label>Login</label></td>
<td><input name=”username” type=”text”></td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input name=”password” type=”password”><br/></td>
</tr>
<tr>
<td><input value=”Submit” type=”submit”></td>
</tr>

</form>
</table>

</html>

[root@arun ~]#

Step 4] Create main page where Session and Cookie authentication verified – main.pl

[root@arun ~]# cat /var/application/www/cgi-bin/main.pl
#!/usr/bin/perl

sub BEGIN
{
unshift (@INC, ‘/var/application/module/’);
}

use strict;
use warnings;
use CGI qw(:standard);
use CGI::Session;
use Auth;

### Header
my $page = CGI->new();
## check authentication
my $login_name=Auth::User($page);
###
print $page->start_html( -title=>’Arun Main Page’);

print “<h3>This is Main Page</h3></br>”;
print “<br>Login Name – $login_name”;

#end
[root@arun ~]#

Step 5] Please access login page and try http://your_ipaddr/arun.html

Thank you,
Arun Bagul

Cómo probar el rendimiento de red y ancho de banda

Cómo probar el rendimiento de red y ancho de banda

Introducción –

La latencia de red y ancho de banda son los dos indicadores más probable que sea de interés al punto de referencia de una red. Aunque la mayoría de servicios y publicidad de los productos se centra en el ancho de banda, a veces, la latencia puede ser un indicador más importante.

** ¿Qué es el ancho de banda?

Ancho de banda (BW) en redes de computadoras se refiere a la velocidad de datos con el apoyo de una conexión de red o interfaz. BW se mide en términos de bits por segundo (bps).

** ¿Qué es la latencia de la red?

La latencia es una medida de tiempo de retraso experimentado en un sistema. La latencia de red se define simplemente como el tiempo de retardo observado como transmite los datos de un punto a otro. Hay una serie de factores que contribuyen a la latencia de la red. Estos incluyen la transmisión (medio de la conectividad), Distancia, routers y los retrasos de hardware.

Lista de proyectos utilizados para probar el rendimiento de red y ancho de banda –

1) bmon – monitor de ancho de banda y estimador de la tasa, es la consola basada en directo BW
2) bwbar – uso de ancho de banda en formato de texto y gráficos
3) BMW-ng – Bandwidth Monitor NG (Next Generation, en vivo PC, la consola basada en
4) Dstat – Dstat es un reemplazo para vmstat, iostat y ifstat.
5) iftop – el uso de ancho de banda en una interfaz, basada en la consola
6) iperf – Realizar las pruebas de rendimiento de redes apostar dos de acogida
7) ifstat – Informe interfaz de estadísticas
8) metros cúbicos – Color medidor de ancho de banda, basado en consola
9) etherape – Red Gráfica navegador tráfico
10) iptraf – interactivo colorido IP LAN Monitor, la consola y la interfaz gráfica basada en
11) netmrg – Es el demonio, apoyar mySQL, reúne datos de los dispositivos.
12) nuttcp – herramienta de red de medición del desempeño
13) nepim

NOTA ~ Para algunos de ellos los paquetes rpm o deb no están disponibles!

Paso 1] Cómo instalar en RedHat / RHCE, el sistema de CentOS base y el sistema basado en Dibian?

root@me:~# yum install netperf iperf nuttcp nepim lmbench

** Ubuntu –

root@me:~# apt-get install  bmon bwbar bwm-ng dstat cbm etherape iftop iperf ifstat iptraf netmrg

Paso 2] Modo de uso – bmon, BWM-ng, Dstat, ifstat –

root@me:~# bmon

interface: lo at me.arun.world

#   Interface                RX Rate         RX #     TX Rate         TX #
───────────────────────────────────────────────────────────────────────────────
me.arun.host (source: local)
0   lo                         0.00B            0       0.00B            0
1   eth0                       0.00B            0       0.00B            0
2   eth2                       0.00B            0       0.00B            0
3   vboxnet0                   0.00B            0       0.00B            0
4   pan0                       0.00B            0       0.00B            0
5   ppp0                      69.39KiB         61       7.49KiB         44

root@me:~# bwm-ng

bwm-ng v0.6 (probing every 0.500s), press ‘h’ for help
input: /proc/net/dev type: rate
\         iface                   Rx                   Tx                Total
==============================================================================
lo:           0.00 KB/s            0.00 KB/s            0.00 KB/s
eth0:           0.00 KB/s            0.00 KB/s            0.00 KB/s
eth2:           0.00 KB/s            0.00 KB/s            0.00 KB/s
ppp0:          64.39 KB/s            7.92 KB/s           72.31 KB/s
——————————————————————————
total:          64.39 KB/s            7.92 KB/s           72.31 KB/s

root@me:~# dstat
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
7   4  85   4   0   0| 281k  110k|   0     0 |   0     0 | 865  3013
8   4  88   0   0   0|   0     0 |7027B 1261B|   0     0 | 956  4505
8   5  86   0   0   0|   0     0 |  14k 1867B|   0     0 |1144  3332
9   5  86   0   1   0|   0     0 |  79k 2496B|   0     0 |1360  3366
18   8  74   0   0   0|   0     0 |  52k 6511B|   0     0 |1299  3618
8   6  85   0   1   0|   0     0 |  35k 5339B|   0     0 |1094  4231
6   4  90   0   0   0|   0     0 |   0  3164B|   0     0 | 953  2750 ^C
root@me:~#

root@me:~# ifstat
eth0                eth2                ppp0
KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
0.00      0.00      0.00      0.00     95.73      4.31
0.00      0.00      0.00      0.00     67.93      8.17
0.00      0.00      0.00      0.00    106.77     13.70

** Inicio “iperf” servidor en un host (A) y el cliente en otro host (B) – para medir el rendimiento de red entre dos hosts.

* Host -A

root@me:~# iperf -s
————————————————————
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
————————————————————
[  4] local 192.168.0.1 port 5001 connected with 192.168.0.2 port 56171
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  9.11 GBytes  7.82 Gbits/sec

* Host -B
test@hostB:~$ iperf -c 192.168.0.1
————————————————————
Client connecting to 192.168.0.1, TCP port 5001
TCP window size: 49.5 KByte (default)
————————————————————
[  3] local 192.168.0.2 port 56171 connected with 192.168.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  9.11 GBytes  7.82 Gbits/sec
test@hostB:~$

root@me:~# iftop
root@me:~# cbm

Thank you,
Arun Bagul

Top 7 de ERP y CRM de software de código abierto

Top 7 de ERP y CRM de software de código abierto

Introducción –

¿Qué es la Planificación de Recursos Empresariales (ERP)?

ERP es un sistema de software integrado para gestionar los recursos, activos, recursos financieros, materiales y recursos humanos.
Su objetivo es facilitar el flujo de información entre todas las funciones empresariales de la organización.

¿Qué es la gestión de relaciones con clientes (CRM)?

CRM es un amplio reconocimiento como las interacciones empresa con los clientes, los clientes y las perspectivas de ventas. Esto implica el uso de
tecnología para organizar, automatizar y sincronizar los negocios (ventas), mercadotecnia, servicio al cliente y soporte técnico.

1) Openbravo

Openbravo ERP es una solución ERP de negocios basado en la web para las pequeñas y medianas empresas que se publica bajo
Openbravo, la Licencia Pública, sobre la base de la Licencia Pública de Mozilla.
URL – http://www.openbravo.com/

2) OpenERP

OpenERP es una suite de código abierto completo de aplicaciones de negocio, incluyendo ventas, CRM, gestión de proyectos,
Gestión de almacenes, Producción, Contabilidad, Recursos Humanos.
URL – http://www.openerp.com/

3) Fedena

Fedena es una escuela de código abierto de software de gestión desarrollado en Ruby on Rails. fedena contiene módulos relacionados con la admisión, los estudiantes Detalles, Administración de usuarios, gestión de noticias, el examen, Horario y Asistencia.
URL – http://www.projectfedena.org/

4) JFire

JFireis una planificación de recursos empresariales y del cliente del sistema de gestión de relaciones. JFire es cliente-servidor basado en el sistema con el cliente de escritorio disponible para Windows y Linux.
URL – http://www.jfire.net/

5) Apache OFBiz –

OFBiz es el sistema ERP. Ofrece aplicaciones empresariales que integran y automatizan muchos de los procesos de negocio.
URL – http://ofbiz.apache.org/

6) SugarCRM

SugarCRM es líder en software de código abierto PCR. SugarCRM es mi opción personal!

URL – http://www.sugarcrm.com

7) vtigerCRM

VtigerCRM es muy fácil y el mejor ERP y CRM de software basado en web. He utilizado este software personal. Tiene muchos Addons. URL – http://www.vtiger.com/

Por favor, consulte la lista de software ERP en wiki – http://en.wikipedia.org/wiki/List_of_ERP_software_packages

Gracias,
Arun Bagul

Bash Scripting ~ aprendizaje por medio de ejemplos

Bash Scripting ~ aprendizaje por medio de ejemplos

Introduction ~

—————————————–
Program (1) ~ array.sh
—————————————–

#!/bin/bash
echo “==============”
declare -a myarr[0]=”Arun”
declare -a myarr1
myarr1=(arun bagul bangalore mumbai raju santhosh)
myarr[1]=”Bagul”

echo “my name is ${myarr[0]} ${myarr[1]}”
echo “————————–”
echo “${myarr1[*]}”
echo ${myarr1[2]}
echo ${myarr1[@]}
echo “————————–”
echo “Total no of elements in array – ${#myarr1[*]}”
echo “Total no of elements in array – ${#myarr1[@]}”
echo “Size of word ‘${myarr1[2]}’ is – ${#myarr1[2]}”
echo ${#myarr1[1]}
echo ${#myarr1[0]}

echo “————————–”

#how to delete element in array
unset myarr[1]
echo “myarr is – ${myarr[*]}”

#how to assign element in array
myarr[1]=”- System Engineer!”
echo “myarr is – ${myarr[*]}”

echo ${myarr}

————————————————————————
Program (2) ~ command_line_arguments.sh
————————————————————————

#!/bin/bash

echo “Script/command name => $0”
echo “arg1 => $1”
echo “arg2 => $2”
echo “arg3 => $3”
echo “Total No of argument = $#”

echo “Script PID is => $$”
echo “Status of previous command – $?”

name=$myname
echo “Name – $name”

read n

————————————————-
Program (3) ~ default_value.sh
————————————————-

#!/bin/bash

#start=’123′
#start=${1:-$start}

start=${1:-‘123’}

echo “Value of ‘start’ variable is ==> $start”

—————————————————
Program (4) ~ echo_example.sh
—————————————————

#!/bin/bash

name=”Arun”

echo -e “My Name is $name_arun and \n”
echo -e “My Name is ${name}_arun and \n”

echo -e ‘My Name is $name and \n’

—————————————–
Program (5) ~ elif.sh
—————————————–

#! /bin/bash

if [ $1 -eq $2 ];then
echo “good”
elif [ $2 -eq $3 ];then
echo “Fine”
elif [ $1 -eq $3 ];then
echo “OK”
else
echo “NO”
fi

————————————————————
Program (6) ~ for_loop_example-1.sh
————————————————————

#!/bin/bash

i=1
while [ $i -le 512 ]
do
temp=$i
echo “What is => $i | $temp”
i=$(expr $i + 32)
for (( j=$temp; $j<=$i; j++ ))
do
echo -n ” $j”
done
done

———————————————————–
Program (7) ~ for_loop_example-2.sh
———————————————————–

#!/bin/bash
#for val in $(ls -1 /tmp)
sum=0
#for val in {1..5}
#for val in {$1..$2}
for((val=$1;$val<=$2;val++))
do
#echo “$val”
sum=$(expr $sum + $val )
#sum=`expr $sum + $val`
done

echo “$0 # Sum of $1 to $2 => $sum”

————————————————————
Program (8) ~ for_loop_example-3.sh
————————————————————

#!/bin/bash

for i in {1..9}
do
echo $i
done

—————————————–
Program (9) ~ function.sh
—————————————–

#!/bin/bash

function my_function()
{
name=”Arun Bagul”
echo “‘my_function’ body ~ $name”
return 1;
}
##########

myfunc()
{
echo “Another way of defining the function”
}

##########################

echo “Starting function program”
echo “——————————”

#calling function here
my_function
##
myfunc

echo -e “\n end of program”

—————————————————————————————
Program (10) ~ how_to_pass_argument_to_function.sh
—————————————————————————————

#!/bin/bash

function my_function()
{
echo “Total number of argument ~ $#”
echo “Arg1 => $1”
echo “Arg2 => $2”
echo “Arg3 => $3”
return 0;
}
##########

echo “Starting function program”
echo “——————————”

#calling function here
my_function arun bagul 1234

————————————————————————-
Program (11) ~ how_to_take_hidden_input.sh
————————————————————————-

#!/bin/bash

echo -n “Enter User Name :”
read username
echo -n “Enter Password :”
read -s mypwd

echo -e “\nI am $username and my password is – $mypwd”

——————————————————————————
Program (12) ~ how_to_take_input_from_user.sh
—————————————————————————–

#!/bin/bash

echo -ne “Enter the Name:- ”
read name
echo -n -e “Enter the Number:- ”
read num

echo “——————————”

add=$(expr $num + 10)

echo “Name is ~ $name”
echo “Number is ~ $add”

—————————————–
Program (13) ~ ifthen.sh
—————————————–

#!/bin/bash

if [ “arun” == “arun” ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ 2 == 2 ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ “arun” = “arun” ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ 2 -eq 2 ];then
echo “true!”
else
echo “false”
fi

——————————————————
Program (14) ~ non-interactive.sh
——————————————————

#!/usr/bin/expect -f
spawn ssh arun@192.168.0.1
expect “password:”
sleep 1
send “pwd\r”
interact

—————————————————————-
Program (15) ~ read_file_line_by_line.sh
—————————————————————-

#!/bin/bash

file_name=”/etc/hosts”

while read myvar
do
echo “Line => $myvar”
done < $file_name

echo “#################################################”

for myvar1 in $(cat $file_name)
do
echo “Line => $myvar1”
done

——————————————————
Program (16) ~ reverse-number.sh
——————————————————

#!/bin/bash

declare -a date_array
num=$1
i=$(expr $(echo $num | wc -c) – 1 )

while [ $num -gt 10 ]
do
temp=$( expr $num % 10 )
num=$( expr $num / 10);
echo “Digit($i) => $temp”
date_array[$i]=”${temp}”
i=$(expr $i – 1)
done
echo “Digit($i) => $num”
date_array[$i]=”${num}”

echo ${date_array[*]}

——————————————————–
Program (17) ~ string-operation.sh
——————————————————–

#! /bin/bash

echo “Arun Bagul:-”
string=”/root/arun/bagul/image.gif”
echo “string=> $string”
echo “String=> ${string##/*/}”
echo “String=> ${string#/*/}”

echo “String=> ${string%.*}”
echo “String=> ${string%%.*}”
#str=”/home/y/conf/arunbagul/daily_market_0.conf”
str=”${str##/*conf/}”
echo “String=> ${str%/*}”

#done

mystr=”keyword_summary_exact_arunsb”
echo $mystr
echo ${mystr%_*}

echo “$*”

—————————————–
Program (18) ~ switch.sh
—————————————–

#!/bin/bash

echo ” Switch program | arg1 => $1″
echo ” ——————————-”
case $1 in

123)
echo “Case is 123”
;;

arun)
echo “Case is ‘arun'”
;;

pri*)

echo “Case is ‘pri*'”
;;

*)
echo ” * Usage: $0 ”
echo ” Default case (nothing is matched)”
exit 0;
;;
esac

—————————————————————–
Program (19) ~ while_loop_example-1.sh
——————————————————————

#!/bin/bash

mywait=wait

while [ “${mywait}” = “wait” ]
do
echo “arun”
done

——————————————————————-
Program (20) ~ while_loop_example-2.sh
——————————————————————–

#! /bin/bash

## on command line -> i=0 && while [ $i -le 10 ] ; do echo $i; i=$(expr $i + 1); done

i=0
while [ $i -le 10 ]
do
echo $i
i=$(expr $i + 1)
done

——————————————————————–

* Please download PDF file http://www.slideshare.net/arunbagul/bash-learning-by-examples/

Regards,
Arun

Cómo configurar la replicación de varios maestros de MySQL

Cómo configurar la replicación de varios maestros de MySQL

Introducción ~

Pensaba escribir el artículo sobre la replicación Multi Master MySQL desde hace mucho tiempo, y finalmente empezar ahora mismo!. Por favor, consulte el artículo sobre “Cómo configurar la replicación de MySQL con un Maestro” URL ~ http://www.indiangnu.org/2007/mysql-replication-one-master-multiple-slave/

* Quisiera informar a todos ustedes que varios maestros de replicación en MySQL se basa puramente en las siguientes dos variables. No tiene nada que ver con la tecnología de replicación utilizan en la replicación de MySQL ….

mysql> show variables like ‘%increment_%’;
+——————————-+——-+
| Variable_name                 | Value |
+——————————-+——-+
| auto_increment_increment      | 1     |
| auto_increment_offset         | 1     |
+——————————-+——-+
2 rows in set (0.00 sec)

mysql>

** Requirements ~

a) Master Hosts (2 master in my case) ~
master-1 => 10.66.66.194
master-2 => 10.66.90.135
b) Replication Slave (1 slave) ~
Slave => 10.66.75.137

c) MySQL server (with replication support)

** Let us understand how it works ?

* Master-1 Server =>

Set following variables…

mysql> set auto_increment_increment=5;
mysql> set auto_increment_offset=1;

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 2     |
| auto_increment_offset    | 1     |
+————————–+——-+
2 rows in set (0.00 sec)

mysql>

** Create Table ~

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

** Add Record now ~

mysql> INSERT INTO class VALUES (”,’Arun Bagul’);
mysql> INSERT INTO class VALUES (”,’Ravi Bhure’);
mysql> INSERT INTO class VALUES (”,’Karthik Appigita’);
mysql> INSERT INTO class VALUES (”,’Ameya Pandit’);

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      3 | Ravi Bhure       |
|      5 | Karthik Appigita |
|      7 | Ameya Pandit     |
+——–+——————+
4 rows in set (0.00 sec)

mysql>

* Master-2 Server =>

Set following variables…

mysql> set auto_increment_increment=2;
mysql> set auto_increment_offset=2;

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 2     |
| auto_increment_offset    | 2     |
+————————–+——-+
2 rows in set (0.00 sec)

mysql>

** Create Table ~

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

** Add Record now ~

mysql> INSERT INTO class VALUES (”,’Nilkanth Parab’);
mysql> INSERT INTO class VALUES (”,’Nishit Shah’);
mysql> INSERT INTO class VALUES (”,’Ram Krishna’);
mysql> INSERT INTO class VALUES (”,’Suhail Thakur’);

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      2 | Nilkanth Parab   |
|      4 | Nishit Shah      |
|      6 | Ram Krishna      |
|      8 | Suhail Thakur    |
+——–+——————+
4 rows in set (0.00 sec)

mysql>

** What is the importance of “auto_increment_increment” and “auto_increment_offset” ~

mysql> desc class;
+——–+————-+——+—–+———+—————-+
| Field  | Type        | Null | Key | Default | Extra          |
+——–+————-+——+—–+———+—————-+
| rollno | int(5)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | YES  |     | NULL    |                |
+——–+————-+——+—–+———+—————-+

auto_increment_offset    => This is BASE value for column with “auto_increment” attribute (please refer the above example)
auto_increment_increment => This is the increment value for column with “auto_increment” attribute

** If you combine the both tables (master-1 and master-2) the final table will look like this ~

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      2 | Nilkanth Parab   |
|      3 | Ravi Bhure       |
|      4 | Nishit Shah      |
|      5 | Karthik Appigita |
|      6 | Ram Krishna      |
|      7 | Ameya Pandit     |
|      8 | Suhail Thakur    |
+——–+——————+
8 rows in set (0.00 sec)

mysql>

** This is how Multi master replication works….

auto_increment_offset=Nth master server
auto_increment_increment=M

Donde —
N => número n de servidor maestro (en master-1 mantenga 1 y en master-2 mantenga el 2, etc ..)
M => Número total de Master Server (2 en nuestro caso, pero mejor para mantener este alto valor para que podamos añadir fácilmente nuevas servidor maestro)

log-slave-updates => servidor esclavo no registra a su propio registro binario las actualizaciones que se reciben de un servidor maestro. Esta opción le dice al esclavo en el registro de las actualizaciones realizadas por el flujo SQL en el log binario del esclavo.

** Asegúrese de que MySQL se está ejecutando y hasta en todos los servidores maestro y servidor de esclavos

¿Cómo configurar múltiples replicación de MySQL? —

Step 1] Create Database/Tables on  Master  & Slave Servers –

You can create DB on all master & slave server or  create on one server and export that DB on  rest of all servers…

Master-1 => Create DB and Table

mysql> create database student;

mysql> use student;

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

mysql> show tables;
+——————-+
| Tables_in_student |
+——————-+
| class             |
+——————-+
1 row in set (0.00 sec)

mysql> desc class;
+——–+————-+——+—–+———+—————-+
| Field  | Type        | Null | Key | Default | Extra          |
+——–+————-+——+—–+———+—————-+
| rollno | int(5)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | YES  |     | NULL    |                |
+——–+————-+——+—–+———+—————-+
2 rows in set (0.00 sec)

mysql> SELECT * FROM class;
Empty set (0.00 sec)
mysql>

* Now take dump of “student” DB and export it on all master and Slave server…

[root@master-1~]# mysqldump -u root -p  -d student > /home/arunsb/student.sql

* SCP the dump file on master-2 and slave server ~
[root@master-1~]# scp /home/arunsb/student.sql arunsb@10.66.90.135:/tmp/student.sql
[root@master-1~]# scp /home/arunsb/student.sql arunsb@10.66.75.137:/tmp/student.sql

Login on master-2 and slave ~

mysql> create database student;

[root@master-2~]# mysql -u root -p student < /tmp/student.sql
Enter password:
[root@master-2~]#

[root@master-2~]# mysql -u root -p
Enter password:

mysql> use student

mysql> SELECT * FROM class;
Empty set (0.00 sec)
mysql>

** Please repeat the same steps on Slave server as well…

Step 2] Update “my.cnf” config file on master-1,master-2 and slave server –

[root@master-1~]# cat /etc/my.cnf

###########################
##MySQL replication setting

#Master setting(1)
server-id = 1
log-bin = /var/log/mysql/binary/mysql-bin.log
binlog-do-db = student
binlog-ignore-db = mysql
#log = /var/log/mysql/mysql.log
auto_increment_offset=1
auto_increment_increment=5
log-slave-updates

##slave setting
master-port=3306
master-host=10.66.90.135
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
###########################

[root@master-1~]#

[root@master-2~]# cat /etc/mysql/my.cnf

###########################
##MySQL replication setting

#Master setting(2)
server-id = 2
log-bin = /var/log/mysql/binary/mysql-bin.log
binlog-do-db=student
binlog-ignore-db = mysql
log = /var/log/mysql/mysql.log
auto_increment_offset=2
auto_increment_increment=5
log-slave-updates

##slave setting
master-port=3306
master-host=10.66.66.194
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
###########################

[root@master-2~]#

* please create directory for binary log and set permission…

[root@master-1~]# mkdir -p /var/log/mysql/binary/
[root@master-1~]# chown mysql:adm  /var/log/mysql/ /var/log/mysql/binary/

[root@master-2~]# mkdir -p /var/log/mysql/binary/
[root@master-2~]# chown mysql:adm  /var/log/mysql/ /var/log/mysql/binary/

** MySQL Replication Slave ~

[root@slave~]# cat  /etc/my.cnf

[mysqld]

########################################
##slave setting
server-id=4
master-port=3306
master-host=10.66.90.135
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
########################################

[root@slave~]#

Step 3] Give Replication permission on both masters ~

** Master (1 & 2) ~

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’10.66.%.%’ IDENTIFIED BY ‘mypwd’;
Query OK, 0 rows affected (0.00 sec)

mysql>

Step 4] Restart MySQL on both master as well as replication slave server ~

** Please verify setting on master-1 and master-2 server…

* Master-1

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 5     |
| auto_increment_offset    | 1     |
+————————–+——-+
2 rows in set (0.00 sec)

* Master-2

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 5     |
| auto_increment_offset    | 2     |
+————————–+——-+
2 rows in set (0.00 sec)

** Please verify ‘master’ & ‘slave’ status on both masters(1 & 2) and slave –

mysql> show master status;
mysql> show slave status;

** Multi Master replication is started…

Step 5] Add few records on Master-1 & Master-2 server at same time ~

Add records on both master server at same time and check master and replication slave status as shown above….

** Add following on master-1

mysql> INSERT INTO class VALUES (”,’Arun Bagul’);
mysql> INSERT INTO class VALUES (”,’Ravi Bhure’);
mysql> INSERT INTO class VALUES (”,’Karthik Appigita’);
mysql> INSERT INTO class VALUES (”,’Ameya Pandit’);

** Add following on master-2

mysql> INSERT INTO class VALUES (”,’Nilkanth Parab’);
mysql> INSERT INTO class VALUES (”,’Nishit Shah’);
mysql> INSERT INTO class VALUES (”,’Ram Krishna’);
mysql> INSERT INTO class VALUES (”,’Suhail Thakur’);

** Please verify the numbers of records on both masters and slave….

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      2 | Nilkanth Parab   |
|      6 | Ravi Bhure       |
|     11 | Karthik Appigita |
|     16 | Ameya Pandit     |
|     17 | Nishit Shah      |
|     22 | Ram Krishna      |
|     27 | Suhail Thakur    |
+——–+——————+
8 rows in set (0.00 sec)

mysql>

* Así que todos aprendimos a varios configurar la replicación MySQL maestro. Disfrute!

Recuerdos,
Arun Bagul

Show romanization ¿Cómo crear o construir de paquetes RPM

Show romanization ¿Cómo crear o construir de paquetes RPM

Introducción —

Herramienta * “rpmbuild” se utiliza para construir los dos …

1) paquete binario ~ utilizado para instalar el software y el apoyo a las secuencias de comandos. Contiene los archivos que componen la aplicación, junto con cualquier información adicional necesaria para instalar y borrar.
Source Package 2) ~ contiene el archivo original comprimido tar de código fuente, los parches y la especificación de archivo.

* ¿Cuál es el gestor de paquetes RPM y RPM?

El Administrador de paquetes (RPM) es una potente línea de comandos del sistema de gestión de paquetes capaz de instalar, desinstalar, verificar, consultar y actualizar los paquetes de software.

Paquete RPM se compone de un archivo de archivos y de meta-datos utilizado para instalar y borrar los archivos. El meta-datos incluyen scripts de ayuda, los atributos de archivo, e información descriptiva sobre el paquete.

* Para construir el paquete RPM, tiene que especificar tres cosas ~

1) Fuente de aplicación – En cualquier caso, no debería modificar las fuentes utilizadas en el proceso de construcción de paquetes.

2) Patches – RPM le da la capacidad para aplicar los parches de forma automática a ellos. El parche soluciona un problema específico para el sistema de destino. Esto podría incluir cambios en archivos make para instalar la aplicación en los directorios adecuados, o la resolución de los conflictos de la plataforma. Parches de crear el entorno necesario para la compilación adecuada.

3) Especificación de archivo – La especificación de archivo se encuentra en el corazón del proceso de construcción de paquetes RPM. Que contiene la información requerida por RPM para construir el paquete, así como instrucciones que le dicen RPM cómo construirla. El archivo de especificación también dicta exactamente qué archivos son una parte del paquete, y donde deben estar instalados.

** Especificación de archivo ~ está dividido en 8 secciones como se muestra a continuación

a) Preámbulo ~ contiene información que se mostrará cuando los usuarios solicitan información sobre el paquete. Ello deberá incluir una descripción de la función del paquete, el número de versión del software, etc

b) Preparación ~ donde el trabajo real de construcción de un paquete de aperturas. Como su nombre lo indica, esta sección es donde se realizan los preparativos necesarios antes de la construcción real del software. En general, si algo hay que hacer a las fuentes antes de construir el software, tiene que suceder en la sección de preparación. El contenido de esta sección es un script de shell corriente. Sin embargo, RPM prevé dos macros para hacer la vida más fácil. Una macro se puede descomprimir un archivo tar comprimido y cd en el directorio de origen. La macro se aplica con facilidad otros parches a las fuentes sin envasar.

c) Construcción ~ Esta sección consta de un script de shell. Se utiliza para realizar cualquier comandos son realmente necesarios para compilar los fuentes, como hacer un solo comando, o ser más compleja si el proceso de construcción así lo requiere. No hay macros disponibles en esta sección.

d) Instalar ~ Esta sección también contiene un script de shell, la instalación de la sección se utiliza para realizar los comandos necesarios para instalar los programas informáticos.

e) Instalación y desinstalación ~ Se trata de secuencias de comandos que se ejecutará, en el sistema del usuario, cuando el paquete es realmente instalados o eliminados. RPM se puede ejecutar un script de pre / post-instalación / desinstalación de paquetes.

f) Verificar Script ~ script que se ejecuta en el sistema del usuario. Que se ejecuta al RPM verifica la correcta instalación del paquete.

g) Sección de Limpieza ~ script que puede limpiar las cosas después de la construcción. Este script se usa raramente, ya que RPM normalmente hace un buen trabajo de limpieza en la mayoría de los entornos de compilación.

h) Lista de archivos ~ consiste en una lista de archivos que componen el paquete. Además, un número de macros se pueden utilizar para controlar los atributos de archivo cuando se instale, así como para denotar que los archivos son la documentación, y que contienen información de configuración. La lista de archivos es muy importante.

*** Requisito de RPM para construir el medio ambiente ~

A] RPM requiere de un conjunto de guías para realizar la construcción. Mientras que los lugares en los directorios y los nombres se pueden cambiar. Diseño predeterminado se muestra a continuación —

root @ arunsb: ~ # ls-l / usr / src / redhat /

drwxr-xr-x 2 root root 4096 25 de agosto 2007 FUENTES => Contiene las fuentes originales, revisiones, y archivos de icono
drwxr-xr-x 2 root root 4096 25 de agosto 2007 ESPECIFICACIONES => Contiene los archivos de especificación de
drwxr-xr-x 2 root root 4096 25 de agosto 2007 BUILD => Directorio en el que se desempaquetar las fuentes, y software se construye
drwxr-xr-x 8 root root 4096 28 de mayo 2008 RPMS => contiene el paquete binario de los archivos creados por el proceso de construcción
drwxr-xr-x 2 root root 4096 25 de agosto 2007 SRPMS => contiene el paquete de archivos de código fuente creado por el proceso de construcción

root @ arunsb: ~ #

B] necesidad de exportar pocas variables globales que se utilizan por RPM —

root@arunsb:~# export  RPM_BUILD_DIR=/usr/src/redhat/BUILD/
root@arunsb:~# export  RPM_SOURCE_DIR=/usr/src/redhat/SOURCES/

Paso 1] Crear Specification (especificación) del archivo ~

root@arunsb:~# head -n 50  /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul

#RPM_BUILD_DIR    /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR    /usr/src/redhat/SOURCES/

%define MY_PREFIX    /usr/local/openlsm/

## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL

%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.

## Preparation Section-
%prep

rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}

## Build Section-
%build

cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make

## Install Section-
%install

cd ./openlsm-0.99-r45/
make install

## Files Section-
%files

/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#

* ¿Cómo se crea la lista de archivos?

Creación de la lista de archivos es un proceso manual. Lo que hice es que me tomó la lista de archivos del directorio de manual de mi prefijo instalado con comando find como se muestra a continuación …

root@arunsb:~# find /usr/local/openlsm/ -type f -or  -type d

Paso 2] A partir de la Construcción ~

root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l  openlsm.spec
-rw-r–r– 1 root root 12938 Dec  2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#

root@arunsb:/usr/src/redhat/SPECS# rpmbuild   -ba  openlsm.spec

….
… ..

Comprobación de archivo sin envasar (s): / usr / lib / rpm / check-archivos de buildroot% ()
Escribió: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Escribió: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0

root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 2 de diciembre 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 2 de diciembre 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #

* Fuente y el paquete binario creado!!

** Vamos a ver lo que sucedió en “/ usr / src / redhat / directorio”

root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
CONSTRUIR RPMS FUENTES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0.99-r45 <== Origen extraídos aquí como parte de las instrucciones de construcción de la especificación de archivo, es decir “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls FUENTES /
openlsm-0.99-r45.tar.gz <== openlsm original “-0.99-r45.tar.gz” fuente de los archivos copiados por mí
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat RPMS/i386 # ls /
openlsm-0.99-r45.i386.rpm <== paquete RPM binario creado!
root @ arunsb: / usr / src / redhat SRPMS # ls /
openlsm-0.99-r45.src.rpm <== paquete RPM creado!
root @ arunsb: / usr / src / redhat #

Paso 3] Ahora instale el paquete y probarla ~

root @ arunsb: / usr / src / redhat RPMS/i386/openlsm-0.99-r45.i386.rpm # cp / home / arunsb /

root @ arunsb: / usr / src / redhat # cd / home / arunsb /
root @ arunsb: ~ # ls
openlsm-0.99-r45.i386.rpm
root @ arunsb: ~ # rpm-ivh openlsm-0.99-r45.i386.rpm
Preparing … ########################################### [100%]
1: ########################################### openlsm [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
etc contrib bin incluyen lib scripts sbin var compartir
root @ arunsb: ~ #

** Desde el servidor openlsm ~

root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm arranque redhat
* A partir servidor de administración openlsm: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm estatuto de RedHat
openlsm (pid 21607) está corriendo …
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-q openlsm-0.99-R45
openlsm-0.99-R45
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-ql openlsm-0.99-R45
..

root @ arunsb: ~ # rpm-openlsm QIV-0.99-R45
Nombre: Movimientos openlsm: (no trasladable)
Versión: 0.99 Distribuidor: IndianGNU.org & openlsm
Versión: R45 Build Date: Wed 02 de diciembre 2009 05:50:54 PM EST
Fecha de instalación: Miércoles 02 de diciembre 2009 06:06:23 PM EST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Grupo: System Environment / Daemons Source RPM: openlsm-0.99-r45.src.rpm
Tamaño: 14877918 Licencia: GPL
Firma: (ninguno)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Resumen: openlsm Server Admin
Descripción:
openlsm Admin Server es libre y Web de código abierto para el panel de control basado en Linux, los sistemas Unix.
root @ arunsb: ~ #

** NOTA ~ Este artículo no contiene información sobre cómo definir micros, cómo copiar documentos, páginas de manual por defecto la ubicación, cómo establecer la propiedad etc Permiso y voy a cubrir estos temas en el próximo artículo sobre RPM.

** Por favor, consulte el artículo de Inglés ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

Recuerdos,
Arun Bagul

Multi User Conferencing (MU-Conferencia) para Jabber (jabberd2)

Multi User Conferencing (MU-Conferencia) para Jabber (jabberd2)

Introducción ~

Por favor, consulte el artículo siguiente para instalar / configurar jabberd2 …

http://www.indiangnu.org/2009/how-to-configure-jabber-jabberd2-with-mysqlpam-as-auth-database/

Requisito ~

* A raíz de los paquetes se requieren para compilar MU-Conferencia …

root @ laptop: ~ # apt-get install libglib2.0-0 libglib2.0-dev
root @ laptop: ~ # apt-get install libidn11 libidn11-dev
root @ laptop: ~ # apt-get install expatriado lib64expat1 lib64expat1-dev libexpat1-dev liblua5.1-expat-dev liblua5.1-expat0

Paso 1] ¿Cómo compilar “MU-Conferencia” —

* Descargar “MU-Conferencia” de la siguiente URL – https: / / gna.org / proyectos / mu-conferencia /

root @ laptop: / var / src # wget-c http://download.gna.org/mu-conference/mu-conference_0.8.tar.gz
root @ laptop: / var / src # tar xvfz mu-conference_0.8.tar.gz
root @ laptop: / var / src # cd mu-conference_0.8 /
root @ laptop: / var/src/mu-conference_0.8 #

* Compilar MU-Conferencia

root @ laptop: / # make var/src/mu-conference_0.8
cd src /; hacer
make [1]: Entering directory `/ var/src/mu-conference_0.8/src ‘
jabberd cd; hacer
make [2]: Entering directory `/ var/src/mu-conference_0.8/src/jabberd ‘

… ..

root @ laptop: / var/src/mu-conference_0.8 # echo $?
0
root @ laptop: / var/src/mu-conference_0.8 #

Paso 2] Configurar MU-Conferencia —

* Ahora copia el “Mu-Conferencia” binario al directorio de instalación jabberd2 —

root @ laptop: ~ # cp / / var/src/mu-conference_0.8/src/mu-conference usr/local/jabberd-2.2.9/bin /
root @ laptop: ~ # chown jabber: jabber / usr/local/jabberd-2.2.9/bin/mu-conference
root @ laptop: ~ # ls-l / usr/local/jabberd-2.2.9/bin/mu-conference
-rwxr-xr-x 1 Jabber Jabber 191904 2009-10-12 18:59 / usr/local/jabberd-2.2.9/bin/mu-conference
root @ laptop: ~ #

root @ laptop: ~ # / usr/local/jabberd-2.2.9/bin/mu-conference-ayuda
Jabber Component Runtime – 0.2.4
(c) 2003-2004 Paul Curtis

/ usr/local/jabberd-2.2.9/bin/mu-conference: opción inválida – ‘-‘
Uso: MU-conferencia [B] [-s] [-h] [-d LEVEL]-c FILE
-B Ponga el demonio en el fondo
-s Mostrar mensajes de depuración en stderr
-h Imprimir esta ayuda
-d NIVEL Establecer el nivel de depuración
-c FILE Establezca el archivo de configuración, el argumento de obligatorio
root @ laptop: ~ #

* Crear un directorio de impresión para “Mu-Conference”. El mu-componente de la conferencia requiere un directorio de cola en el que almacenar la información de sesión.

root @ laptop: ~ # mkdir / usr/local/jabberd-2.2.9/var/spool
root @ laptop: ~ # chown jabber: jabber / usr/local/jabberd-2.2.9/var/spool

NOTA ~ “Jabber: Jabber” usuario / nombre de grupo de servidores jabberd2.

* Copia el archivo de configuración de “MU-Conferencia” al directorio de instalación jabberd2 y editar la configuración —

root @ laptop: ~ # cp / var/src/mu-conference_0.8/muc-default.xml / usr/local/jabberd-2.2.9/etc/mu-conference.xml
root @ laptop: ~ # chown jabber: jabber / usr/local/jabberd-2.2.9/etc/mu-conference.xml
root @ laptop: ~ #

root @ laptop: ~ # vi / usr/local/jabberd-2.2.9/etc/mu-conference.xml

<name> conf.laptop.ubuntu.me </ name>
<host> conf.laptop.ubuntu.me </ host>
<ip> localhost </ ip>
<port> 5347 </ port>
<secret> secret </ secret>

<spool> / usr/local/jabberd-2.2.9/var/spool </ spool>
<logdir> / usr/local/jabberd-2.2.9/var/log </ logdir>
<pidfile> / usr/local/jabberd-2.2.9/var/run/mu-conference.pid </ pidfile>

<loglevel> 255 </ loglevel>

<sadmin>
<user> admin@laptop.ubuntu.me </ user>
</ sadmin>


… ..
root @ laptop: ~ #

* Ahora, reinicie el servidor jabberd2 y luego comenzar “MU-Conferencia” …

root @ laptop: ~ # su-jabber l-s / bin / bash-c “/ usr/local/jabberd-2.2.9/bin/mu-conference-B-C / usr/local/jabberd-2.2.9 / etc / mu-conference.xml ”
root @ laptop: ~ #

* Por favor, consulte el artículo anterior, es decir, init script de arranque ‘/ etc/init.d/jabberd2’ comenzará mu-conferencia.

root @ laptop: ~ # tail-f / usr/local/jabberd-2.2.9/var/log/mu-conference.log
Mon Oct 12 19:19:40 2009 main.c: 168 (principal): Jabber Component Runtime – 0.2.4 de partida.
Mon Oct 12 19:19:40 2009 MU-Conferencia: [conference.c: 1076 (conferencia)]-mu carga de conferencias – Servicio de ID: conf.laptop.ubuntu.me

Mon Oct 12 19:19:40 2009 MU-Conferencia: [conference.c: 1157 (conferencia)] Añadir admin@laptop.ubuntu.me sadmin
Mon Oct 12 19:19:40 2009 MU-Conferencia: [xdb.c: 319 (xdb_rooms_get)] pidió a conseguir habitaciones de xdb
Mon Oct 12 19:19:40 2009 MU-Conferencia: [xdb.c: 418 (xdb_rooms_get)] sin pasar .. No hay resultados
Mon Oct 12 19:19:40 2009 main.c: 219 (principal): bucle principal de partida.
Mon Oct 12 19:19:40 2009 jcr_base_connect.c: 34 (jcr_socket_connect): El intento de conexión a localhost: 5347
Mon Oct 12 19:19:40 2009 jcr_base_connect.c: 87 (jcr_send_start_stream): Apertura secuencia XML: 173 bytes enviados
Mon Oct 12 19:19:40 2009 jcr_main_stream_error.c: 50 (jcr_main_new_stream): Stream Server conectado.
Mon Oct 12 19:19:40 2009 jcr_deliver.c: 51 (jcr_queue_deliver): hilo de entrega de paquetes de partida.

hecho!!

Paso 3] Test “MU-Conferencia” —

* En el menú “PSI” cliente de mensajería instantánea, goto ‘General’ y haga clic en “Service Discovery ‘y compruebe la lista de salas …
* En “Herramientas” y luego Pidgin “cliente de mensajería instantánea, goto ‘haga clic en’ Lista de habitaciones sección.

Una vez que se detecta el ‘mu-conferencia’ servidor. Por favor, haga clic en “+ Añadir chat en el menú ‘Amigos’ de Pidgin. En el caso de la ISP, haga clic en “Join groupchat ‘en el menú” General “para añadir” Salas de conferencias / “y luego unirse a la’ Confernece Room ‘.

Disfrutar,
Arun Bagul