'분류 전체보기'에 해당되는 글 162건

  1. 2014.02.03 :: xming 사용(putty gui)
  2. 2013.12.23 :: xshell 파일전송
  3. 2013.12.18 :: [python] dictionary 에 dictionary 붙이기
  4. 2013.12.10 :: [python] 띄어쓰기 제거
  5. 2013.12.10 :: [python] json decode
  6. 2013.12.10 :: Tutorial
  7. 2013.12.09 :: os.popen3와 subprocess.Popen
  8. 2013.11.22 :: [python] 로컬 ip 얻기
  9. 2013.11.14 :: 씬프로비저닝
  10. 2013.11.06 :: ubuntu 인터페이스 ip없이 사용하기.
  11. 2013.11.06 :: ubuntu 저장소 변경
  12. 2013.11.06 :: 스위치 콘솔 연결(시리얼 포트 연결)
  13. 2013.11.06 :: vlan 설정(ubuntu)
  14. 2013.11.04 :: css 가운데 정렬
  15. 2013.10.18 :: [css] body 100% height
  16. 2013.10.17 :: [jquery] html 조작
  17. 2013.10.17 :: [jquery] script src 추가하기
  18. 2013.10.16 :: [jquery] check box
  19. 2013.10.16 :: jquery 모든 문자 변경
  20. 2013.10.16 :: [javascript] parseint resturn NaN
학습자료/tools 2014. 2. 3. 13:34

1. 다운로드

putty 다운로드 : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


xming 다운로드 : http://sourceforge.net/projects/xming/


2. xming 설정

XLanuch  실행 -> one window -> start no client -> 클립보드 체크 -> 설정파일 저장

 

저장한 Config  파일 실행

 

3. putty 설정


호스트명에 접속할 리눅스 서버의 ip 혹은 호스트명을 입력


좌측 메뉴에서 접속(Connection) > SSH > X11 선택


X11 포워딩 사용(Enable X11 forwarding) 체크 후 X 디스플레이 위치(X display location) 항목에 " localhost:0 " 입력


좌측 메뉴에서 세션(Session) 메뉴 선택 후 입력한 내용 저장 후 하단의 열기 버튼 선택


4. putty GUI 접속


'학습자료 > tools' 카테고리의 다른 글

CTDB(cifs/nfs/iSCSI/ftp with ceph) 구성 - 문서 첨부  (0) 2014.06.30
linux cron 사용법  (0) 2014.02.11
xshell 파일전송  (0) 2013.12.23
이클립스 단축키  (0) 2013.09.25
한글 iso-8859-1 변환  (0) 2013.07.10
posted by cozyboy
:
학습자료/tools 2013. 12. 23. 14:10


1. 파일전송 위한 패키지 설치

sudo apt-get install lrzsz


2. 리모트 -> 로컬 전송

sz filename


3. 로컬 ->리모트

파일을 xshell에 드래그

'학습자료 > tools' 카테고리의 다른 글

linux cron 사용법  (0) 2014.02.11
xming 사용(putty gui)  (0) 2014.02.03
이클립스 단축키  (0) 2013.09.25
한글 iso-8859-1 변환  (0) 2013.07.10
Nagios 구조요약 및 샘플 코드(모니터링)  (0) 2013.07.03
posted by cozyboy
:
언어&플랫폼/python 2013. 12. 18. 23:34


>>> dest = orig.copy()
>>> dest.update(extra)
>>> orig
{'A': 1, 'C': 3, 'B': 2}
>>> dest
{'A': 1, 'C': 3, 'B': 2, 'E': 5, 'D': 4}


[펌] : http://stackoverflow.com/questions/8930915/python-append-dictionary-to-dictionary

'언어&플랫폼 > python' 카테고리의 다른 글

[python] time 관련  (0) 2015.01.06
shell과 pipe 실행하기(subprocess)  (0) 2014.03.21
[python] 띄어쓰기 제거  (0) 2013.12.10
[python] json decode  (0) 2013.12.10
Tutorial  (0) 2013.12.10
posted by cozyboy
:
언어&플랫폼/python 2013. 12. 10. 17:41


output.strip('\r\n')




[참고] : http://stackoverflow.com/questions/275018/how-can-i-remove-chomp-a-newline-in-python

'언어&플랫폼 > python' 카테고리의 다른 글

shell과 pipe 실행하기(subprocess)  (0) 2014.03.21
[python] dictionary 에 dictionary 붙이기  (0) 2013.12.18
[python] json decode  (0) 2013.12.10
Tutorial  (0) 2013.12.10
os.popen3와 subprocess.Popen  (0) 2013.12.09
posted by cozyboy
:
언어&플랫폼/python 2013. 12. 10. 17:29
json 형식의 str을 json으로 변환

import json


