Category: सामान्य जानकारी

सामान्य जानकारी

शीर्ष 5 मुक्त स्रोत नेटवर्क और पर्फॉर्मेन्स की निगरानी + चेतावनी प्रणाली

शीर्ष 5 मुक्त स्रोत नेटवर्क और पर्फॉर्मेन्स की निगरानी + चेतावनी प्रणाली

परिचय – मॉनिटरिंग अपने नेटवर्क और विभिन्न अनुप्रयोगों के अपने bussiness का सबसे महत्वपूर्ण हिस्सा है. तो निगरानी उपकरण का चयन महत्वपूर्ण है और सबसे महत्वपूर्ण कार्य है, क्योंकि आप पूरी तरह से जब भी कुछ गलत हो जाता है सूचित करने के लिए इस उपकरण पर जवाब देंगे!

1) Nagios – एक लोकप्रिय खुला स्रोत कंप्यूटर सिस्टम मॉनिटर, नेटवर्क निगरानी और बुनियादी सुविधाओं की निगरानी सॉफ्टवेयर अनुप्रयोग है. Nagios पूरी निगरानी और सर्वर, स्विच, अनुप्रयोग, और सेवाओं के लिए चेतावनी प्रदान करता है और वास्तविक उद्योग के रूप में माना जाता है
मानक. 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 सरल खोल स्क्रिप्ट है और 6556 टीसीपी xinetd डेमॉन का उपयोग बंदरगाह करने के लिए इस स्क्रिप्ट को बाध्य है. Check_MK में निम्नलिखित सुविधाएँ भी प्रदान करता है.
Check_MK समर्थन गतिशील Nagios चेकों का विन्यास पीढ़ी सूची,.
Livestatus – एक सुंदर प्लगइन के साथ संवाद करने के लिए Nagios (यूनिक्स गर्तिका)
Nagios के एकाधिक साइट जीयूआई से एक वेब आधारित इंटरफेस मॉनिटर कई Nagios
कई सिस्को स्विच, routers, और NetApp filers के रूप में अच्छी तरह के लिए SNMP का समर्थन करता है और स्वचालित सेवा detections.
Nagios के एकाधिक साइट जीयूआई – Check_MK Nagios प्लगइन का एक और सौंदर्य कई Nagios केवल एक वेब आधारित इंटरफेस का उपयोग montoring है. यह वेब आधारित इंटरफेस usese Check_MK Livestatus प्लगइन Nagios डेटा प्राप्त करने के लिए.
Check_MK – http://mathias-kettner.de/
URL – http://www.nagios.org/
लेखक – एतान  गलस्टड

2) ganglia – ऐसे समूहों और ग्रिड के रूप में उच्च प्रदर्शन कंप्यूटिंग प्रणालियों के लिए एक परिमाप्य वितरित प्रणाली की निगरानी उपकरण है. यह उपयोगकर्ता को दूर से नजर रखी जा रही हैं जो सभी मशीनों के लिए जीना या ऐतिहासिक आँकड़ों (जैसे कि CPU लोड औसत या नेटवर्क के उपयोग के रूप में) को देखने के लिए अनुमति देता है. आवेदन या टीम क्लस्टर वातावरण में बुद्धिमान संसाधन उपयोग करने के लिए बाहर का पता लगाने के ganglia बहुत उपयोगी है. हम प्रत्येक समूह या क्लस्टर में मशीन है जो सभी आँकड़े एकत्र पर gmond (ganglia की निगरानी डेमॉन) स्थापित है.
gmetad (ganglia मेटाडाटा डेमॉन) के लिए एक समूह में machined किया या क्लस्टर जो निर्दिष्ट gmond सर्वर से डेटा एकत्रित करेगा पर स्थापित की जरूरत है.
URL – http://ganglia.info/

