Category: 일반 정보

일반 정보

상위 5 – 오픈 소스 네트워크 및 성능 모니터링 + 경보 시스템

상위 5 – 오픈 소스 네트워크 및 성능 모니터링 + 경보 시스템

소개 – 네트워크와 다양한 애플 리케이션을 모니터링하는 것은 당신의 bussiness의 가장 중요한 부분입니다. 당신은 완벽하게, 뭔가 일이 잘못되면 언제든지 알리려면이 도구에 회신하기 때문에 그래서 모니터링 도구를 선택하는 것은 중요하고 가장 중요한 작업입니다!

1) Nagios는 – 인기있는 오픈 소스 컴퓨터 시스템 모니터, 네트워크 모니터링 및 인프라 모니터링 소프트웨어 응용 프로그램입니다. Nagios는 서버, 스위치, 응용 프로그램 및 서비스에 대한 완벽한 모니터링 및 경고를 제공하고 defacto 산업로 간주됩니다
기준. Nagios 모니터링 – 액티브와 패시브 두 가지 유형을 지원합니다. 액티브 모니터링 nagios 스케줄의 경우 또는 적극적으로 언급 서비스를 검사, 수동 검사의 경우에는 동시에, 외부 응용 프로그램 서비스 점검 결과를 제출하는데도 사용할 수 있습니다.
– 수동 검사의 경우 NSCA는 (Nagios 서비스 점검 수용체) 데몬 유닉스 소켓을 통해 nagios에 수동 검사를 제출해 네트워크를 통해 수동 검사를 받아들이도록 nagios 서버에서 실행해야합니다.
– Acitive 수표 NRPE (Nagios 원격 플러그인 집행자) 데몬 휴가 서비스를 모니터링하는 원격 시스템에서 실행해야한다. 그러나 당신은뿐만 아니라 SSH를 사용할 수 있습니다.

아래 그림과 같이 원격 호스트와 서비스 nagios 커뮤니티가 여러분에게 몇 가지 플러그인을 제공하고 모니터링하려면 …
* NRPE – NRPE 데몬이 원격 호스트와 nagios 실행됩니다 nagios 호스트에서 check_nrpe 플러그인 (명령)를 통해 원격 호스트에 대한 점검 서비스됩니다.
* Check_MK – 원격 호스트를 감시하는 최고 nagios 플러그인. 이 플러그인의 아름다움 커먼즈 서비스의 대부분은 원격 호스트에 하나의 연결에 체크하고 결과 nagios에 대한 수동적인 결과로 제출하는 것입니다. 이것은 성능, 더 적은 네트워크 트래픽 물론 원격 호스트 (우리가 감시하고있는)에 노 하중이나 부담.을 향상 Check_MK 위해에 설치 check_mk업자 즉 check_mk_agent 간단한 쉘 스크립트를 가지고 xinetd 데몬을 사용하여 TCP 6556 포트에이 스크립트를 바인딩합니다. Check_MK는 또한 다음과 같은 기능을 제공합니다.
– 수표 Check_MK 지원 동적 nagios 구성 생성, 인벤토리.
– Livestatus – 아름다운 플러그인은 nagios (유닉스 소켓)와 통신하기
– Nagios Multisite GUI – 하나의 웹 기반 인터페이스에서 모니터를 여러 nagios
-뿐만 아니라 다양한 시스코 스위치, 라우터 및 넷앱 filers위한 SNMP 지원 및 자동 서비스를 탐지.
Nagios Multisite GUI – Check_MK nagios 플러그인의 또 다른 아름다움은 하나의 웹 기반 인터페이스를 사용하여 여러 nagios를 montoring있다. 이 webbased 인터페이스 usese Check_MK Livestatus 플러그인은 nagios 데이터를 얻으려고 말야.
Check_MK – http://mathias-kettner.de/
URL – http://www.nagios.org/~~V
저자 – 이단 Galstad

2) 신경 구 – 같은 클러스터 및 그리드와 같은 고성능 컴퓨팅 시스템을위한 확장 가능한 분산 시스템 모니터 도구입니다. 그것은 사용자가 원격으로 모니터링되는 모든 기계 라이브이나 역사 통계 (예 : CPU 부하 평균 또는 네트워크 활용 등) 볼 수 있습니다. 신경도 클러스터 환경에서 응용 프로그램 또는 팀 현명한 자원 활용도를 찾아 많은 도움이 될 것입니다. 우리는 통계를 수집하는 각 머신 (그룹 또는 클러스터)에 gmond을 (신경 모니터 데몬)을 설치해야합니다.
gmetad (신경 메타 데몬)은 그룹 또는 지정된 gmond 서버에서 데이터를 수집 클러스터에 가공 하나를 설치해야합니다.
URL – http://ganglia.info/~~V