def testJson(output):

    try:

        decoded = json.loads(output)

        print decoded

        print  decoded['stats']['total_space']

        #print "JSON parsing example: ", decoded['stats']['total_space']

        #print "Complex JSON parsing example: ", decoded['two']['list'][1]['item']

    except (ValueError, KeyError, TypeError):

        print "JSON format error




json, pretty json format.

    @staticmethod             

    def decodeJson(output):   

        '''

        Info : 

            Convert json formed string to json

        --------------------------------------------------------------

        Parameter:

            output - json formated String

        --------------------------------------------------------------

        Return:

            if success decode 

                return output(formated json)

            else 

                return -1

        '''

        try:

            decoded = json.loads(output)   

            return decoded

        except (ValueError, KeyError, TypeError):

            if DEBUG: print "JSON format error[decodeJson()]"

            return -1

        

    @staticmethod

    def encodePrettyJson(output):  

        try:

            decoded = json.dumps(output, sort_keys=True, indent=4, separators=(',', ': '))

            return decoded

        except (ValueError, KeyError, TypeError):

            if DEBUG: print "JSON format error[encodePrettyJson()]"

            return -1

       



참조 : http://docs.python.org/2/library/json.html




'언어&플랫폼 > python' 카테고리의 다른 글

[python] dictionary 에 dictionary 붙이기  (0) 2013.12.18
[python] 띄어쓰기 제거  (0) 2013.12.10
Tutorial  (0) 2013.12.10
os.popen3와 subprocess.Popen  (0) 2013.12.09
[python] 로컬 ip 얻기  (0) 2013.11.22
posted by cozyboy
:
언어&플랫폼/python 2013. 12. 10. 17:14
  1. 2012/02/29 배워보자 파이썬(Python) 3 - (30) Standard Library 둘러보기
  2. 2012/02/23 배워보자 파이썬(Python) 3 - (29) 클래스 (Classes)
  3. 2012/02/21 배워보자 파이썬(Python) 3 - (28) 에러와 예외처리 (Errors and Exceptions)
  4. 2012/02/14 배워보자 파이썬(Python) 3 - (27) 파일 읽고 쓰기 (Reading and Write Files)
  5. 2012/02/07 배워보자 파이썬(Python) 3 - (26) 입력과 출력(Input and Output)
  6. 2012/02/07 배워보자 파이썬(Python) 3 - (25) Module 파일 PATH 찾기
  7. 2012/02/06 배워보자 파이썬(Python) 3 - (24) More on Modules(모듈)
  8. 2012/02/04 배워보자 파이썬(Python) 3 - (23) Module(모듈)
  9. 2012/02/04 배워보자 파이썬(Python) 3 - (22) Looping 테크닉
  10. 2012/02/02 배워보자 파이썬(Python) 3 - (21) Dictionaries (사전)
  11. 2012/02/01 배워보자 파이썬(Python) 3 - (20) Sets(집합)
  12. 2012/02/01 배워보자 파이썬(Python) 3 - (19) Tuples와 Sequences
  13. 2012/02/01 배워보자 파이썬(Python) 3 - (18) del statement
  14. 2012/01/30 배워보자 파이썬(Python) 3 - (17) List 이해 및 활용하기
  15. 2012/01/30 배워보자 파이썬(Python) 3 - (16) Data Structure - List
  16. 2012/01/30 배워보자 파이썬(Python) 3 - (15) function 함수 만들기(3) Keyword Argument, lambda, Documentation String
  17. 2012/01/28 배워보자 파이썬(Python) 3 - (14) function 함수 만들기(2)
  18. 2012/01/28 배워보자 파이썬(Python) 3 - (13) function 함수 만들기(1)
  19. 2012/01/27 배워보자 파이썬(Python) 3 - (12) pass statements
  20. 2012/01/27 배워보자 파이썬(Python) 3 - (11) loop에서의 break와 continue 그리고 else절
  21. 2012/01/26 배워보자 파이썬(Python) 3 - (10) for 문
  22. 2012/01/26 배워보자 파이썬(Python) 3 - (9) if 문
  23. 2012/01/26 배워보자 파이썬(Python) 3 - (8) 스트링(문자열)
  24. 2012/01/25 배워보자 파이썬(Python) 3 - (7) Numbers(숫자)
  25. 2012/01/24 배워보자 파이썬(Python) 3 - (6) 모듈 배포 및 PyPI(파이파이)
  26. 2012/01/23 배워보자 파이썬(Python) 3 - (5) 함수
  27. 2012/01/23 배워보자 파이썬(Python) 3 - (4) IDLE (정말 간단한 소개만!!)
  28. 2012/01/22 배워보자 파이썬(Python) 3 - (3) isinstance
  29. 2012/01/22 배워보자 파이썬(Python) 3 - (2) 리스트_List
  30. 2012/01/22 배워보자 파이썬(Python) 3 - (1) 소개