3) Cacti – एक खुला स्रोत, वेब आधारित रेखांकन उपकरण (दृश्यपटल RRDtool के लिए) है. Cacti पूर्व निर्धारित अंतराल और परिणामी डेटा ग्राफ पर जनमत सर्वेक्षण सेवाओं के लिए एक उपयोगकर्ता की अनुमति देता है. यह आम तौर पर CPU लोड और नेटवर्क बैंडविड्थ उपयोग के रूप में मैट्रिक्स के ग्राफ समय श्रृंखला डेटा के लिए प्रयोग किया जाता है. Cacti स्विच SNMP के माध्यम से, routers जैसे हार्डवेयर उपकरणों की निगरानी के लिए बेहतर है.
URL – http://www.cacti.net/

4) Zabbix यह नजर रखने के लिए और विभिन्न नेटवर्क सेवाओं, सर्वर, और अन्य नेटवर्क हार्डवेयर की स्थिति पर नज़र रखने के लिए डिज़ाइन किया गया है. यह MySQL, PostgreSQL, SQLite, Oracle या आईबीएम DB2 का उपयोग करता है डेटा स्टोर. इसके बैकेंड सी में लिखा है और वेब दृश्यपटल PHP में लिखा है.
Zabbix कई निगरानी विकल्प प्रदान करता है. एक Zabbix एजेंट UNIX और Windows मेजबान पर स्थापित किया जा सकता है CPU लोड, नेटवर्क के उपयोग, डिस्क स्थान, आदि के रूप में इस तरह के आँकड़ों की निगरानी
मेजबान पर एक एजेंट स्थापित करने के लिए एक विकल्प के रूप में, Zabbix निगरानी के लिए SNMP, टीसीपी और ICMP चेक के माध्यम से समर्थन, के रूप में के रूप में अच्छी तरह से में IPMI, SSH, टेलनेट पर और कस्टम मापदंडों का उपयोग भी शामिल है.
Zabbix वास्तविक समय अधिसूचना तंत्र की एक किस्म का समर्थन करता है. Zabbix की सुंदरता XMPP सूचनाएं है!
URL – http://www.zabbix.com/
लेखक एलेक्सी  व्लॅडिशेव

5) Zenoss – Zenoss (Zenoss कोर) एक खुला स्रोत आवेदन, सर्वर, और नेटवर्क प्रबंधन Zope आवेदन सर्वर पर आधारित मंच है.
URL – http://www.zenoss.com/

नोट  – इस सूची में व्यक्तिगत अनुभव और कई IndianGNU समुदाय के सदस्यों की पसंद पर आधारित है.

शुक्रिया,
अरुण बागूल

रैम (भौतिक) का डिस्क के रूप में उपयोग

रैम (भौतिक) का डिस्क के रूप में उपयोग

परिचय –

रॅम डिस्क का अच्छा उपयोग डिस्क के रूप मैं किया जा सकता है. रॅम डिस्क  सामान्य हार्ड डिस्क की तुलना से  बहुत तेज  है.
मैं रॅम का डिस्क जैसा उपयोग कैसे कर सकता हू? है? इस आर्टिकल के माध्यम से जानो…

चरण 1) निर्देशिका का निर्माण के रूप में नीचे दिखाया गया है, जहां आप डिस्क के रूप में राम माउंट करना चाहते हैं

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

चरण 2) रॅम डिस्क (tmpfs) को  /tmp/ram माउंट पॉइंट पर कैसे  माउंट करे –

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

* जांच पर नहीं रखा?

root@arunbagul:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  10M     0   10M   0% /tmp/ram

** /etc/fstab में यह स्थायी रूप से जोड़ने प्रविष्टि माउंट के रूप में नीचे दिखाया गया है.

root@arunbagul:~#  cat /etc/fstab

….

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

root@arunbagul:~

– इस का उपयोग करें  माउंट माउंट (यह सभी माउंट fstab में वर्णित माउंट होगा)

root@arunbagul # mount -a

शुक्रिया,
अरुण बागुल

IndianGNU.org – चौथी वर्षगांठ!

IndianGNU.org – चौथी वर्षगांठ!

प्रिय दोस्तो,

