Category: Informazioni generali

Informazioni generali

Top 5 – Rete Open Source e monitoraggio delle prestazioni + sistema di allarme

Top 5 – Rete Open Source e monitoraggio delle prestazioni + sistema di allarme

Introduzione – Monitoraggio della rete e le applicazioni diverse è la parte più importante del bussiness. Quindi la scelta di strumenti di monitoraggio è fondamentale e più importante compito, perché si risponde pienamente a questo strumento per comunicare ogni volta che qualcosa va storto!

1) Nagios – è un popolare aperta monitor di computer source del sistema, monitoraggio della rete e il monitoraggio delle applicazioni delle infrastrutture software. Nagios offre completo di monitoraggio e di allarme per i server, switch, applicazioni e servizi ed è considerato come l’industria defacto
standard. Nagios supporta due tipi di sorveglianza attiva e passiva. In caso di programmi di monitoraggio attivi nagios o controlla attivamente i servizi di cui, mentre in caso di controlli passivi, l’applicazione esterna può essere utilizzata per presentare risultati del controllo di servizio.
– Per i controlli passivi NSCA (Nagios Servizio Acceptor Check) demone dovrebbe girare su server nagios ad accettare assegni passivi sulla rete, che presenteranno controllo passivo per nagios tramite unix socket.
– Per i controlli Acitive NRPE (Nagios Remote Plugin Executor) daemon volontà deve essere eseguito sulla macchina remota per monitorare i servizi. Tuttavia è possibile utilizzare SSH pure.

Per monitorare host remoti e servizi per la comunità nagios fornire qualche plugin come mostrato qui sotto …
* NRPE – daemon NRPE verrà eseguito su host remoti e Nagios servizi di controlli su host remoti tramite il plugin check_nrpe (comando) da host nagios.
* Check_MK – Il miglior plugin di Nagios per il monitoraggio host remoto. La bellezza di questo plugin è che la maggior parte dei servizi commons vengono controllati in una sola connessione a host remoti ei risultati sono presentati i risultati passivi a Nagios. Questo migliora le prestazioni, meno traffico di rete e, naturalmente, nessun carico o onere per host remoto (che stiamo monitorando). Per Check_MK, dobbiamo installare l’agente check_mk cioè check_mk_agent semplice script di shell e si legano a questo script porta TCP 6556 con daemon xinetd. Check_MK fornisce inoltre le seguenti caratteristiche.
– Check_MK supporto dinamico nagios configurazione generazione, l’inventario dei controlli.
– Livestatus – un plugin bellissimo di comunicare con nagios (unix socket)
– Nagios Multisite GUI – nagios monitor multipli da un’unica interfaccia web based
– Supporta SNMP e rilevamenti di servizi automatici per molti switch, router cisco e filer NetApp pure.
Nagios Multisite GUI – Un’altra bellezza di Check_MK nagios plugin è montoring nagios multipli utilizzando una sola interfaccia basata su web. Questo webbased interfaccia usese Check_MK plug Livestatus per ottenere i dati nagios.
Check_MK – http://mathias-kettner.de/
URL – http://www.nagios.org/~~V
Autore – Ethan Galstad

2) Ganglia – è una soluzione scalabile distribuita strumento Monitor di sistema ad alte prestazioni, sistemi informatici, quali i cluster e reti. Esso consente all’utente di visualizzare in remoto le statistiche dal vivo o storici (come il carico medio della CPU o l’utilizzo della rete) per tutte le macchine che vengono monitorati. Gangli è molto utile per scoprire l’utilizzo delle risorse saggia applicazione o squadra anche in ambiente cluster. Dobbiamo installato gmond (monitor daemon gangli) su ciascuna macchina (in gruppo o cluster) che raccoglie tutte le statistiche.
gmetad (metadati daemon gangli) è necessario installare su un lavorato in gruppo o cluster che raccoglierà i dati provenienti da specifici server gmond.
URL – http://ganglia.info/~~V

3) Cacti – è un open source, web-based strumento di rappresentazione grafica (frontend per RRDtool). Cacti permette ad un utente di servizi di sondaggi ad intervalli prestabiliti ed il grafico dei dati ottenuti. In genere viene utilizzato per rappresentare graficamente dati in serie temporale di parametri, quali il carico della CPU e della larghezza di banda utilizzo della rete. Cacti è meglio monitorare i dispositivi hardware come switch, router via SNMP.
URL – http://www.cacti.net/