3) 선인장은 – 오픈 소스, 웹 기반 그래프 도구 (RRDtool의 프론트 엔드)입니다. 선인장은 미리 정해진 간격과 그래프 결과 데이터에 설문 조사 서비스에 사용자를 허용합니다. 그것은 일반적으로 CPU의 부하와 네트워크 대역폭 사용률 같은 통계의 그래프 타임 시리즈 데이터에 사용됩니다. 선인장은 SNMP를 통해 스위치, 라우터와 같은 하드웨어 장치를 모니터링하는 것이 좋습니다.
URL – http://www.cacti.net/

4) Zabbix는 – 그것은 다양한 네트워크 서비스, 서버 및 기타 네트워크 하드웨어의 상태를 모니터링하고 추적할 수 있도록 설계되었습니다. 그것은 데이터를 저장하기 위해 MySQL은, PostgreSQL을, SQLite는 오라클이나 IBM DB2를 사용합니다. 그 백엔드는 C로 작성되며 웹 프론트 엔드는 PHP로 작성된 것입니다.
Zabbix는 여러 모니터링 옵션을 제공합니다. Zabbix 에이전트는 또한 CPU 부하, 네트워크 활용도, 디스크 공간 등 통계를 모니터하고 UNIX 및 Windows 호스트에 설치할 수 있습니다
호스트에 에이전트를 설치에 대한 대안으로 Zabbix는 SNMP, TCP와 ICMP 검사를 통한 모니터링에 대한 지원뿐만 아니라, IPMI, SSH, 텔넷 이상 및 사용자 지정 매개 변수를 사용하여이 포함되어 있습니다.
Zabbix 실시간 알림 메커니즘의 다양한 지원합니다. Zabbix의 아름다움은 XMPP 알림입니다!
URL – http://www.zabbix.com/
저자 – 알렉세이 Vladishev

5) Zenoss – Zenoss은 (Zenoss 코어) 오픈 소스 애플 리케이션, 서버, Zope 어플 리케이션 서버를 기반으로 네트워크 관리 플랫폼입니다.
URL – http://www.zenoss.com/

참고 -이 목록은 많은 IndianGNU 커뮤니티 회원의 개인적인 경험과 선택에 따라 달라집니다.

감사합니다,
아룬 Bagul

디스크로 RAM을 (물리적)를 사용하는 방법

디스크로 RAM을 (물리적)를 사용하는 방법

소개 –
그뒤로 성능을 얻기 위해, 실제 RAM은 매우 빠르고 일반 하드 디스크와 비교할 때 어떤 차이가 디스크 공간으로 사용할 수 있습니다.
따라서 디스크는 어떻게이 RAM을 사용할 수있다? 이 단계를 거치 지요.

아래 그림과 같이 당신이 디스크로 RAM을 탑재하려는 단계 1) 디렉터리를 만듭니다

루트 @ arunbagul : ~ # MKDIR-P / tmp를 / 램
루트 @ arunbagul : ~ # 혹시 / tmp를 / 램
루트 @ arunbagul : ~ #

2 단계) 마운트 지점에 마운트 램 즉, tmpfs “/ tmp를 / 램”디렉토리 –

루트 @ arunbagul : ~ # 마운트-t tmpfs-O 크기 = 불에 tmpfs / tmp를 / 램 /

* 안에 장착 확인?

루트 @ arunbagul : ~ # DF-H
파일 시스템 크기 사용 소용 사용 %는에 장착된
tmpfs 불에 0 불에 0% / tmp를 / 램

아래 그림과 같이 ** / etc / fstab에이 영구적으로 추가 항목을 마운트합니다.

루트 @ arunbagul : ~ # 고양이 / etc / fstab에

….

tmpfs / tmp를 / 램 tmpfs는 기본적으로, 크기 = 10m 0 0

루트 @ arunbagul : ~ #

– (이 fstab에에 언급된 모든 마운트 지점을 마운트합니다)이 사용하는 mount 명령을 탑재

루트 @ arunbagul : ~ # 마운트 –

감사합니다,
아룬 Bagul

IndianGNU.org – 4 주년!

IndianGNU.org – 4 주년!

모든님께