आज, हम चौथी सालगिरह मना रहे हैं! हमने सफलतापूर्वक चार साल पूरा कर लिया है और अभी भी पूरी रफ्तार के साथ बढ़ रहे हैं! यह आपकी सहायता, योगदान और कड़ी मेहनत के बिना केवल असंभव था.

openlsm परियोजना ~

वर्ष openlsm के लिए कठिन था और हम दिसम्बर, 2010 के अंत तक व्यवस्थापक पैनल विकास के संस्करण शुरू करंगे. सेकेंड माइलस्टोन से हम बहुत उम्मीद कर रहे हैं.

चीयर्स,
IndianGNU.org

Perl CGI – सेशन और कुकी हाउटू

Perl CGI – सेशन और कुकी हाउटू

परिचय –

लगभग 1 साल पहले, मैं पर्ल 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

केसे करना है नेटवर्क और बैंडविड्थ का परीक्षण

केसे करना है नेटवर्क और बैंडविड्थ का परीक्षण

परिचय –

विलंबता नेटवर्क और बैंडविड्थ दो सबसे हित के होने की संभावना मीट्रिक्स हैं जब आप बेंचमार्क एक नेटवर्क. हालांकि अधिकांश सेवा और उत्पाद विज्ञापन समय पर बैंडविड्थ, पर केंद्रित एक अधिक विलंबता मीट्रिक महत्वपूर्ण हो सकता है.

** क्या बैंडविड्थ है?

बैंडविड्थ (BW) कंप्यूटर नेटवर्किंग में डेटा एक नेटवर्क कनेक्शन या अंतरफलक के द्वारा समर्थित दर को दर्शाता है. BW प्रति सेकंड बिट (bps) के संदर्भ में मापा जाता है.

** क्या नेटवर्क विलंबता है?

विलंबता समय में देरी का एक उपाय एक प्रणाली में अनुभव होता है. नेटवर्क विलंबता बस के रूप में समय में देरी एक बिंदु से डाटा संचारित रूप में एक और करने के लिए मनाया परिभाषित किया गया है. वहाँ कारकों की है कि नेटवर्क विलंबता में योगदान का एक नंबर रहे हैं. इन ट्रांसमिशन में शामिल हैं (संपर्क के माध्यम), दूरस्थ Routers, और कंप्यूटर हार्डवेयर देरी.

नेटवर्क  और बैंडविड्थ का परीक्षण करने के लिए परियोजनाओं (टूल्स) की सूची –

1) bmon – बैंडविड्थ की निगरानी और, यह आधारित सांत्वना है दर अनुमानक, BW रहते हैं
2) bwbar – पाठ और ग्राफ़िकल में बैंडविड्थ उपयोग प्रारूप
) BWM-एनजी 3 – बैंडविड्थ की निगरानी एनजी (अगली पीढ़ी, BW रहते हैं, आधारित सांत्वना
4) dstat – Dstat vmstat iostat, और ifstat के लिए एक प्रतिस्थापन है.
5) iftop – एक अंतरफलक पर बैंडविड्थ उपयोग, आधारित सांत्वना
6) iperf – प्रदर्शन नेटवर्क throughput परीक्षणों दो मेजबान शर्त
7) ifstat – रिपोर्ट इंटरफ़ेस सांख्यिकी
8) सीबीएम – रंग बैंडविड्थ मीटर, आधारित सांत्वना
9) etherape – ग्राफिकल नेटवर्क यातायात ब्राउज़र
10) iptraf – इंटरएक्टिव रंगीन आईपी लैन मॉनिटर कंसोल, और GUI आधारित
11) netmrg – यह आधारित डेमॉन, mySQL समर्थन, उपकरणों से इकट्ठा डेटा है.
12) nuttcp – नेटवर्क प्रदर्शन मापन उपकरण
13) nepim

नोट उनमें से कुछ के लिए rpm या देब संकुल ~ उपलब्ध नहीं हैं!

