RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'리눅스'에 해당되는 글 2
2009.07.27  리눅스에 대하여  
본딩을 일일히 구성하는게 귀찮아진 나머지 스크립트를 짜려다, 혹시나 해서 검색해보니 좋은 스크립트가 있어서 소개!
출처는 맨 아래 적어놓았으며, 약간의 수정을 했다^^




#!/bin/sh
# This script creates bonding interfaces on RHEL 5.
#
# The first and second parameters are used to specify the enslaved interfaces.
# The third parameter is used to describe the name of the bonding interface.
# The network configuration is collected from the first device.
# After running the script please verify the/etc/modprobe.conf file as well as
# all/etc/sysconfig/network-scripts/ifcfg* files!
#
# LICENSE INFORMATION
#
# This software is released under the BSD license:
#
# Copyright 2010 Reiner Rottmann reiner[at]rottmann.it. All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list
# of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. The name of the author may not be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Global variables

SCRIPTNAME=$(basename $0 .sh)

EXIT_SUCCESS=0
EXIT_FAILED=1
EXIT_ERROR=2
EXIT_BUG=10

VERSION="1.0.0"

# Base functions

# This function displays the basic usage
function usage {
echo "Usage: $SCRIPTNAME <first slave interface> <second slave interface> <bonding interface> <ipaddress> <netmask> <gateway>" >&2
echo "This script bonds two network interfaces on RHEL 5 with the static network config from the first slave interface." >&2
echo >&2
echo "e.g. # ./$SCRIPTNAME eth1 eth3 bond1 192.168.5.250 255.255.255.0 192.168.5.1" >&2
echo >&2
[[ $# -eq 1 ]] && exit $1 || exit $EXIT_FAILED
}

# This function checks that the command is run with the right parameters
function preflightcheck {

# This script needs to be run as root.
if [ $(id -u) -ne 0 ]; then
echo "You need to be root to run this script."
exit $EXIT_FAILED
fi

# Check if we have exactly 3 commandline parameters.

if [ $# -ne 6 ]; then
echo "Commandline parameter is missing. (only $# present)."
usage
exit $EXIT_FAILED
fi

# Check if the first input is correct.
if ! echo $1|grep -q "^eth[0-9]$"; then
echo "The first parameter needs to be an ethernet device (e.g. eth1)."
usage
exit $EXIT_FAILED
fi

# Check if the second input is correct.
if ! echo $2|grep -q "^eth[0-9]$"; then
echo "The second parameter needs to be an ethernet device (e.g. eth3)."
usage
exit $EXIT_FAILED
fi

# Check if the third input is correct.
if ! echo $3|grep -q "^bond[0-9]$"; then
echo "The third parameter needs to be a bonding device (e.g. bond3)."
usage
exit $EXIT_FAILED
fi
}

# The main function that creates the bonding devices.
function rh5mkbond {

# Load the bonding kernel module with active-backup mode and set mii link monitoring to 100 ms.
cp /etc/modprobe.conf /tmp/modprobe.conf.bonding
cat >> /tmp/modprobe.conf.bonding <<EOF
alias $3 bonding
EOF
cat /tmp/modprobe.conf.bonding|uniq > /etc/modprobe.conf


# Get interface details
#IP=$(/sbin/ifconfig $1|egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"|sed -n "1p")
#NETMASK=$(/sbin/ifconfig $1|egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"|sed -n "3p")
MACIF1=$(/sbin/ifconfig $1|egrep -o "([[:xdigit:]]{2}[:]){5}[[:xdigit:]]{2}")
MACIF2=$(/sbin/ifconfig $2|egrep -o "([[:xdigit:]]{2}[:]){5}[[:xdigit:]]{2}")


# Create the bond0 device file.
mv /etc/sysconfig/network-scripts/ifcfg-$3 /etc/sysconfig/network-scripts/ifcfg-$3.orig  2>/dev/null
cat >> /etc/sysconfig/network-scripts/ifcfg-$3 <<BOND
DEVICE=$3
BOOTPROTO=none
IPADDR=$4
NETMASK=$5
GATEWAY=$6
USERCTL=no
BONDING_OPTS="mode=0 miimon=100"
BOND


# Create the slave device files.
for i in $1 $2
do
mv  /etc/sysconfig/network-scripts/ifcfg-$i  /etc/sysconfig/network-scripts/ifcfg-$i.orig 2>/dev/null
cat >> /etc/sysconfig/network-scripts/ifcfg-$i <<IFS
DEVICE=$i
BOOTPROTO=none
HWADDR=$(/sbin/ifconfig $i|egrep -o "([[:xdigit:]]{2}[:]){5}[[:xdigit:]]{2}")
ONBOOT=yes
MASTER=$3
SLAVE=yes
USERCTL=no
IFS
done

}

# Call functions
preflightcheck $1 $2 $3 $4 $5 $6
rh5mkbond $1 $2 $3 $4 $5 $6

# End script

exit $EXIT_SUCCESS
Trackback
Reply

출처 : 대전국제 IT 교육센터 정성재 강사

 

. GNU와 FSF

(1) GNU

GNU란 재귀적 약어로 GNU's Not Unix 즉 "GNU는 유닉스가 아니다."라는 뜻이다. 리차드 스톨만을 주축으로 자유로운 소프트웨어를 희망하던 공동체들이 가장 먼저 운영체제인 유닉스를 모태로 개발을 시작하면서 이 말이 탄생되었다. GNU는 유닉스와 호환이 되도록 만들어진 운영체제이기는 하지만 유닉스와는 다른 운영체제라는 의미를 내포시키기 위해서 만들이름이라고 할 수 있다.
1984년에 시작된 프로젝트로 초기에는 이렇게 자유로운 UNIX를 만드는 데 목적이 있었으나 1990년 대에는 운영체제이외의 gcc, emacs 등 같은 응용프로그램도 만들었다.
(참고) 관련사이트:
http://www.gnu.org

(2) FSF(Free Software Foundation)

1) 개요: 비영리를 목적으로 하는 조직으로 GNU 프로젝트를 추진하는 단체이다. Free Software를 주창한다. 자유 소프트웨어라는 용어는 무료나 공짜라는 뜻은 아니다. 자유(Free)는 '구속되지 않는다'는 관점에서의 자유이다. 즉, 프로그램의 변경이나 수정의 자유를 말한다.

2) 자유 소프트웨어(Free Software)란?
ㄱ. 목적에 상관없이 프로그램을 실행시킬 수 있는 자유
ㄴ. 필요에 따라서 프로그램을 개작할 수 있는 자유(이러한 자유가 실제로 보장되기 위해서는 소스코드를 이용할 수 있어야 한다. 왜냐하면 소스 코드없이 프로그램을 개작한다는 것은 매우 어려운 일이기 때문이다.
ㄷ. 무료 또는 유료로 프로그램을 재배포할 수 있는 자유
ㄹ. 개작된 프로그램의 이익을 공동체 전체가 얻을 수 있도록 이를 배포할 수 있는 자유
3) 관련사이트:
http://www.fsf.org (http://www.gnu.org와 같다.)

(3) 카피레프트(Copyleft)와 GNU GPL

1) 카피레트트
ㄱ. 개요: 저작권을 뜻하는 Copy right의 반대를 뜻하는 의미에서 사용하였다. 저작권법을 근간으로 하지만 저작권법이 갖고 있는 주된 목적을 반대로 이용해서 소프트웨어를 개인의 소유로 사유화시키는 대신 자유로운 상태로 유지시키는 수단으로 삼는 것이다.
ㄴ. 핵심: 프로그램을 실행하고 복제할 수 있는 권리와 함께 개작된 프로그램에 대한 배포상의 제한조건을 별도로 설정하지 않는한, 개작과 배포에 대한 권리 또한 모든 사람에게 허용하는 것이다. 이러한 방법을 통해서 "자유 소프트웨어"라는 용어의 핵심인 "자유"를 모든 사람에게 보장할 수 있고 프로그램을 입수한 사람은 그 누구도 뺏을 수 없는 권리를 갖게 된다.
2) GNU GPL(General Public License): GNU 소프트웨어에서 카피레프트를 실제로 구현한 라이센스기준이다.