번역한것 같은데 간단하게 잘 정리 되어 있음.


파이썬 Document 주소

wikiDocs - 왕초보를 위한 Python2.7, 점프 투 파이썬


'언어&플랫폼 > python' 카테고리의 다른 글

[python] dictionary 에 dictionary 붙이기  (0) 2013.12.18
[python] 띄어쓰기 제거  (0) 2013.12.10
[python] json decode  (0) 2013.12.10
os.popen3와 subprocess.Popen  (0) 2013.12.09
[python] 로컬 ip 얻기  (0) 2013.11.22
posted by cozyboy
:
언어&플랫폼/python 2013. 12. 9. 15:46

#!/usr/bin/python
import shlex
import subprocess as sub

def excute(self, command):
            try:
                p = sub.Popen(shlex.split(command),stdout=sub.PIPE,stderr=sub.PIPE)
                output, errors = p.communicate()
                return output.strip('\r\n'), errors
            except (ValueError, KeyError, TypeError):
                return -1, -1


만약 명령어가 제대로 실행 되었다면 
     output에 결과가, errors엔 ''
제대로 실행 되지 않았다면,

     output에 ''가, errors엔 잘 못 실행된 내용이 들어온다(예를들면 명령어를 

     잘못 써서 헬프페이지가 올때 그 값은 errors에 들어온다)


try 에 걸린다면 -1, -1이 들어온다.





1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python
#cmd_sub.py
 
import os
 
def execute(cmd) :
    std_in, std_out, std_err = os.popen3(cmd)
    return std_out, std_err
 
cmd = "ls -l"
 
std_out, std_err = execute(cmd)
for line in std_out.readlines() :
    print line,

os 모듈을 이용해서 쉘 명령을 실행시켜 출력하기.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/python
#cmd_sub.py
 
import subprocess
 
def execute(cmd) :
    fd = subprocess.Popen(cmd, shell=True,<br>
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)
    return fd.stdout, fd.stderr
 
cmd = "ls -l"
 
std_out, std_err = execute(cmd)
for line in std_out.readlines() :
    print line,

subprocess 모듈을 이용해서 쉘 명령을 실행시켜 출력하기.


os.popen 시리즈는 python 2.0에 생겨서 2.6이 되면서 subprocess의 popen으로 바꿔 쓰기를 권장한다.
subprocess는 2.4 버전에 생겼다.


[참고 1] os.popen3
[참고 2] subprocess.Popen
[참고 3] replace os.popen to subprocess


[펌]  - http://gentooboy.tistory.com/72

'언어&플랫폼 > python' 카테고리의 다른 글

[python] dictionary 에 dictionary 붙이기  (0) 2013.12.18
[python] 띄어쓰기 제거  (0) 2013.12.10
[python] json decode  (0) 2013.12.10
Tutorial  (0) 2013.12.10
[python] 로컬 ip 얻기  (0) 2013.11.22
posted by cozyboy
:
언어&플랫폼/python 2013. 11. 22. 14:12

1.

#!/usr/bin/python

import os
import socket

if os.name != "nt":
import fcntl
import struct

def get_interface_ip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])

def get_lan_ip():
ip = socket.gethostbyname(socket.gethostname())
if ip.startswith("127.") and os.name != "nt":
interfaces = [
"eth0",
"eth1",
"wlan1",
"wifi0",
"ath0",
"ath1",
"ppp0",
]
for ifname in interfaces:
try:
ip = get_interface_ip(ifname)
break
except IOError:
pass
return ip

print get_lan_ip()



2. http://myip.dnsdynamic.org/ 에 접속하면 자신의 아이피만 text로 나온다.

import requests


def external_ip(self):

        req = requests.get('http://myip.dnsdynamic.org/', headers=self.headers)

        ip = req.text

        return ip



'언어&플랫폼 > python' 카테고리의 다른 글

[python] dictionary 에 dictionary 붙이기  (0) 2013.12.18
[python] 띄어쓰기 제거  (0) 2013.12.10
[python] json decode  (0) 2013.12.10
Tutorial  (0) 2013.12.10
os.popen3와 subprocess.Popen  (0) 2013.12.09
posted by cozyboy
:
학습자료/이론 2013. 11. 14. 19:49


요약 : 

한마디로 사용자에게 용량을 속이는 것과 같다. 
전체 용량이 10TB이지만  사용자1~4에게 모두 6TB씩 사용 가능 하다고 표기하여 종합적으로 24TB를 쓸 수 있는 것 처럼 알린다. 

이러한 씬프로비저닝이 나온 이유는, 데이터 사용량을 정확히 예측 하기 어렵기 때문이다. 