कदम 1]  RedHat / RHCE, CentOS और Dibian आधारित प्रणाली पर स्थापित करने के लिए  –

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

** Ubuntu –

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

कदम 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     67.93      8.17
0.00      0.00      0.00      0.00    106.77     13.70

** “iperf” – होस्ट (ए) और होस्ट (ब) सर्वर पर, दो मेजबान के बीच नेटवर्क throughput को मापने के लिए.

* 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

धन्यवाद,
अरुण

टॉप 7 ईआरपी और सीआरएम मुक्त स्रोत सॉफ्टवेयर

टॉप 7 ईआरपी और सीआरएम मुक्त स्रोत सॉफ्टवेयर

परिचय –

क्या है एंटरप्राइज़ संसाधन योजना (ईआरपी) ?

ईआरपी एक एकीकृत सॉफ्टवेयर के लिए संसाधनों, संपत्ति, वित्तीय संसाधनों, सामग्री और मानव संसाधन प्रबंधन प्रणाली का इस्तेमाल किया है.
इसका उद्देश्य संगठन के सभी व्यावसायिक कार्यों के बीच सूचना के प्रवाह की सुविधा है.

ग्राहक संबंध प्रबंधन (सीआरएम) क्या है?

सीआरएम एक मोटे तौर पर ग्राहक, ग्राहकों और बिक्री की संभावनाओं के साथ कंपनी की बातचीत के रूप में मान्यता प्राप्त है. इसे का उपयोग करना शामिल है
को व्यवस्थित करने, स्वचालित, और व्यापार (बिक्री) सिंक्रनाइज़ गतिविधियों, विपणन, ग्राहक सेवा, और तकनीकी सहायता प्रौद्योगिकी.

1) Openbravo –

Openbravo ERP छोटे और मध्यम आकार की कंपनियों के लिए एक वेब आधारित समाधान है कि व्यापार ईआरपी के तहत जारी की है
Openbravo पब्लिक लाइसेंस, मोज़िला पब्लिक लाइसेंस पर आधारित है.
यूआरएल – http://www.openbravo.com/

2) OpenERP

OpenERP बिक्री, सीआरएम, परियोजना प्रबंधन सहित व्यापार आवेदनों की एक खुला स्रोत व्यापक सूट है,
गोदाम प्रबंधन, विनिर्माण, लेखा, मानव संसाधन.
यूआरएल – http://www.openerp.com/

3 ) Fedena

Fedena एक खुला स्रोत स्कूल प्रबंधन पटरियों पर रूबी पर ढांचा विकसित सॉफ्टवेयर है. fedena प्रवेश, छात्र विवरण से संबंधित मॉड्यूल, जिसमें उपयोगकर्ताओं को प्रबंधित, समाचार, परीक्षा समय सारिणी, और उपस्थिति की व्यवस्था करें.
यूआरएल – http://www.projectfedena.org/

4) JFire

JFireis एक Enterprise संसाधन योजना और ग्राहक संबंध प्रबंधन प्रणाली. JFire क्लाइंट सर्वर डेस्कटॉप ग्राहक के साथ आधारित सिस्टम विंडोज और लिनक्स ओएस के लिए उपलब्ध है.
यूआरएल – http://www.jfire.net/

5) अपाचे OFBiz –

OFBiz ईआरपी प्रणाली है. यह उद्यम अनुप्रयोगों है कि एकीकृत और व्यवसाय प्रक्रियाओं के कई को स्वचालित रूप से प्रदान करता है.
यूआरएल – http://ofbiz.apache.org/

6) SugarCRM

SugarCRM सीआरपी ओपन सोर्स सॉफ्टवेयर में अग्रणी है. SugarCRM मेरी निजी पसंद है!

यूआरएल – http://www.sugarcrm.com

7) VtigerCRM

VtigerCRM बहुत आसान है और सबसे अच्छा ERP और सीआरएम वेब आधारित सॉफ्टवेयर. मैं व्यक्तिगत इस सॉफ्टवेयर का इस्तेमाल किया है. यह कई Addons है. यूआरएल – http://www.vtiger.com/