4) Zabbix – È stato progettato per monitorare e tenere traccia dello stato dei vari servizi di rete, server e hardware di rete. Esso utilizza MySQL, PostgreSQL, SQLite, Oracle o IBM DB2 per memorizzare i dati. Il backend è scritto in C e il frontend web è scritto in PHP.
Zabbix offre diverse opzioni di controllo. Un agente Zabbix può essere installato anche su host UNIX e Windows per monitorare le statistiche come il carico della CPU, l’utilizzo della rete, spazio su disco, ecc
In alternativa alla installazione di un agente su host, Zabbix include il supporto per il monitoraggio tramite SNMP, TCP e controllo ICMP, come pure su IPMI, SSH, Telnet e l’utilizzo di parametri personalizzati.
Zabbix supporta una varietà di tempo reale meccanismi di notifica. La bellezza di Zabbix è XMPP notifiche!
URL – http://www.zabbix.com/
Autore – Alexei Vladishev

5) Zenoss – Zenoss (Zenoss Core) è un sistema open-source applicazioni, server, e la piattaforma di gestione di rete basata sul server di applicazioni Zope.
URL – http://www.zenoss.com/

NOTA – Questo elenco si basa su esperienze personali e la scelta di molti membri della comunità IndianGNU.

Grazie,
Arun Bagul

Come usare la RAM (fisica) come disco

Come usare la RAM (fisica) come disco

Introduzione –
A volte per ottenere prestazioni, ram fisica può essere utilizzato come spazio su disco che è molto veloce confronto al normale disco rigido.
Quindi, come posso usare la RAM è un disco? passare attraverso questa procedura.

Fase 1) Crea directory come illustrato di seguito in cui si desidera montare come disco RAM

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

Step 2) RAM mount tmpfs cioè al punto di mount “/ tmp / ram” directory-

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

* Controllare montato su no?

root @ arunbagul: ~ # df-h
Dimensione del filesystem Uso% Montato su
tmpfs 10M 0 10M 0% / tmp / ram

** Per montare questa voce in modo permanente aggiungere in / etc / fstab come mostrato di seguito.

root @ arunbagul: ~ # cat / etc / fstab

….

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

root @ arunbagul: ~ #

– Per montare il comando mount uso (questo comando si monterà tutti i punti di mount menzionati in fstab)

root @ arunbagul: ~ # mount-a

Grazie,
Arun Bagul

IndianGNU.org – quarto anniversario!

IndianGNU.org – quarto anniversario!

Cari tutti,

Oggi si celebra il quarto anniversario! Abbiamo completato con successo quattro anni e ancora in crescita con tutta velocità! E ‘stato semplicemente impossibile senza il vostro sostegno, il contributo e il duro lavoro.

openlsm Project ~

Questa height=”92″ anno è stato difficile per openlsm e lanceremo la versione pannello Admin di sviluppo entro la fine di dicembre, 2010. Ci aspettiamo molto di più da seconda pietra miliare …

Cheers,
IndianGNU.org

Perl CGI – Sessione e howto Cookie

Perl CGI – Sessione e howto Cookie

Introduzione –

Quasi 1 anno fa, ho lottato molto per l’attuazione di sessione e cookie in applicazione Perl CGI. Così pensò di condividere il mio lavoro con tutti voi.
Ho voluto farlo a modo mio …

Assunta, il server Web Apache cioè è in grado di eseguire script 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

Come per le prestazioni di rete Test e larghezza di banda

Come per le prestazioni di rete Test e larghezza di banda

Introduzione –

La latenza della rete e larghezza di banda sono i due parametri più probabilità di essere di interesse quando si benchmark di una rete. Anche se la maggior parte di servizi e pubblicità del prodotto si concentra sulla larghezza di banda, la latenza, a volte può essere un parametro più importante.

** Che cosa è larghezza di banda?

Larghezza di banda (BW) in reti di computer si riferisce al tasso di dati supportati da una connessione di rete o interfaccia. BW è misurata in termini di bit al secondo (bps).

** Che cosa è la latenza di rete?

La latenza è una misura del ritardo di tempo vissuto in un sistema. La latenza della rete è semplicemente definito come l’intervallo di tempo osservato come la trasmissione di dati da un punto ad un altro. Ci sono un certo numero di fattori che contribuiscono alla latenza di rete. Questi includono la trasmissione (media di connettività), Distanza, router e ritardi hardware del computer.

