Dec
31

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!
(0) Comments    Read More   
Post a Comment
Name:
Email:
Website:
Comments:

Введение ~

Я собирался написать статью о Multi репликации MySQL так долго, наконец начали сейчас!. См. статью на тему “Как настроить репликации MySQL с одним ведущим” URL ~ 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 => NTH ряд мастер-сервера (на мастер-1 Keep It 1 и 2 мастер-Keep It 2 и так далее ..)
M => целый ряд мастер-сервер (2 в нашем случае, но лучше держать это значение высокой, так что мы можем добавить новый мастер-сервера легко)

Log-славянский Обновления => Славянский сервер не войти в свой собственный бинарный журнал любые обновления, которые были получены от главного сервера. Эта опция говорит раб журнала обновлений исполнении своих SQL поток своих собственных бинарных журналов.

** Убедитесь, что MySQL работает и до мастера на все серверы и серверы-славянский

Как настроить Multi Master 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:

Введение —

* “Rpmbuild” инструмент используется для создания и …

1) ~ двоичных пакетов для установки программного обеспечения и поддержки сценариев. Он содержит все файлы, составляющие приложение, а также любую дополнительную информацию, необходимую для установки и удаления его.
2) ~ исходного кода содержит оригинальные сжатые TAR файлов исходного кода, патчи и спецификации файла.

* Что такое & RPM RPM Package Manager?

RPM Package Manager (RPM) является мощной командной строки пакета управления системой, способной Установка, удаление, проверка, запросы и обновления программного обеспечения.

RPM пакет состоит из архива файлы и мета-данные, используемые для установки и удаления архивных файлов. Мета-данные включают вспомогательные скрипты, атрибуты файлов, а также описательная информация о пакете.

* Чтобы построить RPM пакет нужно указать три вещи ~

1) Источники приложений – В любом случае, вы не должны изменять источники, используемые в процессе здании пакет.

2) Патчи – RPM дает вам возможность автоматически применять патчи к ним. Патч устраняет проблему, специфичные для целевой системы. Это может включать изменение make-файлы для установки приложения в соответствующие каталоги, либо в решении кросс-платформенный конфликтов. Патчи создания условий, необходимых для надлежащего компиляции.

3) Спецификация файла – это спецификация файла находится в центре процесса строительства RPM пакет. Он содержит информацию, необходимую RPM для сборки пакета, а также инструкции говорить об / мин, как строить. Спецификация файла также диктует, какие именно файлы являются частью пакета, и где они должны быть установлены.

** Спецификации файла ~ делится на 8 разделов, как показано ниже

а) преамбула ~ содержит информацию, которая будет отображаться, когда пользователи запрашивают информацию о пакете. Это будет включать описание функций пакета, номер версии программного обеспечения и т.д.

б) Подготовка ~ когда фактическая работа по созданию пакета начинается. Как следует из названия, этот раздел, где необходимые приготовления сделаны до начала фактического строительства программного обеспечения. В общем, если что-то должно быть сделано для источников до строительстве программное обеспечение, оно должно произойти в подготовке раздела. Содержание данного раздела являются обычными скрипт. Однако, RPM ли предоставить два макроса, чтобы сделать жизнь легче. Один макрос можно распаковать сжатые файлы и смол компакт-диск в исходном каталоге. Другие макро легко применяет патчи к распакованы источников.

с) создать ~ Этот раздел состоит из сценария оболочки. Он используется для выполнения любых команд требуется на самом деле компиляция источников, как сделать одну команду, или быть более сложной, если процесс сборки требует этого. Есть нет макросов доступны в этом разделе.

д) Установить ~ В этом разделе также содержащий сценарий оболочки, в разделе установка используется для выполнения команды необходимо реально установить программное обеспечение.

е) установить и удалить скрипты ~ Она состоит из сценариев, которые будут запущены на компьютере пользователя, когда пакет фактически установлена или удалена. RPM может выполнить скрипт до / после установки / удаления пакетов.

е) Проверить ~ сценария сценарий, который выполняется в пользовательской системе. Он выполняется при RPM проверяет правильность установки пакета.