오늘, 우리는 4 주년을 축하! 우리는 성공적으로 4 년간 이수한 아직 완전한 속도로 증가! 그것은 당신의 지원, 공헌과 노력없이 단지 불가능한 상황이었습니다.

openlsm 프로젝트 ~

올해는 openlsm 힘든했고 우리는 12 월 2010 년 말까지 관리 패널 개발 버전을 출시한 것입니다. 우리는 두번째 이정표에서 더 많은 기대

건배,
IndianGNU.org

PERL CGI – 세션과 쿠키 하우투

PERL CGI – 세션과 쿠키 하우투

소개 –

거의 일년 전에, 나는 펄 CGI 응용 프로그램에서 세션 및 쿠키를 구현하기위한 많은 싸워. 그러니까 당신과 내 작품을 공유하는 생각.
난 내 방식으로 그것을 원한다면 …

가정은, 귀하의 웹 서버 예 : 아파치는 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

테스트하는 방법 네트워크 성능과 대역폭에

테스트하는 방법 네트워크 성능과 대역폭에

소개 –

네트워크 대기 시간과 대역폭이 통계에서 가장 관심이있을 가능성이 때 벤치 마크 네트워크. 대부분의 서비스 및 제품 광고를 가끔 대역폭에 초점을하더라도 대기 시간이 더 중요한 통계하실 수 있습니다.

** 대역폭이란 무엇입니까?

대역폭 (흑백) 컴퓨터 네트워크에서 네트워크 연결 또는 인터페이스에서 지원하는 데이터 전송 속도를 의미합니다. 바덴 뷔 템 베르크는 초당 비트 (bps)의 측면에서 측정됩니다.

네트워크 대기 시간 ** 무엇입니까?

지연 시간은 시스템에 경험이 시간 지연을 측정하기위한 것입니다. 시간 지연은 다른 한 지점에서 데이터 전송으로 관찰로 네트워크 지연 간단하게 정의됩니다. 네트워크 대기 시간에 기여하는 요인이 있습니다. 이들은, (연결 매체) 거리, 라우터 및 컴퓨터 하드웨어 지연 전송이 포함됩니다.

네트워크 성능과 대역폭을 테스트하는 데 사용되는 프로젝트 목록 –

1) bmon가 -, 그것은 기반 콘솔은 대역폭 모니터링 및 평가 견적 뷔 템 베르크 살
2) bwbar – 텍스트 및 그래픽의 대역폭 사용량 형식
3) bwm – 겨 – 대역폭 모니터 첸 (차세대 기반 콘솔 뷔 템 베르크 라이브
4) dstat – Dstat는 vmstat, iostat와 ifstat을 대신합니다.
5) iftop – 인터페이스에 대역폭 사용량은 기반 콘솔
6) iperf – 수행 네트워크 처리량 검사는 두 호스트를 내기
7) ifstat – 신고 인터페이스 통계
8) cbm이 – 색상 대역폭 미터, 기반 콘솔
9) etherape – 그래픽 네트워크 트래픽 브라우저
10) iptraf는 – 인터랙티브 다채로운 IP를 LAN을 모니터, 콘솔과 GUI 기반
11) netmrg – 이건 데몬 기반, MySQL을 지원, 장치에서 수집 데이터입니다.
12) nuttcp – 네트워크 성능 측정 도구
13) nepim

참고 그들 중 일부에 대한 rpm 또는 뎁 패키지는 사용할 수 없습니다 ~!

1 단계]하는 방법에 설치할 수 레드햇 / RHCE, CentOS 기반 시스템과 Dibian 기반 시스템?

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

** 우분투 –

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

단계 2] 이용 방법 – bmon을 bwm – 겨, 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 root@me:~# yum install netperf iperf nuttcp nepim lmbench
root@me:~# apt-get install  bmon bwbar bwm-ng dstat cbm etherape iftop iperf ifstat iptraf netmrg
67.93      8.17
0.00      0.00      0.00      0.00    106.77     13.70

하나의 호스트 (A)를 다른 호스트 및 클라이언트 (나)에에 ** 시작 “iperf”서버 – 두 호스트 사이의 네트워크 처리량을 측정합니다.

* 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

상위 7 ERP 및 CRM을 오픈 소스 소프트웨어

상위 7 ERP 및 CRM을 오픈 소스 소프트웨어

소개 –

무엇 전사적 자원 관리 (ERP)이란?

ERP는 자원, 자산, 금융 자원, 자료 및 인사를 관리하는 데 사용하는 통합 소프트웨어 시스템입니다.
그 목적은 조직의 모든 비즈니스 기능 사이의 정보의 흐름을 촉진하는 것입니다.

