리눅스의 여러가지 팁들

입질쾌감 물때표

ssh를 이용한 파일 복사 방법

$ scp ./파일이름 계정@아이피:/home/목적파일명

cp 명령어랑 유사하다고 생각하면 된다. 어렵지 않..아요~! FTP로 접속하기 귀찮다면 SCP를 이용해서 파일을 가져오는 것도 괜찮은 방법이라고 생각된다.

동시접속자 확인 방법

# netstat -anp | grep :21 | grep ESTAB | wc -l

wlan0 에러 : SIOCSIFFLAGS: No such file or directory
이러한 메세지가 나올경우,…

웹테러는 커널과 /lib/modules 디렉을 한꺼번에 복사해서 사용했었다.
그리고 새로 부팅후 wlan0를 잡으려고 위의 명령을 때렸더니
에러가 튀어나와 왜그런가 싶어서 라이브시디로 다시 부팅한후 위의 명령을 다시 쳐보니 아무런 문제가 없던것이다.

그래서 커널을 다시 컴파일을 하니 문제없이 해결되었다.
커널에서 뭔가 파일을 찾아야 했는데 없었나보다.

암튼 문제는 해결되었다. 커널을 완벽히 복사하는걸 어떻게 해야 하는지 궁금하다..

read 명령어를 활용하여 F1~F12 키를 bind로 mapping 하는 방법
Most keyboards today come with an extra row of function keysat the top of the keyboard. These function keys can be customized and usedwithin bash, or any other shell, by binding the key sequences to a command inthe shell. Some keys may be intercepted by the window manager or the terminalprogram, such as konsole or gnome-terminal. You can retain those key bindingsand use unassigned keys inside the shell, or you can reconfigure them to use acertain key in the shell instead.

To obtain the key sequence from a function key, use the readcommand. The following is an example of pressing the [F12] key:

