Dec
31
Posted on 31-12-2009
Filed Under (일반 정보) by Arun Bagul

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

Similar Posts:

Be Sociable, Share!
(2) Comments    Read More   

Comments

Sandy on 10 7월, 2011 at 3:18 오후 #

I love reading these articles because they’re short but inofmrative.


plumbing east bay community services livermore ca on 17 10월, 2014 at 1:01 오후 #

I am regular visitor, how are you everybody? This post posted at this web site is
actually nice.


Post a Comment
Name:
Email:
Website:
Comments:

Dec
09
Posted on 09-12-2009
Filed Under (일반 정보) by Arun Bagul

소개 ~

나도 오랫만에 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

Similar Posts:

Be Sociable, Share!
(0) Comments    Read More   
Post a Comment
Name:
Email:
Website:
Comments:

Dec
02
Posted on 02-12-2009
Filed Under (일반 정보) by Arun Bagul

회사 소개 –

* “”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

Similar Posts:

Be Sociable, Share!
(0) Comments    Read More   
Post a Comment
Name:
Email:
Website:
Comments:

소개 ~

제발 / 구성 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

Similar Posts:

Be Sociable, Share!
(0) Comments    Read More   
Post a Comment
Name:
Email:
Website:
Comments:

Oct
11

회사 소개 –

“Attansic 기술 공사 940 기가 비트 이더넷 Adapte”네트워크 (NIC를) 카드 또는 어댑터 RHEL4에 의해 (레드햇) 시스템은 감지되지됐다. 난 장치를 감지 kudzu 및 기타 명령을 실행,하지만 사용 했어요. 그래서 결국 내 네트워크 카드에 대한 드라이버를 설치할 필요가 …

단계 1] 장치 상태 (네트워크 카드) –

하드웨어 conf의 파일에서 장치 상태 아래를 참조하십시오 * ~ “을 / etc / sysconfig / hwconf”
* Attansic 기술 공사 940 기가 비트 이더넷 어댑터를 감지하지 – 알 수없는 장치 8226

03:00.0 이더넷 컨트롤러 : Attansic 기술 공사 940 기가 비트 이더넷 어댑터 (돌림 b0)
서브 시스템 : 자세히 Computer는 : 알 수없는 장치 8226
제어 : I/O- 가상 메모리 + BusMaster + SpecCycle – MemWINV – VGASnoop – ParErr – 스테핑 – SERR + FastB2B –
상태 : 총액 + 66MHz – UDF로 FastB2B – ParErr – DEVSEL = 빠른 “TAbort -“TAbort – <MAbort- “SERR +”PERR –
지연 : 0, 캐시 라인 크기 10
인터럽트 : IRQ를 201 핀 라우팅

…..

[바탕 화면 @ 루트 ~] # lspci

03:00.0 이더넷 컨트롤러 : Attansic 기술 공사 940 기가 비트 이더넷 어댑터 (돌림 b0)

…..
[바탕 화면 @ 루트 ~] # lspci – n을

03:00.0 클래스 0200 : 1969:1048 (돌림 b0)

…..
[바탕 화면 @ 루트 ~] #

* venderID & DeviceID “1969:1048 “…. 위의 다운로드 드라이버가 있는지 확인하십시오

2 단계] 다운로드 및 소스 추출 –

여기에서 첫째, 공급 업체 * 드라이버 다운로드

ftp://ftp.hogchain.net/pub/linux/attansic/vendor_driver/l1-linux-v1.2.40.3.tar.gz