विकी पर ईआरपी सॉफ्टवेयर की सूची देखें – http://en.wikipedia.org/wiki/List_of_ERP_software_packages

धन्यवाद,
अरुण बागूल

Bash Shell ~ उदाहरण द्वारा सीखना

Bash Shell ~ उदाहरण द्वारा सीखना

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

कैसे कॉन्फ़िगर करना है multi master MySQL replication

कैसे कॉन्फ़िगर करना है multi master MySQL replication

परिचय ~

मैं लंबे समय से multi master MySQL replication पर लेख लिखने की योजना बना रहा था, आखिरकार अब शुरू किया!  कृपया कर के “MySQL replication with one master” कॉन्फ़िगर  करने  के लिए  निम्न यूआरएल का प्रयोग  करे  ~ http://www.indiangnu.org/2007/mysql-replication-one-master-multiple-slave/

* मुझे आप सभी को सूचित  करना  चाहता हू की  “multi master MySQL replication” पूर्णतः दोन वेरियबल पर आधारित है.  इसका MySQL replication तकनीक के साथ कोई संबंध नही है…

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

mysql>

** आवश्यकताओं ~

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)

** हमें समझ ना है की यह कैसे काम करता है?

* 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) );

** रिकॉर्ड अभी जोड़ें  ~

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>

** “auto_increment_increment” और  “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    => इस ‘auto_increment “विशेषता के आधार स्तम्भ के लिए मूल्य है (कृपया ऊपर के उदाहरण देखें)
auto_increment_increment => इस स्तंभ के लिए वेतन वृद्धि “auto_increment” विशेषता के साथ मूल्य है

** यदि आप मेज दोनों गठबंधन (master-1 और master-2) अंतिम टेबल इस तरह से दिखेगा ~

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>

** इस  तरह से  multi master replication काम करता है….

auto_increment_offset=Nth master server
auto_increment_increment=M

कहाँ —
N = nth number of master server (on master-1 keep it 1 and on master-2 keep it 2 and so on..)
M = Total number of Master Server (2 in our case but better to keep this value high so that we can add new master server easily)

log-slave-updates => Slave server does not log to its own binary log any updates that are received from a Master server. This option tells the slave to log the updates performed by its SQL thread to its own binary log.

** यकीन है कि MySQL चल रहा है और सभी master सर्वर और slave सर्वर पर…

कसे सेटप करना है multi master MySQL replication? –

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) स्रोत पैकेज ~ स्रोत कोड, पैच और विशिष्टता फ़ाइल के मूल संकुचित टार फ़ाइल है.

* RPM और RPM संकुल प्रबंधक क्या है?

RPM संकुल प्रबंधक (RPM) एक शक्तिशाली कमांड लाइन पैकेज प्रबंधन प्रणाली स्थापित करने में सक्षम, uninstalling, सत्यापित करने, querying है, और सॉफ्टवेयर संकुल अद्यतन.

RPM संकुल फाइल और मेटा का एक संग्रह शामिल हैं, डेटा को स्थापित करने और संग्रह फ़ाइलें मिटा करते थे. Meta-डेटा सहायक लिपियों, फ़ाइल गुण, और पैकेज के बारे में वर्णनात्मक जानकारी भी शामिल है.

* RPM संकुल आप को तीन बातें निर्दिष्ट करने की आवश्यकता का निर्माण करने के लिए ~

आवेदन पत्र के स्रोत) 1 – किसी भी मामले में, आप संकुल निर्माण की प्रक्रिया में इस्तेमाल स्रोतों को संशोधित नहीं होना चाहिए.