고객 관계 관리 (CRM을)은 무엇입니까?

CRM은 크게 고객, 고객 및 영업 잠재 고객과 회사의 상호 작용으로 인식되고 있습니다. 그것의 사용을 포함
, 정리 자동화, 및 활동, 마케팅, 고객 서비스 및 기술 지원 업무 (영업) 동기화 기술입니다.

1) Openbravo

Openbravo ERP는하에 배포됩니다 중소 기업을위한 웹 기반의 ERP 비즈니스 솔루션입니다
모질라 공개 라이센스에 따라 Openbravo 공중 사용 허가서.
홈페이지 – http://www.openbravo.com/

2) OpenERP

OpenERP, 판매, CRM을, 프로젝트 관리 등의 비즈니스 애플 리케이션의 오픈 소스 포괄적인 제품군입니다
창고 관리, 제조, 회계, 인사.
홈페이지 – http://www.openerp.com/

3) Fedena

Fedena는 레일 프레임 워크에 루비에서 개발한 오픈 소스 학교 관리 소프트웨어입니다. fedena 입장료, 학생 세부 사항에 관련된 모듈이 포함되어 뉴스, 시험 시간표 및 출석 관리, 사용자를 관리합니다.
홈페이지 – http://www.projectfedena.org/

4) JFire

JFireis 엔터 프라이즈 자원 계획과 고객 관계 관리 시스템. JFire 데스크톱 클라이언트와 기반 시스템의 Windows 및 Linux 운영 체제에 해당하는 클라이언트 – 서버입니다.
홈페이지 – http://www.jfire.net/

5) 아파치 OFBiz –

OFBiz는 ERP 시스템입니다. 그것은 통합하고 비즈니스 프로세스를 자동화하는 다양한 엔터 프라이즈 응용 프로그램을 제공합니다.
홈페이지 – http://ofbiz.apache.org/

6) 슈가 CRM을

슈가 CRM은 오픈 소스 소프트웨어를 CRP 선도하고 있습니다. 슈가 CRM은 내 개인적인 선택입니다!

홈페이지 – http://www.sugarcrm.com

7) VtigerCRM을

VtigerCRM는 최고의 ERP 및 CRM 웹 기반 소프트웨어와 매우 간단합니다. 나는 개인이 소프트웨어를 사용 해왔다. 그것은 많은 Addons있다. 홈페이지 – http://www.vtiger.com/

위키의 ERP 소프트웨어 목록을 참조하십시오 – http://en.wikipedia.org/wiki/List_of_ERP_software_packages을

감사합니다,
Arun Bagul

BASH 스크립트 ~ 예제로 배우는

BASH 스크립트 ~ 예제로 배우는

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

을 구성하는 방법 MySQL은 다중 마스터 복제

을 구성하는 방법 MySQL은 다중 마스터 복제

소개 ~

나도 오랫만에 MySQL은 다중 마스터 복제에 대한 글을 쓰기로 계획했다; 마지막으로 지금 시작하십시오!. 제발 “을 구성하는 방법 하나의 마스터”URL과 MySQL이 복제 문서를 참조하십시오 ~ http://www.indiangnu.org/2007/mysql-replication-one-master-multiple-slave/

* 내 모든 MySQL에 다중 마스터 복제 순수에 대한 다음과 같은 두 개의 변수를 기반으로 알려 보자. 그것은 복제 기술을 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

어디로 –
마스터 서버의 N = “니은 번째 번호를 마스터 (- 1 .. 그것을 2 이렇게 계속) 그것을 1 마스터 – 2 계속
우리의 경우 마스터 서버 (2 남 = “총 숫자지만, 높은 그렇게 우리는 새 마스터 서버를 쉽게 추가할 수 있도록이 값을 계속 더 나은)

로그인 노예 업데이 트 = “슬레이브 서버는 바이너리 자체는 마스터 서버에서 수신되는 모든 업데이 트를 로그에 기록하지 않습니다. 이 옵션은 슬레이브 업데이 트를 자사는 SQL 스레드에 의해 자신의 이진 로그에 로그인할 때 수행을 알려줍니다.

**이 MySQL과 최대의 모든 마스터 서버와 슬레이브 서버에서 실행되고 있는지 확인 –

어떻게 설정 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>

* 그래서 우리 모두를 구성하는 다중 마스터 복제 MySQL을 배웠습니다. 즐기십시오!

안부,
Arun Bagul

방법을 만들거나 RPM 패키지 빌드

