반응형




NTP를 설치하고 ntpd를 아무리 재시작하고 기다려도 계속 새벽 시간에서 변경이 되지 않는다. 

ntp.conf에 다른 설정을 모두 지워도 시간이 변경되지 않아 ntpq -q로 query를 주어보아도 Pear List를 확인해봐도 bora.time.net으로 아래와 같이 설정이 잘 되어 있는 것을 확인했다.


     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*time.bora.net   90.1.14.51       2 u   66   64    1    4.468  -10.283   0.001


왜 이럴까 하다고 혹시 지역 설정이 제대로 안되면 다른 지역의 설정을 가져오는 거 아닐까 해서 시간으로 확인을 해보니 정확하게 뉴욕 워싱턴과 일치 했다. 한국으로 설정이 되어있지 않고 워싱턴으로 설정 되어있으니 얘는 제대로 동작했는데 나만 왜안되지 이러고 있었구나...


매번 지역은 GUI로 설치하면서 그냥 클릭하고 넘어가서 제대로 몰랐는데 이번엔 GUI를 사용하지 않았으니 이런 실수가 있었나보다. 제대로 서울로 설정해주자.


/etc/localtime을 backup으로 보관해두자.

# mv /etc/localtime /etc/localtime.bak


/usr/share/zoneinfo 위치에 지역별 폴더가 있고 그 지역 폴더 안에 도시 정보가 있다. 

서울로 설정하니 Seoul이 정상적으로 있는지 확인한 후 이 파일을 /etc/localtime으로 변경해준다.

# cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime


재 적용하여 ntp를 다시 적용하기 위해 ntpd를 restart해준다.

# service ntpd restart


date 명령어로 제대로 현재 시간으로 설정되었는지 확인한다.

# date


반응형
반응형




아래와 같은 명령어로 dwarf 정보를 확인할 수 있다.


# readelf --debug-dump=info <binary> | grep -A 2 'Compilation Unit @'


실행 결과 :  