2) पैच – RPM को आप के लिए स्वचालित रूप से उन से पैच लागू करने की क्षमता देता है. पैच एक लक्ष्य प्रणाली को विशेष मुद्दा पते. इस makefiles बदलने के लिए उचित निर्देशिकाओं, या पार से हल करने में आवेदन मंच संघर्ष स्थापित शामिल हो सकते हैं. पैच उचित संकलन के लिए आवश्यक वातावरण पैदा करते हैं.

) 3 विशिष्टता फाइल – विनिर्देशन फ़ाइल RPM संकुल के निर्माण की प्रक्रिया के दिल में है. यह RPM के लिए आवश्यक के लिए पैकेज का निर्माण, साथ ही साथ यह कह RPM को कैसे बनाने के लिए निर्देशों की जानकारी शामिल है. विनिर्देशन फ़ाइल भी तय कर वास्तव में क्या फ़ाइलें पैकेज का हिस्सा हैं, और वे कहाँ स्थापित किया जाना चाहिए.

** विशिष्टता फाइल ~ में 8 के रूप में नीचे दिखाया गया वर्गों को विभाजित है

क) प्रस्तावना ~ जानकारी प्रदर्शित होगा जब उपयोगकर्ता पैकेज के बारे में जानकारी का अनुरोध शामिल हैं. यह है पैकेज समारोह का विवरण शामिल है, सॉफ़्टवेयर के संस्करण की संख्या आदि होगा

ख) ~ तैयारी जहां एक पैकेज के निर्माण की वास्तविक काम शुरू होता है. के रूप में नाम का अर्थ है, इस भाग है, जहां आवश्यक तैयारी सॉफ्टवेयर के वास्तविक निर्माण से पहले किया जाता है. सामान्य में, यदि कुछ भी जरूरत है सूत्रों के कुछ किया जाना सॉफ्टवेयर का निर्माण करने से पहले, यह तैयारी अनुभाग में होने की जरूरत है. इस खंड की सामग्री को एक साधारण खोल स्क्रिप्ट है. हालांकि, RPM को दो मैक्रोज प्रदान करता है जीवन को आसान बना. एक स्थूल एक संकुचित टार फ़ाइल खोलना और स्रोत निर्देशिका में सीडी कर सकते हैं. अन्य स्थूल आसानी से unpacked सूत्रों के पैच लागू होता है.

ग) बनाएँ ~ यह खंड एक खोल स्क्रिप्ट के होते हैं. यह जो भी आज्ञा पालन किया जाता है वास्तव में बनाने के लिए एक तरह के सूत्रों कमान संकलन, या और अगर इस प्रक्रिया को जटिल बनाने की आवश्यकता है यह आवश्यकता है. कोई इस अनुभाग में उपलब्ध मैक्रोज हैं.

घ) स्थापित ~ यह खंड भी एक खोल स्क्रिप्ट, अनुभाग स्थापित करने वाले के लिए वास्तव में सॉफ्टवेयर स्थापित करने की आवश्यकता आज्ञा पालन किया जाता है.

ङ) स्थापित करें और स्थापना रद्द करें लिपियों ~ यह स्क्रिप्ट के होते हैं कि भाग जाएगा, प्रयोक्ता की व्यवस्था है, जब पैकेज वास्तव में स्थापित या हटा दिया जाता है पर. RPM एक स्क्रिप्ट पूर्व निष्पादित / पोस्ट स्थापना / पैकेज के हटाने कर सकते हैं.

च) सत्यापित करें स्क्रिप्ट ~ स्क्रिप्ट है कि उपयोगकर्ता के सिस्टम पर मार डाला है. यह मार डाला है जब RPM है पैकेज उचित स्थापना की पुष्टि.

छ) स्वच्छ धारा ~ स्क्रिप्ट है कि चीजों के निर्माण के बाद साफ कर सकते हैं. यह कहानी शायद ही कभी इस्तेमाल किया है, क्योंकि RPM को आम तौर पर एक अच्छा काम करता है सबसे स्वच्छ वातावरण बनाने में.