방법을 만들거나 RPM 패키지 빌드

회사 소개 –

* “”rpmbuild 도구를 모두 빌드하는 데 사용됩니다 ..

1) 바이너리 패키지 ~ 소프트웨어를 설치하고 사용하는 스크립트를 지원. 그것은 응용 프로그램 구성 파일이 들어있는 모든 자세한 내용은 설치 및 지워 필요와 함께.
2) 소스 패키지 ~ 소스 코드, 패치 및 사양서 파일의 원래는 tar 압축된 파일이 포함되어있습니다.

* 어떤 RPM이 & RPM 패키지 관리자 무엇입니까?

RPM 패키지 관리자 (RPM이) 강력한 명령줄 꾸러미 관리 시스템을 설치할 수있는, 제거, 확인, 질의이며, 소프트웨어 패키지를 업데이 트.

RPM 패키지 파일 및 메타 아카이브의 구성 데이터를 설치 및 아카이브 파일을 지우는 데 사용됩니다. 메타 데이터 헬퍼 스크립트의 파일 특성을, 그리고 패키지에 대한 설명 정보가 포함되어있습니다.

* 당신이 세 가지를 지정해야합니다 RPM 패키지 빌드하려면 ~

응용 프로그램의 1) 출처 – 어떤 경우에, 당신은 소스 패키지 빌드 프로세스에서 사용되는 수정해야합니다.

2) 패치 – RPM을 당신이 그들에게 능력을 자동으로 패치를 적용할 수있습니다. 패치 문제가 대상 시스템에 특정 주소. 이것은 해당 디렉터리, 또는 교차 플랫폼은 갈등 해결에 응용 프로그램을 설치하려면 메이크 파일을 변경 포함될 수있습니다. 패치 환경에 적절한 컴파일에 필요한 만듭니다.

3) 제품 사양 파일 – 명세 파일을 RPM 패키지 구축 과정의 핵심입니다. 그것은 정보를 RPM을하여 지침뿐만 아니라 그것을 빌드하는 방법을 말하고 RPM을 빌드하는 데 필요한 패키지가 포함되어있습니다. 명세 파일에는 정확히 어떤 파일이 패키지의 일부이며, 그들이 어디 지시가 설치되어 있어야합니다.

** 제품 사양 파일 ~ 8 개 섹션으로 아래로 나누어져있습니다

) 서문 ~ 그 때 사용자가 패키지에 대한 정보가 표시됩니다 요청 정보가 포함되어있습니다. 이것은 소프트웨어의 버전 번호 등을 패키지의 기능 설명을 포함

b)는 준비 ~ 어디 패키지 건물의 실제 작업을 시작합니다. 마찬가지로 이름이 있듯이,이 섹션에 필요한 준비를하기 전에 소프트웨어를 실제로 만든 건물입니다. 필요한 경우 일반적으로, 이전 소스 소프트웨어를 구축 할 수 있는데, 그 준비 섹션에서 일어날 필요가있다. 이 섹션의 내용은 일반적인 쉘 스크립트가있습니다. 그러나, RPM을 쉽게 인생을 만들어 두 개의 매크로를 제공합니다. 하나의 매크로는 압축된 tar 파일의 압축을 풀고 수있는 소스가있는 디렉토리로 CD에있습니다. 다른 매크로를 쉽게 풀었 소스에 패치를 적용합니다.

C) 빌드 ~이 섹션에서는 쉘 스크립트로 구성되어있습니다. 그것은 어떤 명령을 수행하는 데 사용되는 사실, 또는 좀 더 복잡한 빌드 프로세스가 명령을 하나의 같은 소스를 컴파일하는 데 필요한이 필요합니다. 아무 매크로는이 섹션에서 사용할 수있습니다.

d)에 설치 ~이 섹션에서는 명령을 실제로 소프트웨어를 설치하는 데 필요한 수행하는 데 사용되는 섹션을 설치하는 쉘 스크립트가 들어있는.

전자) 설치 및 제거 스크립트 ~ 그것은 스크립트의 실행이 될 사용자의 시스템이 때, 실제로 패키지를 설치 또는 제거에 구성되어있습니다. RPM은 / 사후 설치 / 제거 패키지의 스크립트를 사전에 실행할 수있습니다.

f를) 확인 스크립트 ~ 그 사용자의 시스템에서 실행되는 스크립트. 때 RPM은 패키지의 적절한 설치를 확인한다 실행됩니다.