(4) 리눅스와 GNU/Linux

GNU 에서는 하나의 완성된 시스템을 만들기 위해서 HURD라는 이름의 커널을 개발중이었으나 하나의 제품으로 사용될 수 있을 말한 상태가 아니었다. 그러나 다행스럽게도 또 다른 커널이 사용 가능했는데, 1991년 리누스 토발스(Linus Torvalds)가 유닉스 커널과 호환가능하게 만든 리눅스라는 이름이 커널이 그것이었다. 1992년 무렵 GUN시스템과 리눅스를 결합함으로써 하나의 완성된 자유 운영체제를 만들 수 있었다. 현재 사용되고 있는 GNU시스템은 리눅스 덕분에 가능했던 것이라고 할 수 있다. 그래서 이 시스템을 GNU/Linux라고 부르는데, 이는 리눅스를 시스템 커널로 채용한 GNU시스템을 지칭한다.

2. 리눅스에 대하여

(1) 리눅스의 역사
리눅스를 커널을 지칭하는 말이다. 1991년 리누스 토발즈(Linus Torvalds)가 0.01버전의 리눅스를 인터넷상에 띄웠고, 곧 많은 해커들의 참여로 지속적인 커널로 개발되었다.

(2) 리눅스의 어원
리눅스는 커널 개발자인 리누스 토발즈(Linus Torvalds) + 유닉스 OS (특히 Minix라는 운영체제)의 합성어이다.