Elenco dei progetti utilizzati per testare le prestazioni di rete e la larghezza di banda –

1) bmon – monitor di banda e tasso di stimatore, è basato su console, live BW
2) bwbar – l’utilizzo della banda in formato testo e grafica
3) BWM-ng – Bandwidth Monitor NG (Next Generation, in diretta BW, basati su console
4) dstat – Dstat è una sostituzione per vmstat, iostat e ifstat.
5) iftop – l’utilizzo di banda su un’interfaccia, basati su console
6) iperf – Eseguire test di throughput di rete scommessa su due host
7) ifstat – Relazione InterFace Statistiche
8) cbm – Colore Bandwidth Meter, basati su console
9) etherape – browser grafico del traffico di rete
10) iptraf – Interactive Colorful IP LAN Monitor, console e GUI
11) netmrg – E ‘demone based, supporto MySQL, raccoglie dati dai dispositivi.
12) nuttcp – Rete strumento di misurazione delle performance
13) nepim

NOTA ~ Per alcuni di loro pacchetti rpm o deb non sono disponibili!

Passo 1] Come installare su RedHat / RHCE, sistema basato CentOS e Dibian sistema basato?

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

** Ubuntu –

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

Fase 2] Come usare – 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

** Start server “iperf” su un host (A) e il client su un altro host (B) – per misurare il throughput di rete tra due host.

* 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 ERP e CRM Open Source Software

Top 7 ERP e CRM Open Source Software

Introduzione –

Che cosa è Enterprise Resource Planning (ERP)?

ERP è un sistema software integrato utilizzato per gestire le risorse, attività, risorse finanziarie, materiali e risorse umane.
Il suo scopo è quello di facilitare il flusso di informazioni tra tutte le funzioni di business dell’organizzazione.

Qual è la customer relationship management (CRM)?

CRM è ampiamente riconosciuta come interazione dell’azienda con i clienti, i clienti e le prospettive di vendita. Essa implica l’uso di
la tecnologia per organizzare, automatizzare e sincronizzare business (vendite) attività, marketing, servizio clienti e supporto tecnico.

1) Openbravo

Openbravo ERP è una soluzione web-based ERP per aziende piccole e medie dimensioni che viene rilasciato sotto
il Openbravo Public License, in base alla Mozilla Public License.
URL – http://www.openbravo.com/

2) OpenERP

OpenERP è una suite open source completo di applicazioni aziendali quali vendite, CRM, Project management,
Galleria di gestione, produzione, Contabilità, Risorse Umane.
URL – http://www.openerp.com/

3) Fedena

Fedena scuola è un open source per la gestione software sviluppato su framework Ruby on Rails. fedena contiene i relativi moduli per l’ammissione, Studente Dettagli, gestire gli utenti, Gestione News, Esame, orari e presenze.
URL – http://www.projectfedena.org/

4) JFire

JFireis un Enterprise Resource Planning e Customer Relationship Management. JFire è Client-Server con sistema basato su client desktop disponibile per Windows e Linux OS.
URL – http://www.jfire.net/

5) Apache OFBiz –

OFBiz è il sistema ERP. Esso fornisce applicazioni aziendali che integrare e automatizzare molti dei processi di business.
URL – http://ofbiz.apache.org/

6) SugarCRM

SugarCRM è leader CRP software open source. SugarCRM è la mia scelta personale!

URL – http://www.sugarcrm.com

7) vtigercrm

Vtigercrm è molto facile e migliore ERP e CRM software web based. Ho usato questo software personali. Ha Addons molti. URL – http://www.vtiger.com/

Si prega di fare riferimento alla lista di software ERP su wiki – http://en.wikipedia.org/wiki/List_of_ERP_software_packages

Grazie,
Arun Bagul

Bash Scripting ~ apprendimento da esempi

Bash Scripting ~ apprendimento da esempi

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

Come configurare multi master replica MySQL

Come configurare multi master replica MySQL

Introduzione ~

Avevo intenzione di scrivere l’articolo su Multi Master replica di MySQL da tempo, finalmente iniziata ora!. Si prega di consultare l’articolo on “Come configurare la replica di MySQL con un Master” URL ~ http://www.indiangnu.org/2007/mysql-replication-one-master-multiple-slave/

* Vorrei informare tutti voi che Multi replica Master in MySQL è puramente basato sulle seguenti due variabili. Non ha nulla a che fare con la tecnologia di replica utilizzato nella replica 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