만약 한 사용자마다 실제로 6TB씩의 물리 저장소를 배정한다면 24TB의 저장공간이 필요하다.
하지만 사용자들이 각 1TB의 용량만을 사용했다면 총 4TB의 용량을 사용한 것이다. 이렇게 되면 20TB의 용량 낭비와 장비공간 낭비, 전력 낭비가 생기게 된다.

씬 프로비져닝으로 데이터를 저장하는 방법들은 각기 다르겠지만, 본질은 실제 물리 용량을 속여서 실제 자원/비용을 줄이는 것이다. 







씬 프로비저닝(Thin Provisioning)의 탄생 배경

전형적인 스토리지 관리 체계에서는 충분한 데이터 증가량을 고려하여 스토리지 용량을 미리 할당함으로써 용량 추가 할당에 따른 서비스 다운타임을 최소화하는 방식을 사용했다. 일명 Fat Provisioning 방식으로 처음부터 많은 용량의 스토리지를 도입함으로써 초기 도입 비용을 증가시키고, 데이터 증가량의 정확한 예측이 안될 경우 스토리지의 낭비를 초래하였으며, 향후 용량 추가 시에도 많은 시간과 비용을 필요로 한다.

결과적으로 비용은 비용대로 많이 소요되고 서비스 다운타임 또한 발생하는 문제점을 가지고 있다. 그러나 이제는 Thin Provisioning 기법을 사용하여 스토리지에 남아도는 용량 없이 꼭 필요한 만큼, 필요한 때 사용할 수 있도록 스토리지를 날씬(Thin)하게 만들 수 있게 되었다. 즉 스토리지 용량을 애플리케이션이 당장 필요로 하는 수준으로 제한(물리적 공간 할당)하되 마치 사용자는 많은 공간(가상 할당)을 사용 하고 있는 것처럼 보여준다. 그러다가 실질적인 용량 추가 요청이 있을 시 조금씩 용량을 늘려주게 됨으로써 스토리지 활용률을 높이는 것이다.

공통 스토리지 풀




netapp 씬 프로비저닝 기본원리 

대량의 스토리지를 할당하고 스토리지가 오랫동안 사용되지 않은 상태로 방치되는 여러 가지 상황이 있을 수 있습니다. 예를 들어 한 디자인 대학에서는 학생과 교직원용으로 27.5TB의 스토리지를 할당해야 한다고 예측했지만 대부분의 학생과 교직원은 스토리지를 조금만 사용하거나 전혀 사용하지 않았습니다.

하지만 이 학교는 NetApp 스토리지의 씬 프로비저닝을 사용하여 단 3.5TB의 물리적 스토리지(활용률 80%)를 통해 이러한 할당을 충족할 수 있었습니다(8:1 이상의 초과 할당률). 씬 프로비저닝을 사용하여 추가 스토리지 구입에 필요한 9만 달러 이상의 추가 비용이 절감된 것입니다.

NetApp 씬 프로비저닝은 물리적 스토리지 풀에 실제 존재하는 것보다 더 많은 논리적 스토리지를 호스트 또는 사용자에게 제공할 수 있도록 설계되었습니다. 공간을 미리 할당하는 대신 데이터가 기록될 때 각 볼륨 또는 LUN에 동적으로 스토리지 공간이 할당됩니다. 대부분의 구성에서는 볼륨 또는 LUN의 데이터가 삭제되고 Snapshot 복사본에서 이를 사용하지 않는 경우에도 공통 스토리지 풀에 여유 공간이 다시 생기게 됩니다.

스토리지 프로비저닝에 대한 이러한 접근 방식에는 다음과 같은 여러 가지 이점이 있습니다.

  • 위의 예에서 제안한 것처럼 할당되었지만 사용되지 않는 많은 양의 스토리지를 절약할 수 있습니다.
  • 높은 활용률로 인해 필요로 하는 스토리지 용량이 줄어들게 되므로 직접 자본 비용(capex)이 절감됩니다.
  • 데이터 센터에서 스토리지가 차지하는 공간이 줄어들고 필요한 전력 및 냉각 수요가 감소되므로 운영 비용(opex)이 절감됩니다.
  • 스토리지 가격은 지속적으로 하락하므로 추가 용량이 필요한 경우 해당 용량을 미리 구입하는 경우에 비해 더 저렴하게 구입할 수 있습니다.
  • 단일 여유 스토리지 풀을 관리할 수 있기 때문에 용량 계획이 단순합니다. 여러 애플리케이션 또는 사용자가 동일한 여유 공간 풀에서 스토리지를 할당할 수 있으므로 일부 볼륨에서는 용량이 제한되고 다른 볼륨에서는 용량이 남는 상황이 발생하지 않습니다.
  • 스토리지 환경이 더욱 민첩해지며 변화에 더 쉽게 대응할 수 있게 됩니다.

기존 프로비저닝과 NetApp 씬 프로비저닝 비교

그림 1) 기존 프로비저닝과 NetApp 씬 프로비저닝 비교.