г) чистый участок ~ скрипт, который может чистыми вещами после сборки. Этот сценарий используется редко, поскольку RPM обычно делает хорошую работу по очистке построить в большинстве сред.

H) Список файлов ~ состоит из списка файлов, который будет включать в себя пакет. Кроме того, количество макросов может быть использована для контроля атрибутов файлов при установке, а также обозначить, какие файлы документации, и которые содержат информацию о конфигурации. Список файлов является очень важным.

*** Из RPM требованием построить окружающей среды ~

] RPM требует набора каталогов для выполнения сборки. Хотя каталоги ‘места и названия могут быть изменены. По умолчанию Схема приведена ниже —

Root @ arunsb: ~ # ls -l /usl/src/redhat/

drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 SOURCES => содержит оригинальных источников, патчи и файлы иконок
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 ДАННЫЕ => содержит спецификации файлами
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 BUILD => каталог, в который распаковываются источников, & программное обеспечение построено
drwxr-XR-X 8 корневых корневых 4096 28 мая 2008 RPMS => содержит бинарные пакеты файлов, созданных в процессе построить
drwxr-XR-X 2 коренных коренных 4096 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] Создать Specification (SPEC) файле ~

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] Начиная Build ~

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

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

….
… ..

Проверка упаковки файла (ов): / 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
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ Эхо # $?
0

Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ # LS-L / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-RW-R-R-1 коренных коренных 3206 2 декабря 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ # LS-L / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-RW-R-R-1 коренных коренных 3052868 2 декабря 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ #

* Исходные и бинарные пакеты созданы!

** Давайте посмотрим, что произошло в “/ USR / SRC / RedHat / каталог”

Root @ arunsb: / USR / SRC / RedHat # PWD
/ USR / SRC / RedHat
Root @ arunsb: / USR / SRC / RedHat # Ls
СТРОЙ RPMS ИСТОЧНИКИ ДАННЫЕ SRPMS
Root @ arunsb: / USR / SRC / RedHat # Ls СТРОЙ /
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 # RPMS/i386 Ls /
openlsm-0.99-r45.i386.rpm <== двоичных пакетов / мин создан!
Root @ arunsb: / USR / SRC / RedHat # Ls SRPMS /
openlsm-0.99-r45.src.rpm <== Source RPM пакет создан!
Root @ arunsb: / USR / SRC / RedHat #

Шаг 3] Теперь установите этот пакет и проверить его ~

Root @ arunsb: / USR / SRC / RedHat # RPMS/i386/openlsm-0.99-r45.i386.rpm CP / Home / arunsb /

Root @ arunsb: / USR / SRC / RedHat # CD / Home / arunsb /
Root @ arunsb: ~ # Ls
openlsm-0.99-r45.i386.rpm
Root @ arunsb: ~ # RPM-ВЖК openlsm-0.99-r45.i386.rpm
Подготовка … ########################################### [100%]
1: openlsm ########################################### [100%]
Root @ arunsb: ~ # Ls / USR / местные / openlsm /
и т.д. бен Contrib включать Lib долю sbin сценарии VAR
Root @ arunsb: ~ #

** Начиная openlsm сервере ~

Root @ arunsb: ~ # / USR / местные / openlsm / Contrib / openlsm-Redhat начало
* Запуск сервера openlsm Admin: openlsm
. [OK]
Root @ arunsb: ~ #
Root @ arunsb: ~ # / USR / местные / openlsm / Contrib / openlsm-Redhat статус
openlsm (PID 21607) запущен …
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
Имя: openlsm Relocations: (не перемещаемые)
Версия: 0.99 Производитель: IndianGNU.org & openlsm
Выпуск: R45 Build Date: Срд 02 Dec 2009 05:50:54 PM IST
Дата установки: Срд 02 Dec 2009 06:06:23 PM IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Группа:: Система / Демоны Пакет: openlsm-0.99-r45.src.rpm
Размер: 14877918 Лицензия: GPL
Подпись: (None)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Резюме: openlsm Admin Server
Описание:
openlsm Администратор сервера свободного & открытым исходным веб-панель управления для Linux, Unix системами.
Root @ arunsb: ~ #