Nei casi in cui —
N => n-esimo numero di server master (il master-1 tenerlo 1 e il master-2 tenerlo 2 e così via ..)
M => Numero totale di Master Server (2 nel nostro caso, ma meglio per mantenere questo valore in modo che possiamo aggiungere facilmente nuovi server master)

log-slave-aggiornamenti => Server Slave non accede al proprio registro binario tutti gli aggiornamenti che vengono ricevuti da un server master. Questa opzione dice lo schiavo per accedere gli aggiornamenti eseguiti dai suoi thread SQL ai propri log binario.

** Assicurarsi che MySQL è in esecuzione e su tutti i server master e slave-server

Come configurare Multi Master replica 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>

* Così abbiamo tutti imparato a configurare multi-master replica di MySQL. Enjoy!

Saluti,
Arun Bagul

Come creare o costruire dei pacchetti RPM

Come creare o costruire dei pacchetti RPM

Introduzione —

* Strumento “rpmbuild” è usato per costruire entrambi …

1) pacchetto binario ~ utilizzata per installare il software e gli script di supporto. Esso contiene i file che compongono l’applicazione, insieme con tutte le informazioni supplementari necessarie per installare e cancellarlo.
Pacchetto sorgente 2) ~ contiene il file originale tar compresso del codice sorgente, patch e specifica di file.

* Che cosa è RPM & Manager pacchetto RPM?

Il RPM Package Manager (RPM) è un potente linea di comando del sistema di gestione dei pacchetti in grado di installare, disinstallare, la verifica, l’esecuzione di query, e l’aggiornamento dei pacchetti software.

Pacchetto RPM consiste in un archivio di file e metadati utilizzati per installare e cancellare i file di archivio. La meta-dati comprende degli script helper, gli attributi di file e informazioni descrittive sul pacchetto.

* Per costruire il pacchetto RPM è necessario specificare tre cose ~

1) Fonte di applicazione – In ogni caso, non si dovrebbe modificare le fonti utilizzate nel processo di costruzione del pacchetto.

2) Patches – RPM ti dà la possibilità di applicare automaticamente le patch per loro. La patch risolve un problema specifico al sistema di destinazione. Ciò potrebbe comprendere cambiando makefile per installare l’applicazione in directory appropriate, o risolvere i conflitti cross-piattaforma. Patches di creare le condizioni necessarie per la corretta raccolta.

3) specifica di file – La specifica del file è al centro del processo di costruzione dei pacchetti RPM. Esso contiene le informazioni richieste dalla RPM per costruire il pacchetto, così come le istruzioni dicendo RPM come costruirlo. Il file di specifica detta anche esattamente ciò che i file sono una parte del pacchetto, e dove dovrebbe essere installato.

** Specifica del file ~ è divisa in 8 sezioni, come illustrato di seguito

a) Preambolo ~ contiene le informazioni che verranno visualizzati quando gli utenti richiedono informazioni sul pacchetto. Ciò include una descrizione della funzione del pacchetto, il numero di versione del software, ecc

b) Preparazione ~ in cui il vero lavoro di costruzione di un pacchetto di inizio. Come suggerisce il nome, questa sezione è dove i preparativi necessari sono effettuate prima della costruzione effettiva del software. In generale, se qualcosa deve essere fatto per le fonti prima di costruire il software, si deve accadere nella sezione di preparazione. I contenuti di questa sezione sono uno script di shell ordinaria. Tuttavia, RPM prevede due macro per rendere la vita più facile. Una macro è possibile scompattare un file compresso tar e CD nella directory di origine. La macro altri si applica facilmente le patch ai sorgenti spacchettato.

c) Build ~ Questa sezione è costituita da uno script di shell. E ‘utilizzato per eseguire qualsiasi comando in realtà sono tenuti a compilare i sorgenti, come unico comando make, o essere più complesso se il processo di costruzione richiede. Non ci sono le macro disponibili in questa sezione.

d) Installare ~ Questa sezione contiene anche uno script di shell, la sezione di installazione viene utilizzato per eseguire i comandi necessari per installare effettivamente il software.

e) Installazione e disinstallazione Script ~ Si tratta di script che verrà eseguito, sul sistema dell’utente, quando il pacchetto è in realtà installati o rimossi. RPM in grado di eseguire uno script di pre / post-installazione / rimozione del pacchetto.