g) 클린 절 ~ 그 빌드 후 물건 스크립트를 정리할 수있습니다. 이후의 RPM이 정상적으로 좋은 일을 않기 때문에이 스크립트는 거의 사용되고 정리 대부분의 환경을 구축했다.

아) 파일 목록 ~ 파일의 패키지를 구성하는 것입니다 목록으로 구성되어있습니다. 또한, 매크로의 숫자는 설치 파일을 제어하는 특성뿐만 아니라, 파일이 문서가있습니다 나타내기 위해, 그리고 구성 정보를 포함하는 데 사용할 수있습니다. 파일 목록은 매우 중요합니다.

빌드 환경 구축을위한 *** RPM을 요구 ~

A] RPM을 빌드를 수행하는 디렉토리의 설정이 필요합니다. 그러나 디렉토리의 위치와 이름을 변경할 수있습니다. 기본 레이아웃은 아래와 같습니다 –

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

drwxr-xr-x 2 root root 4096 Aug 25  2007 SOURCES    => 그리고 아이콘 파일은 원본 소스 패치를 포함 8월 2일 루트 루트
drwxr-xr-x 2 root root 4096 Aug 25  2007 SPECS         => 일 루트 루트 사양의 파일이 포함되어있습니다
drwxr-xr-x 2 root root 4096 Aug 25  2007 BUILD        => 디렉토리는 소스를 풀었있습니다, & 소프트웨어 8월 2일 루트 루트 구축
drwxr-xr-x 8 root root 4096 May 28  2008 RPMS         => 바이너리 패키지를 포함하는 프로세스를 구축하여 만든 파일을
drwxr-xr-x 2 root root 4096 Aug 25  2007 SRPMS         => 루트 루트 소스 패키지를 포함하는 프로세스를 구축하여 만든 파일을

root@arunsb:~#

B 조] 몇 가지 글로벌 변수를 사용하는 RPM을 내보낼 필요 –

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

1 단계] (명세) 파일 사양 만들기 ~

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

* 어떻게 파일 목록은 어떻게 만듭니까?

파일 목록 만들기 설명서에 처리합니다. 내가 무슨 짓을 내 수동으로 설치 접두사를 디렉토리에서 파일 목록을 알게했다 아래와 같이 명령을 …

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

2 단계] 빌드 시작 ~

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

….
… ..

Checking for unpackaged file(s): /usr/lib/rpm/check-files %{buildroot}
Wrote: /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Wrote: /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 Dec  2 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 Dec  2 17:50 /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root@arunsb:/usr/src/redhat/SPECS#

* 소스 및 바이너리 패키지를 만든!

무슨에서 “일이 일어 났는지는 / usr / src에 / 레드햇 /”디렉토리에하자 **

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                         <= 소스는 여기에”openlsm.spec “규격 즉, 원본 파일의 지침을 빌드 일환으로 추출
root@arunsb:/usr/src/redhat# ls SOURCES/
openlsm – 0.99 – r45.tar.gz          <= ‘원래 openlsm – 0.99 – r45.tar.gz’소스 내로 복사한 파일을
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                <= 바이너리 RPM 패키지 생성!
root@arunsb:/usr/src/redhat# ls SRPMS/
openlsm-0.99-r45.src.rpm                 <= 소스 RPM 패키지를 만들어!
root@arunsb:/usr/src/redhat#

3 단계] 이제 패키지를 설치하고 테스트 ~

root@arunsb:/usr/src/redhat# cp RPMS/i386/openlsm-0.99-r45.i386.rpm  /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/
bin  contrib  etc  include  lib  sbin  scripts  share  var
root@arunsb:~#

** openlsm 서버를 시작 ~