기본 원리 장에서는 NetApp 씬 프로비저닝 구현 방법, 가장 일반적인 사용 사례, SAN 및 NAS 환경 모두에서 씬 프로비저닝을 구현하는 사례 등에 대해 알아봅니다.


                                        ................

http://www.netapp.com/kr/communities/tech-ontap/tot-btb-thin-provisioning-1011-ko.aspx





NetApp에서 발표한 씬프로지비저닝에 관한 소개 자료입니다.

 

본문 내용 중 :

 

3. 씬 프로비저닝
3.1 정의
씬 프로비저닝이란 스토리지 시스템에서 실제로 사용할 수 있는 것보다 많은 스토리지 공간을 스토리지
시스템과 연결된 호스트 또는 서버에 제공하는 것입니다. NetApp 스토리지 시스템은 항상 이렇게 정교한 FC
및 iSCSI 프로비저닝 기능을 제공해 왔으며, Data ONTAP 7.0과 함께 출시된 FlexVol 기술은 이러한
유연성을 더욱 증가시켰습니다. 스토리지 시스템에 5,000GB의 가용 스토리지 용량이 있지만 스토리지
관리자가 15개의 호스트에 각각 500GB의 LUN을 매핑하는 것도 씬 프로비저닝의 한 가지 예입니다. 이
예에서 스토리지 관리자는 스토리지 시스템의 가용 공간이 5,000GB밖에 되지 않음에도 불구하고 호스트가
7,500GB의 스토리지 공간이 있는 것처럼 인식하게 만든 것입니다. 15개의 호스트가 제공된 500GB를 모두
한꺼번에 사용한다면 분명 문제가 발생할 것입니다. 스토리지 관리자는 시스템을 모니터링하여 필요에 따라
스토리지를 추가해야 합니다.
이러한 사례는 다른 산업 분야에서도 쉽게 찾아볼 수 있습니다. 예를 들어, 모든 사람이 동시에 수도꼭지를
튼다면 수자원관리공사와 같은 기관에서는 적절한 수압으로 물을 공급할 수 없을 것입니다. 이러한 기관은
특정 퍼센트의 사람만이 동시에 물을 사용한다는 사실을 전제하고 계획을 세웁니다. 마찬가지로, 은행도 모든
고객이 계좌에 있는 돈을 동시에 전부 인출할 수 있게 할 만큼 많은 현금을 보유하고 있지 않습니다. 은행은
특정 시기에 일정 퍼센트의 고객만이 돈을 인출할 것이라고 가정하고 계획을 세웁니다. 이 두 가지 사례는 씬
프로비저닝이 스토리지 분야를 비롯한 대규모 환경에 더 적절하다는 것을 보여줍니다. 스토리지 시스템의
규모가 크고 스토리지를 활용하는 사용자나 어플리케이션이 많을수록 씬 프로비저닝으로부터 얻을 수 있는
장점도 많아집니다.


'학습자료 > 이론' 카테고리의 다른 글

장고(Django)의 CSRF 웹 취약점 대응[펌]  (0) 2014.11.25
posted by cozyboy
:
학습자료/리눅스 2013. 11. 6. 11:48

(ubuntu interface no IP address on the network)

 

vlan 구성 중, eth0에 이전에 사용하던 ip가 사라지지 않았다.

그때 interfaces 파일에 아래와 같이 기입하면 된다. 

 

 

$vim /etc/network/interfaces

auto eth0
iface eth0 inet manual
       up ifconfig $IFACE 0.0.0.0 up
       up ip link set $IFACE promisc on
       down ip link set $IFACE promisc off
       down ifconfig $IFACE down

 

$sudo ifdown eth0.20

$sudo ifdown eth0

 

$service networking restart

 

 

 

이전에 사용하는 interface를 down시켜 놓고 재시작하여야 적용된다.

 

[참고] http://www.cyberciti.biz/faq/setting-up-an-network-interfaces-file/

posted by cozyboy
:
학습자료/리눅스 2013. 11. 6. 10:39

만약 daum 의 ubuntu 저장소를 추가하고 싶다면

echo deb http://ftp.daum.net/ubuntu/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/daum.list

 

명령을 내려라.

 

현재 내 우분투 버전에서는 아래와 같이 입력된다.

 

deb http://ftp.daum.net/ubuntu/ raring main

 

내 우분투의 버전이 raring 이기 때문이다. lsb_release -sc 는 내 리눅스의 패키지 버전을 나타내준다.

 

위 방법은 저장소를 추가하는 방법이다. apt-get install 로 설치시 daum 사이트로 연결될지는 장담못한다.

 

 

 

저장소를 아예 바꾸고 싶다면 vi 로 /etc/apt/sources.list 를 열고

 