또는
오픈 소스 (http://atl1.sourceforge.net/)

[바탕 화면 @ 루트 ~] # 타르 xvfz 940 – 리눅스 – v1.2.40.3.tar.gz

[바탕 화면 @ 루트 ~] # CD를 940 – 리눅스 – v1.2.40.3

[바탕 화면 src @ 루트] # 있나요
at_ethtool.c at.h at_hw.c at_hw.h at_main.c at_osdep.h at_param.c kcompat.c kcompat_ethtool.c kcompat.h Makefile의
[바탕 화면 src @ 루트] #

* 이제 컴파일하고 드라이버를 설치

[바탕 화면 src @ 루트] 확인 #
확인 – C를 / lib/modules/2.6.9-78.ELsmp/build subdirs = / root/l1-linux-v1.2.40.3/src 모듈
확인 [1] : 입력 디렉토리`/ usr/src/kernels/2.6.9-78.EL-smp-i686 ‘

…..
확인 [1] : 출발일 디렉토리`/ usr/src/kernels/2.6.9-78.EL-smp-i686 ‘
[바탕 화면 src @ 루트] # $ 파요?
0

[바탕 화면 src @ 루트] 설치 확인 #
확인 – C를 / lib/modules/2.6.9-78.ELsmp/build subdirs = / root/l1-linux-v1.2.40.3/src 모듈

…..
사람은 – c 옵션 – P ‘로 고양이 “는 / dev / null로’atl1 | | 사실
[바탕 화면 src @ 루트] # $ 파요?
0

* 이제 모듈을 커널을 읽어들이 ….

[바탕 화면 src @ 루트] # modprobe 명령을 atl1

3 단계] 이제 커널 드라이버가 있는지 아닌지 작동하는지 확인 –

[바탕 화면 src @ 루트] # modinfo atl1
파일 이름 : / lib/modules/2.6.9-78.ELsmp/kernel/drivers/net/atl1/atl1.ko
작성자 : 아테 공사, <xiong.huang@atheros.com>
설명 : 아테 1000M 이더넷 네트워크 드라이버
라이센스 : GPL은
버전 : 1.2.40.3 1FC4E58EBDF31F49BFD33E8
파마 잔 : TxDescriptors : 전송 설명자 개수
파마 잔 : RxDescriptors : 설명 수신 번호
파마 잔 : MediaType : MediaType 선택
파마 잔 : IntModTimer : 사회자 타이머 인터럽트
파마 잔 : FlashVendor : SPI는 플래시 공급 업체
vermagic : 2.6.9 – 78.ELsmp SMP를 686 REGPARM 4KSTACKS의 gcc – 3.4
에 따라 다릅니다 :
별칭 : PCI : v00001969d00001048sv * sd는 * 기원전 * 사우스 캐롤라이나 * 난 *
[바탕 화면 src @ 루트] #

[바탕 화면 src @ 루트] netconfig #
[바탕 화면 src @ 루트] ifconfig #
링크 Encap eth0 : 이더넷 HWaddr 00 : 광고 : 54:0 : XX : 트면
inet addr : 192.168.0.2 BCAST : 192.168.0.255 마스크 : 255.255.255.0
inet6 addr : fe80 : : 223:54 FF로 : fe0a : 616b/64 범위 : 링크
방송 나오는 멀티 캐스트의 MTU 업 : 1500 메트릭 : 1
RX 패킷 : 0 오류 : 0했다 : 0 오버런 : 0 프레임 : 0
텍사스 패킷 : 7 오류 : 0했다 : 0 오버런 : 0 통신사 : 0
충돌 : 0 txqueuelen : 1000
RX 바이트 : 0 (0.0 b)는 미국 텍사스 바이트 : 498 (498.0 b) 항
메모리 : feac0000 – feb00000

…..

[바탕 화면 src @ 루트] #

[바탕 화면 @ 루트 ~] # vi가을 / etc / sysconfig / hwconf

클래스 : 네트워크
버스 : PCI
초연 : 0
장치 : eth0
드라이버 : atl1
내림차순 : “Attansic 기술 공사 940 기가 비트 이더넷 어댑터”
network.hwaddr : 00 : 광고 : 54:0 : XX : 트면
vendorId : 1969
DeviceID : 1048
subVendorId : 1043
subDeviceId : 8226
pciType : 1
pcidom : 0
pcibus : 3
pcidev : 0
pcifn : 0
[바탕 화면 @ 루트 ~] #

즐기다,
Arun Bagul

Similar Posts:

Be Sociable, Share!
(0) Comments    Read More   
Post a Comment
Name:
Email:
Website:
Comments:


www.flickr.com
arunbagul's photos More of arunbagul's photos
Get Adobe Flash player
-->