root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat  start
* Starting openlsm admin server: openlsm
.                                                         [  OK  ]
root@arunsb:~#
root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat  status
openlsm (pid 21607) is running…
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  -qiv  openlsm-0.99-r45
Name        : openlsm                      Relocations: (not relocatable)
Version     : 0.99                              Vendor: IndianGNU.org & openlsm
Release     : r45                           Build Date: Wed 02 Dec 2009 05:50:54 PM IST
Install Date: Wed 02 Dec 2009 06:06:23 PM IST      Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group       : System Environment/Daemons    Source RPM: openlsm-0.99-r45.src.rpm
Size        : 14877918                         License: GPL
Signature   : (none)
Packager    : IndianGNU.org (http://www.indiangnu.org)
URL         : http://openlsm.sourceforge.net/
Summary     : openlsm Admin Server
Description :
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
root@arunsb:~#

** 참고 ~이 문서에서는 복사하는 방법을 워드 프로세서 마이크로 정의하는 방법에 대한 정보가 포함되어 있지 않습니다, man 페이지, 어떻게 permision 그리고 RPM을 옆에 문서에서이 주제를 다룰 것입니다 소유권 등의 설정 위치를 기본값으로합니다.

** 제발 영어 문서를 참조하십시오 ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

안부,
Arun Bagul

다중 사용자 컨퍼런싱 (뮤 – 컨퍼런스) Jabber를위한 (Jabberd2)

다중 사용자 컨퍼런싱 (뮤 – 컨퍼런스) Jabber를위한 (Jabberd2)

소개 ~

제발 / 구성 Jabberd2 … 설치의 다음 문서를 참조하십시오

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

요구 사항 ~

* 다음과 같은 패키지를 컴파일 뮤 컨퍼런스가 필요합니다 …

노트북 @ 루트 : ~ #는 apt – libglib2.0 – 0 libglib2.0 – dev에 설치 얻을
노트북 @ 루트 : ~ #는 apt – libidn11 libidn11 설치 얻을 – dev에
노트북 @ 루트 : ~ #는 apt – lib64expat1 lib64expat1 expat – dev에 설치 libexpat1 – dev에 liblua5.1 – expat – dev에 liblua5.1 – expat0 얻을

1 단계] 방법 “뮤 컴파일 – 컨퍼런스”-

* 다운로드 “뮤 – 컨퍼런스”/ 프로젝트 / 무 회의 / -은 https : / / gna.org URL을 다음에서

노트북 @ 루트 :는 / var / src에 # wget – c로 http://download.gna.org/mu-conference/mu-conference_0.8.tar.gz
노트북 @ 루트 :는 / var / src에 # 타르 xvfz 뮤 – conference_0.8.tar.gz
노트북 @ 루트 :는 / var / src에 # CD를 무 – conference_0.8 /
노트북 @ 루트 : / var/src/mu-conference_0.8 #

뮤 컴파일 * 컨퍼런스

노트북 @ 루트 : / var/src/mu-conference_0.8 만들 #
CD를 src /; 확인
확인 [1] : 입력 디렉토리`/ var/src/mu-conference_0.8/src ‘
CD를 jabberd이; 확인
확인 [2] : 입력 디렉토리`/ var/src/mu-conference_0.8/src/jabberd ‘

… ..

노트북 @ 루트 : / var/src/mu-conference_0.8 # $ 파요?
0
노트북 @ 루트 : / var/src/mu-conference_0.8 #

2 단계] 구성 뮤 – 컨퍼런스 –

* 이제 “Jabberd2 설치 디렉토리에 바이너리”MU에 복사 컨퍼런스 –

노트북 @ 루트 : ~ #은 cp / var/src/mu-conference_0.8/src/mu-conference / usr/local/jabberd-2.2.9/bin /
노트북 @ 루트 : ~ # chown 지껄임 : 지껄임 / usr/local/jabberd-2.2.9/bin/mu-conference
노트북 @ 루트 : ~ # 그래요 – 난 / usr/local/jabberd-2.2.9/bin/mu-conference
– rwxr – XR은 – x는 1 지껄 지껄 191904 2009년 10월 12일 18시 59분 / usr/local/jabberd-2.2.9/bin/mu-conference
노트북 @ 루트 : ~ #

노트북 @ 루트 : ~ # / usr/local/jabberd-2.2.9/bin/mu-conference 도움말
Jabber를 구성 요소를 런타임 – 0.2.4
(C) 2003에서 2004 사이 폴 커티스

/ usr/local/jabberd-2.2.9/bin/mu-conference : 잘못된 옵션 – ‘-‘
사용법 : 무 회의 [- B 조] [-] [- H 회]이야 [- d는 레벨] – c 파일
– B 조를 배경으로 데몬을 넣어
– 쇼 열려진에 디버그 메시지를들
– h이 도움말 인쇄
출력 디버그 수준을 설정할 d 개의 레벨
– c 파일을 설정 config 파일, 필수 인수
노트북 @ 루트 : ~ #

“”에 대한 뮤 컨퍼런스 * 스풀 디렉터리를 만듭니다. 무 회의 구성 요소를 어느 회의실에 정보를 저장하기 위해 스풀 디렉터리가 필요합니다.

노트북 @ 루트 : ~ # mkdir / usr/local/jabberd-2.2.9/var/spool
노트북 @ 루트 : ~ # chown 지껄임 : 지껄임 / usr/local/jabberd-2.2.9/var/spool