--

  Compilation Unit @ offset 0xccfed:

   Length:        0xc1fd (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xd91ee:

   Length:        0x43e (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xd9630:

   Length:        0x50a7 (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xde6db:

   Length:        0x348e (32-bit)

   Version:       4


반응형
반응형








출처 : http://packetlife.net/media/library/36/scapy.pdf

반응형
반응형





Linux에서 작업하다 보면 실수로 Ctrl+S가 눌리는 경우가 있다(보통 Ctrl+W를 누르려다 종종...)

그럴때면 아무것도 되지 않는데, 이게 무슨 버그나 아니면 터미널에 지원되지 않는 시그널이 전송되서 

세션에 문제가 생겼나 이런 생각도 들었었다(세션에 문제가 생기기엔 장시간 기다려도 안되더라..)


Unix계열 시스템에서 흔히 사용하는 제어 키 중에 하나로 아래와 같은 종류가 있다.

Ctrl + s : 현재의 모든 Output을 중지

Ctrl + q : Stop 되었던 모든 Output을 다시 동작

Ctrl + c : 현재 실행되는 Process를 Kill

Ctrl + d : 현재의 Shell 에서 Out ,"EOF(End Of File)" , 표준 입력에서 입력을 종료

Ctrl + l : Formfeed(shell clear)

Ctrl + z : 현재 실행 중인 프로세스를 Background로 Stop 시킴

Ctrl + b : 1 Character 커서를 뒤로 이동

Ctrl + f : 1 Character 커서를 앞으로 이동

Ctrl + p : 지난 1 Line을 붙여넣기함


이제 실수로 Ctrl + s로 화면을 멈추었다면 Ctrl + q로 다시 동작 시키자.






반응형
반응형







 linux에서 vim으로 코딩할때에 Macro,  변수, 함수 등을 보기 편하게 나타내 주는 Tag List라는 VIm Plugin이 있다. 상당히 편해서 주로 사용하는데 집에 리눅스를 설치하고, vim을 설치하고, tag list plugin을 다운 받아서 세팅해 놨다. Tag List를 다운받는 곳은 아래와 같다.

http://vim.sourceforge.net/scripts/script.php?script_id=273



 위에서 Tag List 압축파일을 다운받고, 압축을 풀면 plugin 폴더와 doc폴더가 있다. 이 두 폴더를 .vim 안에 압축을 풀어준다.

.

├── doc
│   └── taglist.txt
└── plugin

    └── taglist.vim


2 directories, 2 files




실행방법은 vim을 실행 후에 명령어 모드(:)로 아래와 같이 실행하면 된다.

:Tlist



하.지.만... 처음 실행을 하면 vim이 실행되기 전에 아래와 같은 에러가 발생할 수 있다.

Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.


 

위와 같은 에러는 Tag List는 Ctags를 이용하는데 Ctag가 설치되지 않아서 Tlist Plugin이 Load되지 않은 것이다.

http://ctags.sf.net에서 Ctags를 설치한 후 실행하면 정상적으로 실행이 된다.



반응형
반응형








 현재 CentOS를 사용중인데, dns server를 resolving 시키려고, /etc/resolv.conf에 아래와 같이 추가하였다.

nameserver 8.8.8.8



그리곤 service network restart를 했는데도 dns server가 resoved되지 않아 다시 /etc/resolv.conf를 확인하려 들어가니, 초기화가 다시 되어있었다. 문법상 오류가 있어서 초기화 되었나 싶어서 "nameserver=8.8.8.8"등 이리 저리 고쳐서 다시 넣어봤지만 계속 초기화 되었다. 이상해서 resolv.conf의 주석 전문을 확인하였더니 아래와 같이 되어있었다.

# Generated by NetworkManager



# No nameservers found; try putting DNS servers into your

# ifcfg files in /etc/sysconfig/network-scripts like so:

#

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

# DOMAIN=lab.foo.com bar.foo.com



중요한 부분만 보자면 아래와 같다.

nameserver를 찾지 못했음; DNS서버를 /etc/sysconfig/network-scripts/의 ifcfg파일에 아래와 같이 넣으시오;



예전에는 /etc/resolv.conf를 수정해서 service network restart만 하면 되었던거같은데, 우선 주석과 같이 

/etc/sysconfig/network-scripts/ifcfg-eth0을 수정하여 아래와 같이 변경한 후 service network restart를 해보았다.

DEVICE=eth0

IPADDR=192.168.10.110

NETMASK=255.255.255.0

NETWORK=192.168.10.0

DNS1=8.8.8.8

# If you're having problems with gated making 127.0.0.0/8 a martian,

# you can change this to something else (255.255.255.255, for example)

BROADCAST=192.168.10.255

GATEWAY=192.168.10.1

ONBOOT=yes

NAME=eth0




service network restart 후 /etfc/resolv.conf를 확인하니 아래와 같이 변경되었다.

# Generated by NetworkManager

nameserver 8.8.8.8



사실 /etc/resolv.conf를 수정 후에 service network를 restart할 필요없이 바로 사용 가능하다. 그래서 마치 /etc/resolv.conf에 nameserver 수정 후 바로 사용하면 dns server를 이용 가능하다. 

하지만 리부팅 등 network 스크립트가 한번 읽힌 후에는 초기화가 된다는 점을 알아두어야 한다.


반응형
반응형








처음 리눅스가 부팅할 때에 시작하는 프로세스는 init이라는 프로세스이며, 이 init이라는 프로세스가 RUN LEVEL에 따라서 각 다음 프로세스를 실행 시키게 된다. 즉 최상위 프로세스는 init이 된다. 그리고 각 RUN LEVEL에 따른 설정은 "/etc/rc.d/rc[RUNLEVEL].d" 안에 나열된 데몬들을 각 실행 순서에 따라 실행 시키게 된다. pstree 명령어로 각 프로세스[데몬]들의 상관관계를 확인할 수 있다.

예)

init─┬─NetworkManager─┬─dhclient

     │                └─{NetworkManager}

     ├─acpid

     ├─anacron

     ├─atd

     ├─auditd───{auditd}

     ├─automount───4*[{automount}]

     ├─avahi-daemon───avahi-daemon

     ├─bonobo-activati───{bonobo-activat}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─cupsd

     ├─2*[dbus-daemon───{dbus-daemon}]

     ├─dbus-launch

     ├─devkit-power-da

     ├─fcoemon

     ├─gconfd-2

     ├─gdm-binary───gdm-simple-slav─┬─Xorg

     │                              ├─gdm-session-wor

     │                              └─gnome-session─┬─at-spi-registry

     │                                              ├─gdm-simple-gree

     │                                              ├─gnome-power-man

     │                                              ├─metacity

     │                                              ├─polkit-gnome-au

     │                                              └─{gnome-session}

     ├─gnome-settings-───{gnome-settings}

     ├─gvfsd

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─lldpad

     ├─master─┬─pickup

     │        └─qmgr

     ├─5*[mingetty]

     ├─modem-manager

     ├─pcscd───{pcscd}

     ├─polkitd

     ├─pulseaudio───2*[{pulseaudio}]

     ├─rpc.idmapd

     ├─rpc.statd

     ├─rpcbind

     ├─rsyslogd───3*[{rsyslogd}]

     ├─rtkit-daemon───2*[{rtkit-daemon}]

     ├─sshd───sshd───bash───pstree

     ├─udevd───2*[udevd]

     └─wpa_supplicant




 각각의 폴더의 이름은 시작시키는 프로세스의 특성과 실행 우선순위와 이름을 나타내는데 형식은 다음과 같다.

[S,K]{숫자}{데몬이름}

 S 로시작하는 링크 파일은 부팅시 시작하는 Start Script Link File이다.

 K 로 시작하는 링크 파일은 부팅시 시작하지 않는  Kill Script Link File이다.


 각 스크립트들은 /etc/init.d/에 위치하고 있으며, 각 부트레벨에 따른 on/off 설정은 chkconfig로 설정 할 수 있다.

 예) chkconfig --level 345 sshd on


 

각 런레벨에 대한 특징들은 다음과 같으며 /etc/inittab에 주석으로 설명되어 있다.

0 - halt(시스템 종료 : 초기 기본 설정으로 사용하지 말것)

1 - Single User Mode

2 - Multiuser, without NFS( RUN LEVEL 3과 동일하지만 networking을 사용하지 않음)

3 - Full Multiuser Mode (Networking을 사용)

4 - unused

5 - X11 

6 - reboot (시스템 재시작 : 초기 기본 설정으로 사용하지 말것


런레벨을 변경하려면 아래와 같은 명령어로 간단하게 병경 가능하다

# telinit 3



 위와 같은 변경 방법은 시스템이 재시작된 후에는 적용되지 않는다는 것이다. 

 매 부팅마다 동일한 런레벨을 가지고 싶을 경우 /etc/inittab에 RUN LEVEL을 변경해주면 된다.

 아래 내용은 /etc/inittab의 내용이며 <변경될 부분>에 설정하고자 하는 런레벨을 설정하면 된다.

# inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:<변경될 부분>:initdefault:


반응형
반응형




1. RPM이(Red Hat Package Manager)란?

 + 원래 레드햇에서 사용되었던 패키지 파일.

 + 프로그램 패키지의 설치 및 제거의 관리를 편하게 하며 GNU의 GPL에 의해 배포되는 자유 소프트웨어

 + 확장자가 rpm으로 되어있으며 rpm 명령어로 쉽게 설치, 검색, 업데이트

 + SRPM은 RPM 소스, 확장자는 보통 "*.src.rpm". RPM은 SRPM을 각각의 아키텍쳐에 의해 패키징한 파일.


2. rpm파일 이름 구조

centos-release-6-4.el6.centos.10.x86_64.rpm


 + 패키지 이름 : centos-release

 + 패키지 버전 : 6

 + 릴리즈번호 : 4

 + 배포버전 : el6

 + os : centos

 + 아키텍쳐 : x86_64

                  (noarch : 모든CPU)


3. rpm 명령어 사용법

 # rpm <옵션> <패키지>


 + rpm -I : rpm 설치

 + rpm -U : 이미 설치된 패키지 업데이트 혹은 없으면 설치

 + rpm -v : 설치 정보 출력(verbose 모드)

 + rpm -e : 패키지 삭제(의존성 무시 : --nodeps)

 + rpm -qa : 모든 패키지에 대하여 질의

 + rpm -qi : 패키지 이름, 버전, 설명 정보 출력

 + rpm -qR : 현재 패키지가 의존하는 패키지 목록 출력

 + rpm -ql : 패키지 안의 파일 출력

 + rpm -qd : 문서 파일만 출력

 + rpm -qc : 설정 파일만 출력

 + rpm -qf : 이미 설치된 파일이 어느 패키지에 속한것인지 질의

 + rpm -qpl : 설치되지 않은 패키지 파일안의 파일들을 출력

 + rpm -qpi : 설치할 패키지 파일의 상세 정보를 출력


4. rpm 전체 해제 하는 방법

 # rpm2cpio <rpm파일> | cpio -idv



반응형
반응형








버추얼 박스에 Fedora 18을 설치하고 게스트 확장을 설치하려 하니 아래와 같은 에러가 발생한다.

아래 에러 로그는 /var/log/vboxadd-install.log에서 다시 확인 가능하다.


 *** Error: unable to find the sources of your current Linux kernel.



 해결을 하기 위해서는 gcc, dkms, kernel-devel 패키지를 설치한후 다시 시도하면 정상적으로 설치 가능하다.

 


# yum install gcc dkms kernel-devel



 세 패키지를 설치한 후에 재 시도하면 모두 정상적으로 설치 되는 것을 확인할 수 있다. 



반응형
반응형








 집에 친척 동생도 오고... 동생도 오고... 내 컴퓨터는 이것도 저것도 깔리고... 

 그냥 리눅스 깔고 윈도우 이미지를 여러개 떠놔서 친척들 올 때마다 이미지로 vm을 열어줘야 되겠다.

 부팅 디스크를 만들려 하는데 정품은 못쓰고... 오픈소스 뭐 있나 찾아보다보니,

 Fedora, CentOS Bootable USB를 만들어 주는 오픈소스를 찾았다. 아래에 주소...


  http://iso2usb.sourceforge.net/


 







반응형

+ Recent posts