** ПРИМЕЧАНИЕ ~ Эта статья не содержит информации о том, как определить Micros, как копировать документы, мужчина страниц по умолчанию, как установить 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:

Введение ~

GNU Privacy Guard (GPG или GnuPG) является открытым исходным кодом и свободного программного обеспечения для шифрования и подписания инструментом, альтернативным Pretty Good Privacy (PGP) Люкс криптографического программного обеспечения. Enigmail это расширение для Mozilla Thunderbird и Mozilla другими приложениями. Он предоставляет открытый ключ для шифрования электронной почты. Солнце криптографические функции обрабатывается GNU Privacy Guard (GnuPG, GPG).

Шаг 1] Установка Gnupg или GPG —

* Ubuntu / Debian ~

Root @ Arun: ~ # Apt-Get установке GnuPG gnupg2

* RedHat / Fedora ~

Root @ Arun: ~ # Yum установке GnuPG gnupg2

Шаг 2] Как установить Enigmail?

Я предполагаю, что Mozilla Thunderbird уже установлены на вашей системе. Для установки “Enigmail” следуют следующие шаги

а) Скачать “Enigmail” из URL “http://enigmail.mozdev.org/download/”

Примечание ~ выберите ОС и Thunderbird версии правильно.

б) в строке меню главного окна Thunderbird вы увидите “Сервис”. Выберите нужный, а затем “Дополнения” вариант. После этого появится новое окно со списком всех ваших Thunderbird Plug-INS. В левом нижнем углу этого нового окна вы увидите кнопку “Установить”. Нажмите на эту кнопку. Thunderbird Расскажите, где вы сохранили Enigmail. XPI файла. и просто сказать: “Установить” Вот и все!

* Как только ‘Enigmail’ установлен перезапустите Thunderbird. Тогда вы увидите “OpenPGP вкладку” в главном меню Thunderbird.

Шаг 3] Установка частного / общественного ключевые ~

Enigmail использует открытый ключ шифрования для обеспечения конфиденциальности между вами и вашим корреспондентам. Для формирования государственных / частных ключей, есть два способа, либо создают их с помощью “GPG команда” Инструмент линии или использовать “Enigmail” ….

* Мы можем генерировать частного / общественного криптографических ключей с помощью “Enigmail”, как показано ниже ….

а) Нажмите на “OpenPGP” в строке меню в главном окне Thunderbird. Выберите “Управление ключами”.
б) в Enigmail Key Manager ~ нажмите кнопку “Создать вкладку” в строке меню и выберите пункт “Новая пара ключей”.
с) В самой верхней части окна вы увидите список с указанием всех ваших адресов электронной почты. GnuPG будет ассоциировать ваш новый ключ с адресом электронной почты.
Enigmail просто прошу вас адреса которых вы хотите использовать для этого ключа. Выберите зависимости от того, внимание будет получать зашифрованные почты.

ПРИМЕЧАНИЕ ~ Мы можем использовать те же ключи для нескольких аккаунтов.

д) Вы можете использовать фразу или просто проверить “флажок Нет пароля”, чтобы генерировать ключи без пароля.
е) создать каталог для сохранения “Отзыв сертификатов” …

arunsb @ Арун: ~ $ MKDIR / Home / arunsb / .gpg_key /

е) нажмите на “Генерировать ключ” кнопку, чтобы генерировать ключи. сделали ..

Для совместного ключа легко вы можете публиковать свои ключи с помощью ключей.

а) В “Управление ключами” окне выберите ваши ключи и затем нажмите на вкладку “Keyserver” в главном меню и нажмите кнопку “Загрузить общественной Ключи”
Примечание ~ убедитесь, что флажок “Показать все ключи по умолчанию” флажок (чтобы получить список всех ключей)

Шаг 4] Собрать почте и подписать его ~

Собрать почте и сообщить Enigmail подписать его. В верхней части окна вы увидите кнопку с надписью “OpenPGP”. Щелкните по ней. Убедитесь, что опция “Знамение”, и только что, не проверяется. И наконец “Отправить” сообщение! (Вам необходимо ввести ключевую фразу. После ввода его, Enigmail подпишет ваш адрес электронной почты и отправить его, если у вас есть генерировать ключи с фразу иначе она не будет спрашивать)
/ pgp_enigmail-составить