f) Verificare Script ~ script che viene eseguito sul sistema dell’utente. E ‘eseguito quando RPM verifica la corretta installazione del pacchetto.

g) Pulizia Sezione ~ script che può pulire le cose dopo la compilazione. Questo script viene utilizzato raramente, poiché RPM fa normalmente un buon lavoro di risanamento nella maggior parte degli ambienti di build.

h) Elenco dei file ~ è costituito da un elenco di file che costituiscono il pacchetto. Inoltre, una serie di macro possono essere usate per controllare gli attributi di file una volta installato, così come per indicare che i file sono la documentazione, e che contengono informazioni di configurazione. L’elenco dei file è molto importante.

Requisito *** RPM per l’ambiente di generazione ~

A] RPM richiede una serie di directory per eseguire la compilazione. Mentre posizioni le directory ‘e nomi possono essere cambiati. Layout predefinito è mostrato di seguito —

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

drwxr-xr-x 2 root root 4096 25 agosto 2007 FONTI => contiene i sorgenti originali, patch, e file di icona
drwxr-xr-x 2 root root 4096 25 agosto 2007 SPECS => Contiene i file di specifica
drwxr-xr-x 2 root root 4096 25 agosto 2007 BUILD => Directory in cui le fonti sono imballata, e il software è stato costruito
drwxr-xr-x 8 root root 4096 28 maggio 2008 RPM => contiene il pacchetto binario di file creati dal processo di generazione
drwxr-xr-x 2 root root 4096 25 agosto 2007 SRPMS => Contiene il pacchetto sorgente dei file creati dal processo di generazione

root @ arunsb: ~ #

B] bisogno di esportare alcune variabili globali usate da RPM —

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

Step 1] Crea Specification (spec) File ~

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:~#

* Come si crea l’elenco di file?

Creare l’elenco di file è un processo manuale. Quello che ho fatto è ho preso la lista dei file dal mio manuale directory prefix installato con comando find come mostrato di seguito …

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

Fase 2] Avvio Build ~

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

….
… ..

Controllo per il file non imballati (s): / usr / lib / rpm / check-file% buildroot ()
Ha scritto: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Ha scritto: / 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 dicembre 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 Dicembre 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #

* Fonte e il pacchetto binario creato!

** Vediamo cosa è successo in “/ usr / src / redhat / directory”

root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
BUILD RPMS SOURCES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0.99-R45 <== Source estratto qui come parte di istruzioni per la compilazione da cioè la specifica del file “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls FONTI /
openlsm-0.99-r45.tar.gz <openlsm == originale ‘-0.99-r45.tar.gz’ origine del file copiato da me
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat # ls RPMS/i386 /
openlsm-0.99-r45.i386.rpm <== pacchetto rpm binario creato!
root @ arunsb: / usr / src / redhat # ls SRPMS /
openlsm-0.99-r45.src.rpm <== pacchetto rpm Source creato!
root @ arunsb: / usr / src / redhat #

Fase 3] Ora installare il pacchetto e testarlo ~

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

root @ arunsb: / usr / src / redhat # cd / arunsb / home /
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 includere script lib sbin var parti
root @ arunsb: ~ #

** Avvio del server openlsm ~

root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm-start redhat
* Server Admin partire openlsm: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm status redhat
openlsm (pid 21607) è in esecuzione …
root @ arunsb: ~ #

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

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

root @ arunsb: ~ # rpm-openlsm QIV-0.99-R45
Nome: Relocations openlsm: (non trasferibile)
Version: 0.99 Vendor: IndianGNU.org & openlsm
Comunicato: R45 Build Date: mer 02 Dec 2009 05:50:54 CEST
Data di installazione: mer 02 Dec 2009 06:06:23 CEST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group: System Environment / Daemons Source RPM: openlsm-0.99-r45.src.rpm
Dimensioni: 14877918 Licenza: GPL
Firma: (nessuno)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Sintesi: openlsm Server Admin
Descrizione:
openlsm Server Admin è libero e open source web pannello di controllo a base di Linux, sistemi Unix.
root @ arunsb: ~ #

** NOTA ~ Questo articolo non contiene le informazioni su come definire le micro, come copiare documenti, pagine man per difetto posizione, come impostare la proprietà ecc permision e mi occuperò di questi temi nel prossimo articolo su RPM.

** Si prega di consultare l’articolo inglese ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

Saluti,
Arun Bagul

Multi User Conferencing (MU-conferenza) per Jabber (Jabberd2)