참고 ~ “빨리 지껄임 : Jabber를”사용자 / 그룹 Jabberd2 서버의 이름입니다.

* Jabberd2 설치 디렉토리의 설정 파일을 “뮤 – 컨퍼런스”를 복사하여 설정을 수정 –

노트북 @ 루트 : ~ #은 cp / var/src/mu-conference_0.8/muc-default.xml / usr/local/jabberd-2.2.9/etc/mu-conference.xml
노트북 @ 루트 : ~ # chown 지껄임 : 지껄임 / usr/local/jabberd-2.2.9/etc/mu-conference.xml
노트북 @ 루트 : ~ #

노트북 @ 루트 : ~ # vi의 / usr/local/jabberd-2.2.9/etc/mu-conference.xml

conf.laptop.ubuntu.me <이름> “/ 이름”
호스트 conf.laptop.ubuntu.me “/ 호스트”
<ip> localhost를 “/ IP를”
<port>는 5347 “/ 포트”
<secret>의 비밀 “/의 비밀”

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

<loglevel> 255 “/ loglevel”

<sadmin>
<user> admin@laptop.ubuntu.me “/ 사용자”
“/ sadmin”


… ..
노트북 @ 루트 : ~ #

* 이제 다음 Jabberd2 서버를 다시 시작 “로 시작 뮤 – 컨퍼런스”..

노 트북 @ 루트 : ~ #셔서 – 난 Jabber를하고 – s / 빈 / bash에 – c 옵션 “/ usr/local/jabberd-2.2.9/bin/mu-conference – B 호 – c 옵션 / usr/local/jabberd-2.2.9 / 등 / 뮤 “conference.xml
노트북 @ 루트 : ~ #

* 제발 문서 init을 시작 스크립트, 즉 위의 ‘확인 / etc/init.d/jabberd2’무 회의 시작됩니다.

노트북 @ 루트 : ~ # 꼬리를 – f 옵션 / usr/local/jabberd-2.2.9/var/log/mu-conference.log
월 10월 12일 19시 19분 40초 2009 main.c : 168 (주) : Jabber를 구성 요소를 런타임 – 0.2.4 시작.
월 10월 12일 19시 19분 40초 뮤 2009 컨퍼런스 : [conference.c : 1076 (회의)] 무 회의 중입니다 – 서비스 자료 ID : conf.laptop.ubuntu.me

월 10월 12일 19시 19분 40초 뮤 2009 컨퍼런스 : [conference.c : 1157 (회의)] sadmin admin@laptop.ubuntu.me 추가
월 10월 12일 19시 19분 40초 뮤 2009 컨퍼런스 : [xdb.c : 319 (xdb_rooms_get)] xdb에서 방을 잡아 요청
월 10월 12일 19시 19분 40초 뮤 2009 컨퍼런스 : [xdb.c : 418 (xdb_rooms_get)] .. 줄넘기 결과가없습니다
월 10월 12일 19시 19분 40초 2009 main.c : 219 (주) : 메인 루프 시작.
월 10월 12일 19시 19분 40초 2009 jcr_base_connect.c : 34 () jcr_socket_connect : localhost로 연결을 시도 : 5347
월 10월 12일 19시 19분 40초 2009 jcr_base_connect.c : 87 (jcr_send_start_stream) : 영업 XML 스트림 : 173 바이트 전송
월 10월 12일 19시 19분 40초 2009 jcr_main_stream_error.c : 50 (jcr_main_new_stream) : 서버 스트림을 연결.
월 10월 12일 19시 19분 40초 2009 jcr_deliver.c : 51 (jcr_queue_deliver) : 패킷이 배달 스레드 시작.

완료!

3 단계] 시험 “뮤 – 컨퍼런스”-

* “에서 ‘서비스 체험’및 객실 목록을 확인에 대한 PSI는”IM 클라이언트, 고토 ‘일반’메뉴를 누른 다음 ..
* ” ‘방리스트’에 피진”IM 클라이언트, 고토 ‘도구’를 누른 다음 섹션에서는.

일단 당신이 ‘무 회의’서버가 감지되었습니다. ‘클릭하십시오 + 피진의들입니다’메뉴의 ‘채팅’에서 추가합니다. ‘에 대한 PSI는 다음의 경우에는 회원 가입 Groupchat’, ‘일반’메뉴에서 “”다음에 가입 컨퍼런스 / 방 추가 ‘Confernece 룸’.

즐기다,
Arun Bagul