Наслаждайтесь!

Привет,
Арун 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

Требования ~

* После пакетов требуется обобщить MU-конференция …

Root @ Laptop: ~ # Apt-Get установка libglib2.0-0 libglib2.0-Dev
Root @ Laptop: ~ # Apt-Get установке libidn11 libidn11-Dev
Root @ Laptop: ~ # Apt-Get установке Expat lib64expat1 lib64expat1-Dev libexpat1-Dev liblua5.1-Expat-DEV liblua5.1-expat0

Шаг 1] Как скомпилировать “Му-конференция” —

* Загрузка “Му-конференция” из следующего URL – HTTPS: / / gna.org / проектов / MU-конференции /

Root @ Laptop: / VAR / SRC # Wget-C http://download.gna.org/mu-conference/mu-conference_0.8.tar.gz
Root @ Laptop: / VAR / SRC # TAR xvfz MU-conference_0.8.tar.gz
Root @ Laptop: / VAR / SRC # CD MU-conference_0.8 /
Root @ Laptop: / var/src/mu-conference_0.8 #

* Компиляции MU-конференции

Root @ Laptop: / 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 ‘

… ..

Root @ Laptop: / Эхо var/src/mu-conference_0.8 # $?
0
Root @ Laptop: / var/src/mu-conference_0.8 #

Шаг 2] Настройка MU-конференция —

* Теперь копируем “Му-конференция” бинарного к jabberd2 директории установки —

Root @ Laptop: ~ # CP / var/src/mu-conference_0.8/src/mu-conference / usr/local/jabberd-2.2.9/bin /
Root @ Laptop: ~ # Chown Jabber: Jabber / usr/local/jabberd-2.2.9/bin/mu-conference
Root @ Laptop: ~ # LS-L / usr/local/jabberd-2.2.9/bin/mu-conference
-rwxr-XR-X 1 Jabber Jabber 191904 2009-10-12 18:59 / usr/local/jabberd-2.2.9/bin/mu-conference
Root @ Laptop: ~ #

Root @ Laptop: ~ # / usr/local/jabberd-2.2.9/bin/mu-conference-Help
Jabber Component Runtime – 0.2.4
(C) 2003-2004 Paul Curtis

/ usr/local/jabberd-2.2.9/bin/mu-conference: неправильный вариант – ‘-‘
Применение: MU-конференция [-B] [-S] [-H] [-D Level] С-файл
-B Положить демона в фоновом режиме
-S Показать сообщения отладки на STDERR
-H для печати этой помощи
-D Устанавливает уровень отладки уровня выходного
С-файл Set конфигурационный файл, обязательный аргумент
Root @ Laptop: ~ #

* Создайте директорию для катушку “Му-конференция”. MU-конференции компонент требует катушку каталога, в котором хранится информация конференц-зал.

Root @ Laptop: ~ # MKDIR / usr/local/jabberd-2.2.9/var/spool
Root @ Laptop: ~ # Chown Jabber: Jabber / usr/local/jabberd-2.2.9/var/spool

ПРИМЕЧАНИЕ ~ “Jabber: Jabber” имя пользователя / группы из jabberd2 сервера.

* Скопируйте конфигурационный файл “Му-конференции” jabberd2 каталог установки и изменить настройки —

Root @ Laptop: ~ # CP / var/src/mu-conference_0.8/muc-default.xml / usr/local/jabberd-2.2.9/etc/mu-conference.xml
Root @ Laptop: ~ # Chown Jabber: Jabber / usr/local/jabberd-2.2.9/etc/mu-conference.xml
Root @ Laptop: ~ #

Root @ Laptop: ~ # VI / usr/local/jabberd-2.2.9/etc/mu-conference.xml

<name> conf.laptop.ubuntu.me </ Name>
<host> conf.laptop.ubuntu.me </ хост>
<ip> Localhost </ IP>
<port> 5347 </ порт>
<secret> секрете </ Secret>