$ read
^[[24~
Note that different keyboards will produce different keysequences, and modifiers to the function keys (such as [Ctrl][F12] or [Shift][F12])will produce other sequences as well.

The next step is to bind that key sequence to a particularshell command. For example, you can bind [F12] to the”history-search-backward” shell command:

$ bind ‘”e[24~”: history-search-backward’
Make sure you write the key sequence as e[24~ rather than ^[[24~.This is because the ^[ sequence isequivalent to the [Esc] key, which is represented by e in the shell. So, for instance, if the key sequence was ^[[OP the resulting bind code to usewould be e[OP.

Not only does the bind command bind function keys, but youcan also use bind to map key sequences (such as [Esc][P] or [Esc][Q]) bywriting the bind key code as ep and eq respectively.

For a list of shell commands that you can use, examine the /etc/inputrc file.

배드블럭 fsck로 마킹하기
배드블럭 체크
[사용법] badblock -sv [filesystem]

[root@localhost root]# badblocks -sv /dev/sda2
Checking for bad blocks in read-only mode
From block 0 to 6144862
Checking for bad blocks (read-only test): 614486080/ 6144862
6144861
done
Pass completed, 2 bad blocks found.

배드블럭 마크
[사용법]fsck.ext3 -cvf [filesystem] <-- ext3 filesystem의 경우 : 배드블럭에 내용이 추가되는 것을 방지한다.

[root@localhost root]# fsck.ext3 -cvf /dev/sda2
e2fsck 1.32 (09-Nov-2002)
/: recovering journal
Checking for bad blocks (read-only test): done
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/: ***** FILE SYSTEM WAS MODIFIED *****
/: ***** REBOOT LINUX *****

86973 inodes used (11%)
597 non-contiguous inodes (0.7%)
# of inodes with ind/dind/tind blocks: 3786/32/0
568599 blocks used (37%)
0 bad blocks
0 large files

61329 regular files
4213 directories
2522 character device files
15884 block device files
14 fifos
4160 links
3000 symbolic links (3000 fast symbolic links)
2 sockets
——–
91124 files

만일 badblocks이 한 bad block이 이미 사용되었음을 알린다면, e2fsck는 그 블럭을 다른 곳에 옮기려고 시도한다. 만일 그 블럭이 불안정한 정도가 아니라 완전히 파괴되었다면, 파일의 내용도 파괴될 것이다.

간단히 포트스캐닝 할때 쓰는 것

webterror ~ # emerge nmap

 * IMPORTANT: 6 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Calculating dependencies... done!
>>> Verifying ebuild manifests
>>> Starting parallel fetch
>>> Emerging (1 of 2) net-libs/libpcap-1.1.1-r1
>>> Installing (1 of 2) net-libs/libpcap-1.1.1-r1
>>> Emerging (2 of 2) net-analyzer/nmap-5.51
>>> Installing (2 of 2) net-analyzer/nmap-5.51
>>> Recording net-analyzer/nmap in "world" favorites file...
>>> Jobs: 2 of 2 complete                           Load avg: 1.22, 0.67, 0.43
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

 * IMPORTANT: 6 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

webterror ~ # nmap localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2012-02-18 16:21 Local time zone must be set--see zic manual page
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000015s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.33 seconds
webterror ~ # 

bind 네임서버를 로그 보면서 foreground에서 실행시킬때

$ named -d 5 -g
21-Sep-2011 16:23:29.283 zone_shutdown: managed-keys-zone ./IN: shutting down
21-Sep-2011 16:23:29.283 calling free_rbtdb(.)
21-Sep-2011 16:23:29.283 done free_rbtdb(.)
21-Sep-2011 16:23:29.283 zone_shutdown: zone hostname.bind/CH: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA/IN: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone 8.B.D.0.1.0.0.2.IP6.ARPA/IN: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone localhost/IN: shutting down
21-Sep-2011 16:23:29.283 calling free_rbtdb(localhost)
21-Sep-2011 16:23:29.283 done free_rbtdb(localhost)
21-Sep-2011 16:23:29.283 zone_shutdown: zone id.server/CH: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone version.bind/CH: shutting down
21-Sep-2011 16:23:29.283 res 0xb72640b8: detach
21-Sep-2011 16:23:29.283 res 0xb72640b8: destroy
21-Sep-2011 16:23:29.283 dns_requestmgr_detach: 0xb726b068: eref 0 iref 0
21-Sep-2011 16:23:29.283 mgr_destroy
21-Sep-2011 16:23:29.283 calling free_rbtdb(.)
21-Sep-2011 16:23:29.283 done free_rbtdb(.)
21-Sep-2011 16:23:29.283 zone_shutdown: zone webterror.sub.bbf.com.tw/IN: shutting down
21-Sep-2011 16:23:29.283 calling free_rbtdb(webterror.sub.bbf.com.tw)
21-Sep-2011 16:23:29.283 done free_rbtdb(webterror.sub.bbf.com.tw)
21-Sep-2011 16:23:29.283 zone_shutdown: zone 9.E.F.IP6.ARPA/IN: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone A.E.F.IP6.ARPA/IN: shutting down
21-Sep-2011 16:23:29.283 zone_shutdown: zone sub.bbf.com.tw/IN: shutting down
21-Sep-2011 16:23:29.283 res 0xb7264008: detach
21-Sep-2011 16:23:29.283 res 0xb7264008: destroy
21-Sep-2011 16:23:29.283 dns_requestmgr_detach: 0xb72669c8: eref 0 iref 0
21-Sep-2011 16:23:29.283 mgr_destroy
21-Sep-2011 16:23:29.283 calling free_rbtdb(.)
21-Sep-2011 16:23:29.283 done free_rbtdb(.)
21-Sep-2011 16:23:29.283 calling free_rbtdb(.)
21-Sep-2011 16:23:29.283 done free_rbtdb(.)
21-Sep-2011 16:23:29.284 calling free_rbtdb(sub.bbf.com.tw)
21-Sep-2011 16:23:29.284 done free_rbtdb(sub.bbf.com.tw)
21-Sep-2011 16:23:29.284 exiting

nslookup, dig 사용방법

nslookup, dig는 윈도우 또는 bind에서 제공하는 디버깅 도구이다. 이 도구를 이용해 네임 서버에 직접 질의를 던져 dns 시스템이 알고 있는 정보를 얻어 올 수 있다. 이 도구는 서버가 정상적으로 동작하고 제대로 설정되었는지 알아볼 때 유용하다. 또한 원격 서버가 제공하는 정보를 질의 때에도 사용한다.

이 도구를 사용방법을 익히는 것이 트러블 슈팅의 기본이므로 사용법을 알아보도록 한다.

▪ 윈도우

nslookup [option] [hostname] [server]
대화식 모드로 사용하기 위해 명령 프롬프트에서 “nslookup”을 입력한다.

C:> nslookup
Default Server: kns.kornet.net
Address: 168.126.63.1
>
set OPTION - 옵션 설정
all - 옵션, 현재 서버 및 호스트 인쇄
[no]debug - 디버깅 정보 인쇄
[no]d2 - 포괄적 디버깅 정보 인쇄
[no]defname - 각 쿼리에 도메인 이름 추가
[no]recurse - 쿼리에 순환 응답 요청
[no]search - 도메인 검색 목록 사용
[no]vc – tcp기반 질의 전송
domain=NAME - 기본 도메인 이름을 NAME으로 설정
srchlist=N1[/N2/.../N6] - 도메인을 N1로 설정하고 검색 목록을 N1, N2 등으로 설정
root=NAME - 루트 서버를 NAME으로 설정
retry=X - 재시도 횟수를 X로 설정
timeout=X - 초기 시간 제한 간격을 X 초로 설정
type=X - 쿼리 종류(예: A, ANY, CNAME, MX, NS, PTR, SOA, SRV) 설정
querytype=X - type과 동일
class=X - 쿼리 클래스(예: IN(인터넷), ANY) 설정
[no]msxfr - MS fast zone transfer(빠른 영역 전송) 사용
ixfrver=X - IXFR 전송 요청에서 사용할 현재 버전
server NAME - 현재의 기본 서버를 사용하여 기본 서버를 NAME으로 설정
lserver NAME - 초기 서버를 사용하여 기본 서버를 NAME으로 설정
finger [USER] - 현재의 기본 호스트에서 선택적인 NAME 핑거(finger)
root - 현재의 기본 서버를 루트로 설정
ls [opt] DOMAIN [> FILE] - DOMAIN의 주소 목록 표시(선택적으로 FILE로 출력 가능)
-a - 정식 이름 및 별칭 목록 표시
-d - 전체 레코드 목록 표시
-t TYPE - 지정된 종류의 레코드(예: A, CNAME,
MX, NS, PTR 등) 목록 표시
view FILE - 'ls' 출력 파일을 정렬하여 pg를 통해 보기
exit - 프로그램 종료

▪ 유닉스

dig
dig [@네임서버] 도메인 [쿼리타입] [+쿼리옵션]
예) dig @168.126.63.1 daum.net a +norecursive

쿼리타입
a : 네트워크 주소
any : 특정 도메인에 대한 모든 정보
mx : 도메인의 메일 교환
ns : 네임서버 정보
soa : Zone 파일 상단의 authority 레코드
hinfo : 호스트 정보
axfr : Zone 파일 교환(transfer)
txt : arbitrary number of strings

쿼리옵션 옵션
-x address 리버스 존에 대해 쿼리할 때 사용한다.
예) dig @168.126.63.1 –x 168.126.63.1
-p port : 질의 포트를 53번이 아닌 특정 포트로 할 때 사용
+norecursive : 재귀 기능을 이용하지 않도록 한다.
+vc tcp기반 질의전송
+trace : root 네임서버로부터 도메인이 찾아지는 경로 보여주기
예) dig @211.196.153.150 www.daum.net +trace

hdparm 사용방법

webterror webterror # emerge hdparm

* IMPORTANT: 4 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Calculating dependencies... done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) sys-apps/hdparm-9.36
>>> Installing (1 of 1) sys-apps/hdparm-9.36
>>> Recording sys-apps/hdparm in "world" favorites file...
>>> Jobs: 1 of 1 complete Load avg: 1.23, 1.70, 2.20
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

* GNU info directory index is up-to-date.

* IMPORTANT: 4 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

webterror webterror # emerge dhparm
^Cwebterror webterror # hdparm -c -d /dev/hda

/dev/hda:
IO_support = 0 (default)
using_dma = 1 (on)
webterror webterror # hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 74 MB in 3.03 seconds = 24.39 MB/sec
webterror webterror # hdparm -c 1 -d 1 /dev/hda

/dev/hda:
setting 32-bit IO_support flag to 1
setting using_dma to 1 (on)
IO_support = 1 (32-bit)
using_dma = 1 (on)
webterror webterror # hdparm -c -d /dev/hda

/dev/hda:
IO_support = 1 (32-bit)
using_dma = 1 (on)
webterror webterror # hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 86 MB in 3.04 seconds = 28.26 MB/sec
webterror webterror #

네트워크 default gateway 간단하게 설정하기

route add -net 192.168.Y0.0 netmask 255.255.255.0 dev eth0
route add default gw 192.168.Y0.1
route add default gw 192.168.X0.1 dev eth0:1 metric 1
ifconfig eth0:1 192.168.X0.X netmask 255.255.255.0
route add -host 192.168.X0.X eth0:1

젠투에서 유저 Group에 추가하는 방법

gpasswd -a webterror games

gentoo에서 portage-utils 사용방법
app-portage/portage-utils 라는 패키지가 있습니다. C로 작성된 조그만 portage 도우미라는 설명이 붙은 이 패키지는 젠투에서 패키지 관리를 하는 데 있어 여러모로 편리하게 사용할 수 있는 도구입니다.

qlist는 표준출력(stdout)으로 패키지 이름을 그대로 출력해주는 도구입니다.

시 스템에 대 변혁-_-을 부득이하게 일으켜야 할 때, 특정 분류에 속한 패키지를 전부 건드리고 싶을 때가 있습니다. 그런데 어느게 설치되어 있는 녀석인지, 어떤게 설치되어 있지 않은 녀석인지 솔직히 구분하기 귀찮습니다. x11-* 밑에만 있는 것도 수백개인데, 어느 세월에 그걸 뒤지고 있을리는 없지요.

이럴 때 구세주처럼 쓸 수 있는 녀석이 있습니다: 바로 qlist 지요. 간단한 예를 들어볼까요?

# qlist -I x11-apps/*

이렇게 날려주면 x11-apps 분류 밑의 모든 패키지 중 설치되어 있는 녀석만 출력해줍니다. -I를 빼면 그 분류를 전부 다 출력하지요. 무려 색상까지 넣어서 말이지요.

그 런데, 막상 색상이 들어가면 표준출력으로 나와도 사실 아무 쓸모가 없지요. “로 묶어줘 봤자 터미널 색상코드 때문에 에러만 잔뜩 날 겁니다. 그래서 컬러를 죽이는 옵션도 줍니다: -C 옵션을 말이죠. (꼭, 대문자로 넘겨줘야 합니다!)

# qlist -I -C x11-apps/*

이 러면 색상코드가 모조리 떨어져 나갑니다. 그럼 이제 응용해서 쓸 수도 있겠지요. 대표적이고, 일단 해서 별로 해가 없는 예제를 보여드리겠습니다. xorg-server가 크게 업데이트 되면(ABI가 바뀐다던지 말이죠.) x11-drivers 밑의 패키지를 다시 merge해줘야 하는 일이 생깁니다. 그럴때 이렇게 사용할 수 있겠지요:

# emerge `qlist -I -C x11-drivers/*`

처럼요. 좀 파괴적인 예를 들어볼까요? gnome이랑 X 싸그리 들어내버리고 싶을 때는 …

# emerge -C `qlist -I -C x11-* gnome-*`

물론, dev-libs나 media-libs 등의 분류에도 X에 대한 의존성이 있는 프로그램들이 넘쳐날테니, 위의 명령어로 날려주고 나서 의존성을 더 검사해서 개별적으로 날려줘야 하겠지만요.

강제 umount 방법

umount -l /dev/sda1

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다.