:%s/kr.archive.ubuntu.com/ftp.daum.net/g 명령을 통해 저장소위치를 치환해버려라.

 

혹은 sed -i 's/kr.archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list


[펌] oncellboy.tistory.com


posted by cozyboy
:
학습자료/네트워크 2013. 11. 6. 10:36

putty 의 기본설정으로 스위치 콘솔이 연결 되지 않을 떄가 있다.  장치 관리자에서 포트의 설정을 바꾸어 사용하면 된다.


1. 장치 관리자 -> 포트(COM & LPT) -> COM3 


2. 포트 설정

Baud rate : 9600

data bits : 8

stop bit : 1

parity none

flow control xon/xoff 


3. putty로 스위치 콘솔 접속


'학습자료 > 네트워크' 카테고리의 다른 글

[리눅스] route delete  (0) 2014.05.21
vlan 설정(ubuntu)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
posted by cozyboy
:
학습자료/네트워크 2013. 11. 6. 09:57

1. 설치

$sudo apt-get update

$sudo apt-get install vlan


2. 설정

$ vconfig add eth0 10    (vlan id 10을 위한 새로운 인터페이스 생성)

$ vi /etc/network/interfaces    (주소 할당)

auto eth0.10              #자동으로 eth0.10을 up 시키기

#iface eth0.10 inet dhcp

iface eth0.10 inet static

address {ip}

netmask {net mask}

vlan-raw-device eth0   #vlan에서 사용하는 물리 인터페이스는 eth0

 

$ service networking restart




개념

Vlan 이란 Virtual Local Area Network 의 약자로 물리적 배치와 상관없이 논리적으로 LAN을 구성할 수 있는 기술이다.

예를 들자, 집에 2개의 스위치가 있고 2개의 스위치가 각각의 컴퓨터들을 연결했다고하자. 이 2개의 스위치는 서로 연결되지 않았다고하자. 그럼 2개의 스위치의 컴퓨터들은 서로 통신할 방법이 없다. 이것이 물리적 lan 환경이다. 물리적으로 서로를 떨어트려 독립적인 네트워크를 구성한 것이다.

VLAN 은 이런 물리적 네트워크 구성이 아닌 논리적 네트워크 구성을 가능케한다. 하나의 스위치가 있고 이 스위치에는 포트가 1~10 까지 있다고 하자. 1~5 를 VLAN 1 로 6~10을 VLAN 2 로 설정했다면 물리적으로 같은 스위치에 존재해도 VLAN 1과 VLAN 2는 서로 통신하지 못한다.

스위치의 모든 인터페이스는 동일 브로드캐스트 도메인에 포함되어 있으나 VLAN을 적용할 경우 스위치의 일부 인터페이스를 하나의 브로드캐스트 도메인으로 구성하고, 다른 인터페이스를 또다른 브로드캐스트 도메인으로 구성하여 여러 개의 도메인을 만들수 있습니다. 이렇게 스위치에 의해 논리적으로 만들어진 브로드 캐스트 도메인을 VLAN이라고 합니다.







vlan 개념, 장점, 구성 : http://piaoguangyuan.wordpress.com/2013/09/25/vlan-%EA%B0%9C%EB%85%90-%EC%9E%A5%EC%A0%90-%EA%B5%AC%EC%84%B1/

* vlan 개념 정리 : http://helpboy.tistory.com/entry/%ED%8D%BC%EC%98%A8%EA%B8%80-VLAN-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC


'학습자료 > 네트워크' 카테고리의 다른 글

[리눅스] route delete  (0) 2014.05.21
스위치 콘솔 연결(시리얼 포트 연결)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 11. 4. 13:10

style="position:absolute;left:50%; width:300px; overflow:hidden; margin-left:-100px;"



http://blog.daum.net/infominton/57

'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

jquery datatable synchronous  (0) 2015.04.17
jquery 이벤트 찾기  (0) 2015.04.17
[css] body 100% height  (0) 2013.10.18
[jquery] html 조작  (0) 2013.10.17
[jquery] script src 추가하기  (0) 2013.10.17
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 18. 02:50



html,body

{

  height: 100%;

  padding: 0px;

  margin: 0px;

}



http://stackoverflow.com/questions/6654958/make-body-have-100-of-the-browser-height

'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

jquery 이벤트 찾기  (0) 2015.04.17
css 가운데 정렬  (0) 2013.11.04
[jquery] html 조작  (0) 2013.10.17
[jquery] script src 추가하기  (0) 2013.10.17
[jquery] check box  (0) 2013.10.16
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 17. 16:46

[HTML 내용 추가하기]

 

$(selector).append(content)

append() 메소드는 일치하는 HTML 엘리먼트 안에 컨텐츠를 추가시킵니다.

 

$(selector).prepend(content)

prepend() 메소드는 일치하는 HTML 엘리먼트 안의 내용 앞쪽에 컨텐츠를 추가시킵니다.