<spool> / usr/local/jabberd-2.2.9/var/spool </ катушка>
<logdir> / usr/local/jabberd-2.2.9/var/log </ LOGDIR>
<pidfile> / usr/local/jabberd-2.2.9/var/run/mu-conference.pid </ PidFile>

<loglevel> 255 </ LogLevel>

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


… ..
Root @ Laptop: ~ #

* Теперь jabberd2 перезапустить сервер, а затем начать “Му-конференция” …

Root @ Laptop: ~ # Су-L Jabber-S / BIN / Bash-С “/ usr/local/jabberd-2.2.9/bin/mu-conference-B-C / usr/local/jabberd-2.2.9 / ETC / MU-conference.xml ”
Root @ Laptop: ~ #

* Проверьте выше статье, Init т.е. сценарий запуска ‘/ etc/init.d/jabberd2’ начнет MU-конференции.

Root @ Laptop: ~ # хвостом-F / usr/local/jabberd-2.2.9/var/log/mu-conference.log
Пн 12 октября 19:19:40 2009 main.c: 168 (основная): Jabber Component Runtime – начиная 0.2.4.
Пн 12 октября 19:19:40 2009 MU-конференции: [conference.c: 1076 (Конференция)] MU-конференции загрузка – Service ID: conf.laptop.ubuntu.me

Пн 12 октября 19:19:40 2009 MU-конференции: [conference.c: 1157 (конференции)] Добавление SADmin admin@laptop.ubuntu.me
Пн 12 октября 19:19:40 2009 MU-конференции: [xdb.c: 319 (xdb_rooms_get)] предложено получить номера от XDB
Пн 12 октября 19:19:40 2009 MU-конференции: [xdb.c: 418 (xdb_rooms_get)] пропуская .. ничего не найдено
Пн 12 октября 19:19:40 2009 main.c: 219 (основная): Главный цикл начинается.
Пн 12 октября 19:19:40 2009 jcr_base_connect.c: 34 (jcr_socket_connect): Попытка подключения к Localhost: 5347
Пн 12 октября 19:19:40 2009 jcr_base_connect.c: 87 (jcr_send_start_stream): Открытие потока XML: послал 173 байт
Пн 12 октября 19:19:40 2009 jcr_main_stream_error.c: 50 (jcr_main_new_stream): сервер потокового связано.
Пн 12 октября 19:19:40 2009 jcr_deliver.c: 51 (jcr_queue_deliver): доставки пакетов потока начинается.

сделано!

Шаг 3] Test “Му-конференция” —

* В меню “PSI” IM клиент, Goto “Общие”, а затем нажмите на кнопку “Service Discovery” и проверьте номер список …
* В “Инструменты” и нажмите кнопку пиджин “Чат клиент, Goto ‘на’ Список номеров разделе.

Как только вы обнаружили му-конференции “сервер. Пожалуйста, нажмите на кнопку “+ Добавить” Чат “в меню” Друзья ‘из Pidgin. В случае PSI на кнопку ‘Регистрация Groupchat’ из меню “Общие” добавить “Конференция / номер”, а затем присоединиться к “Confernece номеров.

Получать удовольствие,
Arun Bagul

Similar Posts:

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

Введение —

“Сетевые Технологии Corp. Attansic L1 Gigabit Ethernet Адаптер” (NIC) карты или адаптера не было обнаружено RHEL4 (RedHat) системы. Я попытался Бег Кудзу и другие команды, чтобы обнаружить устройство, но бесполезно. Итак, наконец, мне нужно установить драйверы для сетевой карты …

Шаг 1] Состояние устройства (сетевые карты) —

* См. ниже состояния устройства с аппаратной Conf файле ~ “/ ETC / sysconfig / hwconf”
* Технология Corp. Attansic L1 Gigabit Ethernet адаптер не обнаружил – Неизвестное устройство 8226