(3) 리눅스 커널의 특징: 리눅스는 Free Source Software로 커널코드의 대부분을 자유소프트웨어재단(FSF)의 라이센스 정책인 GNU GPL을 따른다.

(4) 리눅스의 특징
1) 유닉스와 같은 운영체제로 멀티유저, 멀티 태스킹 시스템이다.
2) 완전히 공개된 시스템이다.
3) 유연성과 확장성이 뛰어나다. - 다양한 하드웨어를 지원한다.
4) 강력한 네트워크를 지원하는 시스템이다.
5) 가격대 성능비가 매우 우수하다.

(5) 리눅스의 단점
1) 기술지원의 부족: 리눅스에서 사용되는 대부분의 응용프로그램들이 비상업적인 제품으로 인해
전세계에 흩어져 있는 개발자들이 일일히 기술지원을 하는 것이 불가능하다.
이로 인해 사용하면서 발생하는 문제점들은 모두 사용자의 몫이다.
2) 하드웨어 지원이 부족: 여전히 특정 하드웨어에 설치가 어렵고 모든 플랫폼에서 작동하지 않
는다.
3) 사용자의 숙련된 기술이 요구된다.

3. 리눅스배포판

(1) 개요: 리눅스는 오픈 소스(Open Source)에 기반을 두고 있기 때문에 다양한 리눅스 배포판이
나와 있다. 모든 배포판은 같은 리눅스 커널과 시스템 도구를 제공하지만 설치하는 방법
과 기본제공되는 응용 프로그램이 다르다. 각각의 배포판에는 장점과 단점이 있다. 배포
판에 대해 알아보자.