Multi User Conferencing (MU-conferenza) per Jabber (Jabberd2)

Introduzione ~

Consulta il seguente articolo di installare / configurare Jabberd2 …

How to configure Jabber (jabberd2) with MySQL,PAM as auth database

Requisito ~

* I seguenti pacchetti sono chiamati a compilare MU-conferenza …

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

Fase 1] Come compilare “MU-Conference” —

* Download “MU-conferenza” dal seguente URL – https: / / gna.org / progetti / mu-conference /

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 #

* Compilare MU-conferenza

root @ laptop: / var/src/mu-conference_0.8 # make
cd src /; fare
make [1]: Entering directory `/ var/src/mu-conference_0.8/src ‘
jabberd cd; fare
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 #

Fase 2] Configurare MU-Conferenza —

* Ora copiare il MU “Conferenza” binari alla directory di installazione Jabberd2 —

root @ laptop: ~ # cp / usr/local/jabberd-2.2.9/bin / var/src/mu-conference_0.8/src/mu-conference /
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-help
Jabber Component Runtime – 0.2.4
(c) 2003-2004 Paul Curtis

/ usr/local/jabberd-2.2.9/bin/mu-conference: opzione non valida – ‘-‘
Uso: mu-conferenza [-B] [-s] [-h] [d-level]-c FILE
-B Mettere il demone in background
-s Mostra messaggi di debug su stderr
-h Stampa questo aiuto
-d LIVELLO Impostare il livello di output di debug
-c FILE impostare il file di configurazione, argomento obbligatorio
root @ laptop: ~ #

* Crea directory di spool per “MU-conferenza”. La mu-componente conferenza richiede una directory di spool in cui memorizzare le informazioni sala conferenze.

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” user / nome del gruppo di server Jabberd2.

* Copiare il file di configurazione di “MU-Conference” di directory di installazione Jabberd2 e modificare l’impostazione —

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: ~ #

* Ora riavviare il server Jabberd2 e quindi avviare “MU-Conference” …

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: ~ #

* Si prega di controllare l’articolo di cui sopra, vale a dire init script di avvio ‘/ etc/init.d/jabberd2’ inizia mu-conferenza.

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 (principale): Jabber Component Runtime – 0.2.4 di partenza.
Mon Oct 12 19:19:40 2009 MU-Conferenza: [conference.c: 1076 (conferenza)]-mu carico conferenza – Service ID: conf.laptop.ubuntu.me

Mon Oct 12 19:19:40 2009 MU-Conferenza: [conference.c: 1157 (conferenza)] Aggiunta admin@laptop.ubuntu.me sadmin
Mon Oct 12 19:19:40 2009 MU-Conferenza: [xdb.c: 319 (xdb_rooms_get)] ha chiesto di ottenere camere da xdb
Mon Oct 12 19:19:40 2009 MU-Conferenza: [xdb.c: 418 (xdb_rooms_get)] salto .. Non ci sono risultati
Mon Oct 12 19:19:40 2009 main.c: 219 (principale): ciclo principale di partenza.
Mon Oct 12 19:19:40 2009 jcr_base_connect.c: 34 (jcr_socket_connect): Tentativo di connessione a localhost: 5347
Mon Oct 12 19:19:40 2009 jcr_base_connect.c: 87 (jcr_send_start_stream): flusso XML di apertura: sent 173 bytes
Mon Oct 12 19:19:40 2009 jcr_main_stream_error.c: 50 (jcr_main_new_stream): stream server connesso.
Mon Oct 12 19:19:40 2009 jcr_deliver.c: 51 (jcr_queue_deliver): thread di consegna dei pacchetti di partenza.

fatto!

Fase 3] Test “MU-Conference” —

* Nel menu “PSI” client di messaggistica istantanea, goto ‘Generale’ e poi cliccare su ‘Service Discovery’ e controllare l’elenco stanza …
* In “Strumenti ‘e poi Pidgin” client di messaggistica istantanea, goto’ clicca su ‘Lista Room’ sezione.

Una volta individuato il ‘mu-conferenza’ server. Si prega di cliccare su ‘+ Aggiungi Chat’ dal menu ‘Amici’ di pidgin. In caso di scegliere PSI su ‘Join Groupchat’ dal menu ‘generale’ di aggiungere “Conferenza / Room” e poi unirsi alla ‘Confernece Room’.

Gustare,
Arun Bagul