03:00.0 Ethernet контроллер: Attansic технологии Corp. L1 Gigabit Ethernet Adapter (Rev B0)
Subsystem: ASUSTeK Computer SRL: Неизвестное устройство 8226
Управление: I/O- Mem + + BusMaster SpecCycle-MemWINV-VGASnoop-ParErr-Stepping-SERR + FastB2B –
Status: Cap + 66MHz-UDF-FastB2B-ParErr-DEVSEL = быстрая> TAbort-<TAbort-<MAbort-> SERR + <PERR –
Задержка: 0, Cache Line Размер 10
Прерывание: PIN направляется IRQ 201

…..

[Root @ Desktop ~] # lspci вначале

03:00.0 Ethernet контроллер: Attansic технологии Corp. L1 Gigabit Ethernet Adapter (Rev B0)

…..
[Root @ Desktop ~] # lspci вначале-N

03:00.0 Класс 0200: 1969:1048 (Rev B0)

…..
[Root @ Desktop ~] #

* Убедитесь в том, чтобы скачать драйверы для выше 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/)

[Root @ Desktop ~] # TAR xvfz L1-Linux-v1.2.40.3.tar.gz

[Root @ Desktop ~] # CD L1-Linux-v1.2.40.3

[Root @ Desktop SRC] # Ls
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
[Root @ Desktop SRC] #

* Скомпилировать и установить драйверы

[Root @ Desktop SRC] # делать
Make-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 ‘
[Root @ Desktop SRC] # Эхо $?
0

[Root @ Desktop SRC] # сделать установку
Make-C / lib/modules/2.6.9-78.ELsmp/build SUBDIRS = / root/l1-linux-v1.2.40.3/src модули

…..
Человек-C-CAT P ‘> / Dev / NULL’ atl1 | | истинный
[Root @ Desktop SRC] # Эхо $?
0

* Теперь загрузка модуля ядра ….

[Root @ Desktop SRC] # Modprobe atl1

Шаг 3] Теперь проверить, является ли драйвер работает или нет —

[Root @ Desktop SRC] # modinfo atl1
Имя файла: / lib/modules/2.6.9-78.ELsmp/kernel/drivers/net/atl1/atl1.ko
Автор: Atheros Corporation, <xiong.huang@atheros.com>
Описание: Atheros 1000M Ethernet Network Driver
Лицензия: GPL
Версия: 1.2.40.3 1FC4E58EBDF31F49BFD33E8
Parm: TxDescriptors: Количество передать дескрипторы
Parm: RxDescriptors: Количество получают дескрипторы
Parm: MediaType: Выберите MediaType
Parm: IntModTimer: Прерывание Модератор Таймер
Parm: FlashVendor: SPI флэш-продавца
vermagic: 2.6.9-78.ELsmp СМП 686 REGPARM 4KSTACKS GCC-3.4
Зависит:
псевдоним: PCI: v00001969d00001048sv * SD * БК * SC * I *
[Root @ Desktop SRC] #

[Root @ Desktop SRC] # netconfig
[Root @ Desktop SRC] # Ifconfig
eth0 Link ENCAP: Ethernet HWaddr 00: AD: 54:0: XX: WW
INET Почтовый адрес: 192.168.0.2 Bcast: 192.168.0.255 Маска: 255.255.255.0
inet6 Почтовый адрес: fe80:: 223:54 FF: fe0a: 616b/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1
RX Packets: 0 ошибок: 0 Dropped: 0 перерасход: 0 Frame: 0
TX пакетов: 7 ошибок: 0 Dropped: 0 перерасход: 0 перевозчика: 0
коллизии: 0 txqueuelen: 1000
RX байта: 0 (0.0 B) TX байта: 498 (498,0 б)
Память: feac0000-feb00000

…..

[Root @ Desktop SRC] #

[Root @ Desktop ~] # VI / ETC / sysconfig / hwconf

Класс: СЕТЬ
Шина: PCI
отдельностоящий: 0
Устройство: eth0
Водитель: atl1
Описание: “Технология Corp. Attansic L1 Gigabit Ethernet Adapter”
network.hwaddr: 00: AD: 54:0: XX: WW
VendorId: 1969
DeviceID: 1048
subVendorId: 1043
subDeviceId: 8226
pciType: 1
pcidom: 0
pcibus: 3
pcidev: 0
pcifn: 0
[Root @ Desktop ~] #

Получать удовольствие,
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
-->