(2) 배포판의 종류
1) RedHat
ㄱ. 설명: 가장 인기있는 배포판으로 상용 리눅스 배포판 업체인 레드햇 소프트웨어사가 제공한다. 초보자들도 쉽게 설치할수 있다. 설치과정은 그래픽 사용자 인터페이스를 사용할 것인지 텍스트 기반의 인터페이스를 사용할 것인지 선택할 수 있다. 또한 RPM패키지방식을 사용하여 설치, 관리, 업그레이드 등이 용이하다. X 윈도우로 GNOME과 KDE를 동시에 제공하며 이 배포판은 인텔, 알파, SPARC 버전이 있다.
ㄴ. 사이트
http://www.redhat.com
2) Debian
ㄱ. 설명: 수많은 참여자가 참여하여 만들어진다. "The Debian Project"로 알려진 비영리기구가 제공하는 것으로 GNU가 공식적으로 후원한다. 이 배포판은 dpkg라는 유틸리티를 사용한다. 이 배포판은 인텔, 알파, 스팍, 모토롤러(매킨토시, 아미가, 아타리)용 버전이 나와있다.
ㄴ. 사이트
http://www.debian.org
3) SuSE
ㄱ. 설명: 상용소프트웨어로 독일업체인 S.u.S.E가 배포한다.유럽에서 선두의 자리를 지키고 있다. 이 배포판에는 KDE가 포함되어 있으며 쉬운 업그레이드와 패키지 관리를 위하여 'YaST'유틸리티를 제공한다. 이 배포판은 인텔용과 알파용 버전이 있다.
ㄴ. 사이트
http://www.suse.com
4) OpenLinux
ㄱ. 설명: 상용소프트웨어 업체인 칼데라사가 제공하는 기업사용자들을 목표로 하고 있다. 표준으로 KDE를 제공하며 이 배포판은 인텔용 버전만 있다.
ㄴ. 사이트
http://www.caldera.com
5) Linux Mandrake
ㄱ. 설명: 상용소프트웨어 업체인 MandrakeSoft S.A가 제공하는 것으로 프랑스의 배포판이다.
ㄴ. 사이트
http://www.linux-mandrake.com
6) Slackware
ㄱ. 설명: 월넛 크리크 소프트웨어사의 패트릭 폴커딩에 의하여 제공된다. 패트릭 폴커딩은 현재와 같은 리눅스 배포판의 원조에 해당하는 사람이다. 설치과정은 꽤 간단하지만 업그레이드와 패키지 관리 기능은 취약하다. 여전히 libc라이브러리에 기반하고 있다. 최신 버전은 glibc로 옮겨가고는 있다. 이 배포판은 리눅스에 친숙하고 기술이 뛰어나 사람에게 추천할 만 하다. 이 배포판은 인텔 버전만 있다.
ㄴ. 사이트
http://www.slackware.com
7) 기타: 터보리눅스(
http://www.turbolinux.com) 등 그외에도 많은 리눅스가 존재한다.

(3) 국내 리눅스 배포판 업체
1) 와우리눅스
http://www.wowlinux.com
2) 한컴리눅스
http://www.hancom.com
3) 미지리눅스
http://www.mizi.com

4. 리눅스문서관련사이트

(1) 외국

1)
http://www.linuxdoc.org
=> 최신의 리눅스문서를 볼 수있는 사이트로
http://www.tldp.org와 같다. tldp는 The Linux Documentation Project의 약자이다.
2)
http://www.linux.org
=> 리눅스의 전반적인 정보를 알 수 있다.
3)
http://www.linux.org.uk
=> 리눅스 커널의 네트워크 관련 코드 개발 책임자인 Alan Cox가 운영하는 사이트로 리눅스
네트워크와 커널에 관한 내용을 얻을 수 있다.
4)
http://www.linux.com
=> 리눅스 거대회사인 VA Linux System이 운영하는 사이트로 많은 리눅스 정보와 데이터를
제공한다.
5)
http://www.slashdog.org
=> 리눅스 제품 정보와 최신 뉴스가 빨리 업데이트되는 사이트이다.
6)
http://www.freshmeat.net
=> 리눅스의 마스코트 펭귄이 좋아한다는 신선한 고기(freshmeat)를 의미한다. 최근의 리눅스 소식과 관련된 사이트 링크를 위주로 질높은 정보를 제공하는 사이트이다.
7)
http://www.linuxgazette.com => 리눅스 저널 관련 사이트이다.

(2) 국내
1)
http://www.kldp.org
=> Korean Linux Documentation Project의 약자로 한국 리눅스문서 사이트이다. 많은 정보를 얻을 수 있는 사이트이다

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31