ज) फाइल की सूची ~ फ़ाइलों की एक सूची है कि पैकेज शामिल होंगे शामिल है. इसके अतिरिक्त, मैक्रोज के कई गुण जब स्थापित फ़ाइल नियंत्रण किया जा सकता है, के रूप में अच्छी तरह के रूप में निरूपित करने के लिए जो फाइल दस्तावेज हैं, और जो कॉन्फ़िगरेशन जानकारी होती है. फाइल की सूची बहुत महत्वपूर्ण है.

माहौल बनाने के लिए *** है RPM आवश्यकता ~

A] RPM निर्देशिका का एक सेट की आवश्यकता के लिए प्रदर्शन का निर्माण. जबकि ‘निर्देशिका स्थानों और नाम बदला जा सकता है. डिफ़ॉल्ट लेआउट नीचे दिखाया गया है —

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

drwxr-xr-x 2 root root 4096 Aug 25  2007 SOURCES  => मूल स्रोत, पैच होता है, और आइकन फ़ाइलें अगस्त
drwxr-xr-x 2 root root 4096 Aug 25  2007 SPECS    => अगस्त x विनिर्देशन फ़ाइलें हैं
drwxr-xr-x 2 root root 4096 Aug 25  2007 BUILD    => निर्देशिका में सूत्रों unpacked रहे हैं, और सॉफ्टवेयर अगस्त x बनाया गया है
drwxr-xr-x 8 root root 4096 May 28  2008 RPMS      => द्विपदीय संकुल को समाहित x बनाने की प्रक्रिया के द्वारा बनाई गई फ़ाइलें
drwxr-xr-x 2 root root 4096 Aug 25  2007 SRPMS      => अगस्त x स्रोत पैकेज में शामिल हैं प्रक्रिया के निर्माण के द्वारा बनाई गई फ़ाइलें

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

….
… ..

Unpackaged फ़ाइल (s के लिए जाँच हो रही है): usr / lib / rpm / जांच% फ़ाइलें buildroot ()
ने लिखा: usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm /
ने लिखा: usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm /
arunsb @ जड़: / usr / src redhat / / चश्मा # $ गूंज?
0

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/redhat/ निर्देशिका”

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

** नोट ~ यह लेख जानकारी कैसे माइक्रो परिभाषित करने के लिए, कैसे डॉक्स नकल पर नहीं शामिल करता है, आदमी पृष्ठों डिफ़ॉल्ट स्थान को, कैसे permision और स्वामित्व आदि मैं RPM पर अगले लेख में इस विषय को कवर किया जाएगा सेट के लिए.

** कृपया अंग्रेजी लेख का उल्लेख ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

सादर,
Arun Bagul

IndianGNU.org-तीसरी सालगिरह!

IndianGNU.org-तीसरी सालगिरह!

प्रिय अखिल,

आज, हम तीसरी वर्षगांठ मना रहे हैं!. हम सफलतापूर्वक ओपन सोर्स और मुक्त सॉफ्टवेयर सामाजिक आंदोलन में योगदान के तीन साल पूरे कर लिए हैं. मैं बहुत यकीन है कि हमारे अस्तित्व और योगदान को मान्यता और बढ़ावा कई ओपन सोर्स और स्वतंत्र सॉफ़्टवेयर योगदानकर्ता (गुरु) द्वारा रही है. यह आपका समर्थन, योगदान और मेहनत के बिना केवल असंभव था.

हम ब्लॉगिंग के साथ शुरू किया, हमारे ज्ञान, विचारों और भी समस्याओं का साझा! भी. यह हमारी मदद के लिए नई प्रौद्योगिकियों, समस्या को सुलझाने के कौशल सीखने और कई चीजें है.

openlsm परियोजना ~

openslm-0.99 विकास मंच 10 जून 2009 को जारी की गई. हम उपयोगकर्ताओं से मिला सकारात्मक प्रतिक्रिया, समुदाय के सदस्यों और अन्य मुक्त स्रोत समुदायों. कृपया अधिक जानकारी के लिए लेख का उल्लेख http://www.indiangnu.org/2009/openlsm-099-released/

चीयर्स,
IndianGNU.org