$(selector).after(content)

after() 메소드는 일치하는 모든 엘리먼트 뒤쪽에 HTML 내용을 삽입합니다.

 

$(selector).before(content)

before() 메소드는 일치하는 모든 엘리먼트 앞쪽에 HTML 내용을 삽입합니다.



[html 내용 제거하기]

$(selector).detach() – 지정한 요소를 포함 하위 요소 모두 제거

$(selector).empty() – 지정한 요소의 하위 요소를 제거

$(selector).remove() – 지정한 요소를 포함 하위 요소 모두 제거, 요소와 관련된 이벤트와 데이터 모두 제거



[html 내용 변경]

$(selector).html(content) → 선택한 엘리먼트의 HTML 내용을 변경한다



[참조]

http://findfun.tistory.com/255

http://blog.naver.com/PostView.nhn?blogId=topsaga&logNo=140155679866

http://blog.daum.net/haha25/5390044





'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

css 가운데 정렬  (0) 2013.11.04
[css] body 100% height  (0) 2013.10.18
[jquery] script src 추가하기  (0) 2013.10.17
[jquery] check box  (0) 2013.10.16
jquery 모든 문자 변경  (0) 2013.10.16
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 17. 16:31
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://somedomain.com/somescript";
$("head").append(s);

http://stackoverflow.com/questions/9413737/how-to-append-script-script-in-javascript

'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

[css] body 100% height  (0) 2013.10.18
[jquery] html 조작  (0) 2013.10.17
[jquery] check box  (0) 2013.10.16
jquery 모든 문자 변경  (0) 2013.10.16
[javascript] parseint resturn NaN  (0) 2013.10.16
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 16. 17:35

1. checked 여부 확인

1
2
$("input:checkbox[id='ID']").is(":checked") == true false  /* by ID */
$("input:checkbox[name="NAME"]).is(":checked") == true : falce /* by NAME */

그냥 $('#myid').is(':checked') 로 쓰면 되는걸??

2. checked/unchecked 처리

1
2
$("input:checkbox[id='ID']").attr("checked"true); /* by ID */
$("input:checkbox[name='NAME']").attr("checked"false); /* by NAME */

3. 특정 라디오버튼 선택 / 모든 라디오버튼 선택해제

1
2
$("input:radio[name='NAME']:radio[value='VALUE']").attr("checked",true);
$("input:radio[name='NAME']").removeAttr("checked");



전체선택 체크박스를 선택하면 그 아래의 모든 체크박스를 선택해주는 것을 만들어보자.


1
2
3
4
5
<label><input type='checkbox' id='check_all' class='input_check' /> <b>전체선택</b></label>
<ul class='select_subject'>
<label><input type='checkbox' class='input_check' name='class[1]' value='1' /> <b>1</b></label>
<label><input type='checkbox' class='input_check' name='class[2]' value='2' /> <b>2</b></label>
</ul>


     


이런식으로 html이 있고, javascript 부분은 


1
2
3
4
5
6
7
$(function(){
    $("#check_all").click(function(){
        var chk = $(this).is(":checked");//.attr('checked');
        if(chk) $(".select_subject input").attr('checked'true);
        else  $(".select_subject input").attr('checked'false);
    });
});


같이 해주면 된다.



[펌] http://hobbiez.tistory.com/321


'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

[jquery] html 조작  (0) 2013.10.17
[jquery] script src 추가하기  (0) 2013.10.17
jquery 모든 문자 변경  (0) 2013.10.16
[javascript] parseint resturn NaN  (0) 2013.10.16
json filter  (0) 2013.10.16
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 16. 11:08

$('#date_start_display').val()가  : 2013-10-13 일때,


var fromDate = $('#date_start_display').val().replace('-', '');

console.log('a:'+fromDate);

결과 : a:2013010-13



var fromDate = $('#date_start_display').val().replace(/-/g, '');

console.log('a:'+fromDate);

결과 : a:201301013

'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

[jquery] script src 추가하기  (0) 2013.10.17
[jquery] check box  (0) 2013.10.16
[javascript] parseint resturn NaN  (0) 2013.10.16
json filter  (0) 2013.10.16
ajax POST (request payload)  (0) 2013.10.16
posted by cozyboy
:
언어&플랫폼/Html/JQuery 2013. 10. 16. 09:56
var s = '';

var num = parseInt(s) || 0;


NaN은 if문으로 잡히지도 않는다._-;; 위와 같이 처리하든지, 아래 url 참조.


http://stackoverflow.com/questions/6736476/javascript-parseint-return-nan-for-empty-string





비록 현재 왕성한 액션 히어로의 역할로 웹의 커다란 한 부분을 담당하고 있는 JavaScript라도 그 결점은 있기 마련이고, 언젠가는 이러한 언어 설계상의 오류가 자기의 뒤통수를 때릴 때가 있을 것이다. 결국, 미리 알아서 조심해야지.

JavaScript에서 NaN 값은 not a number라는 뜻으로, 즉 숫자가 아니라는 의미이다. 하지만,

typeof NaN === 'number'    // true

이렇듯, typeof로는 NaN와 숫자를 구분할 수가 없거니와, 자신과의 비교도 불허한다.

NaN === NaN    // false
NaN !== NaN    // true

결국, JavaScript에서는 숫자와 NaN를 구분하는 isNaN라는 함수를 제공하고 있다:

isNaN(NaN)       // true
isNaN(0)         // false
isNaN('oops')    // true
isNaN('0')       // false

결국, 숫자를 구별하는 가장 확실한 방법으로 다음과 같은 함수가 쓰일 수 있겠다:

function isNumber(value) { 
    return typeof value === 'number' && isFinite(value);
}

typeof 얘기가 나와서 그러는데,

typeof null     // object

null 대신에 object를 돌려받는다. 그래서, null 값을 알아보기 위한 가장 좋은 방법은 아래와 같다:

my_value === null

또한, JavaScript의 Reserved Words는 보통 변수 이름으로 사용될 수 없는데, 굳이 reserved words를 object literals의 키 값으로 사용하려 할 경우에는, 항상 따옴표도 함께 써줘야 하고 dot notation 대신에 bracket notation을 사용해야 한다:

var method;                // ok
var class;                 // illegal
object = {box: value};     // ok
object = {case: value};    // illegal
object = {'case': value};  // ok
object.box = value;        // ok
object.case = value;       // illegal
object['case'] = value;    // ok

JavaScript는 프로그램 상 오류를 자동 수정하려는 성질이 있어서 문단 마지막에 항상 semicolons을 삽입하는데, 이것이 오히려 아래처럼 뜻하지 않는 문제를 일으킬 수도 있다.

return
{
    status: true
};

return 뒤에 바로 semicolon이 붙어버리면서 결국, undefined 값을 돌려주게 된다. 그래서 { 는 항상 아래처럼 앞 줄의 맨 마지막에 붙여주는 스타일을 손에 익혀야 한다.

return {
    status: true
};

그리고 string을 integer로 바꾸어주는 parseInt 함수를 사용할 때는 항상 radix 매개 변수를 사용하는 버릇을 들여서, 아래와 같이 뜻하지 않는 결과를 초래하는 일을 미연에 방지한다.

parseInt("08")      // 0
parseInt("09")      // 0
parseInt("08", 10)  // 8

또 하나, JavaScript의 소수점 계산은 형편없는 것으로 악명높다:

alert(0.1 + 0.2); // 0.30000000000000004

이것은 JavaScript만의 문제가 아니라, Binary Floating-Point Arithmetic(IEEE 754)을 채용한 언어들에서 공통적으로 나타나는 문제점으로, ECMAScript 4에서는 Real Decimals의 채용하면서 이를 극복할 수 있는 문제지만, 당분간은 미리 scaling 해서 이 문제를 피할 수 밖에.

다음은 JavaScript에서 사용되는 여러가지 "falsy" 값들이다:
0(Number), NaN(Number), "(String), false(Boolean), null(Object), undefined(Undefined).

모두 "falsy" 값을 가지지만 번갈아 서로 혼용되서 사용될 수는 없어서, 예를 들어 null값을 구하는데, undefined를 대신 사용하면 잘 못된 결과를 얻게 된다. 이 얘기는 자동 타입 변환(type coercion)을 일으키는 == 연산자 대신에 더 염격한 === 연산자를 사용하라는 얘기와 맞닿아 있다.

이 외에도, 실수든 혹은 필요에 의해서든 상호 운용성을 떨어뜨리는 global variables의 남용 등, JavaScript 문법 검사기인 JSLint를 한번 돌려 본 사람이라면 많은 골칫거리를 떠안게 된다. 하지만, 대부분의 골 때리는 일들은 잘못된 습관에서 비롯되는 경우가 많으므로 평소에 많은 코드를 접하면서 좋은 습관을 들이도록 노력하는 것이 중요할 것이다.


[펌] http://appletree.or.kr/blog/web-development/javascript/javascript%EC%9D%98-%EC%9D%B4%EB%9F%B0-%EC%A0%90%EC%9D%B4-%EB%92%A4%ED%86%B5%EC%88%98%EB%A5%BC-%EB%95%8C%EB%A6%AC%EB%8D%94%EB%9D%BC/

'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글

[jquery] check box  (0) 2013.10.16
jquery 모든 문자 변경  (0) 2013.10.16
json filter  (0) 2013.10.16
ajax POST (request payload)  (0) 2013.10.16
jquery select box 제어  (0) 2013.10.10
posted by cozyboy
: