┗System∑Sec†ion┛

Home

MediaLog

Guestbook

Admin

Write

'컴퓨터 서적 정리/Ubuntu Linux Toolbox'에 해당되는 글 41건

2011.08.20 [Chap14 #04] - 시스템 로그 작업

2011.08.20 [Chap14 #03] - iptsbles로 내장된 방화벽 구성

2011.08.20 [Chap14 #02] - 사용자 체크

2011.08.20 [Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs) (1)

2011.08.19 [Chap12 #02] - (2)파일전송(ftp, ssh)

2011.08.17 [Chap12 #02] - (1)파일전송(wget, curl)

2011.08.17 [Chap12 #01] - 웹 검색 명령어 실행(elinks)

2011.08.17 [Chap11 #07] - 네트워크 문제 해결

2011.08.13 [Chap11 #02] - 네트워크 인터페이스 카드 관리

2011.08.13 [Chap10 #07] - Hardware 조사

2011.08.13 [Chap10 #06] - Straight to the Kernel

2011.08.13 [Chap10 #05] - 시작과 런 레벨 제어

2011.08.13 [Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)

2011.08.13 [Chap9 #01] - 활성화 프로세스 보기(ps, top)

2011.08.12 [Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)

2011.08.11 [Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기

2011.08.10 [Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)

2011.08.10 [Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)

2011.08.09 [Chap7 #03] - (1) fstab 파일의 파일시스템 마운트

2011.08.09 [Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성

2011.08.20 08:38

[Chap14 #04] - 시스템 로그 작업

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 대부분의 리눅스 시스템은 시스템에서 발생하는 많은 활동의 로그를 구성한다.

/var/log 디렉토리 혹은 서브 디렉토리에 위치한 로그파일에 쓴다.

이 로긴은 Syslog를 통해 이루어진다.

우분투는 sysklogd 그리고 klogd 패키지에서 시스템 로깅을 관리하는

syslogd(시스템 로그 데몬) 및 klogd(커널 로그 데몬)를 사용한다.

이러한 데몬은 syslog init 스크립트(/etc/init.d/sysklogd)에서 자동적으로 시작한다.

시스템에 대한 활동 정보는 /etc/syslog.conf 설정을 기반으로

message, secure, cron 그리고 boot.log 같은 것으로 /var/log 디렉토리 안의 파일에 다이렉트 한다.

자동 로그 회전은 /etc/logrotate.conf 파일 그리고 /etc/logrotate.d 디렉토리 설정을 기반으로

logrotate를 다룬다. /etc/cron.daily/logrotate 크론잡(cronjob)은 매일 로그 회전을 맡는다.

vi 혹은 좋아하는 텍스트 편집을 사용하여 로그 파일은 수동으로 언제든지 확인할 수 있다.

그러나 만약 logwatch 패키지를 설치했다면, 로그 파일의 하이라이트는 매일 root 사용자의

사서함에 자동적으로 우송된다. /etc/cron.daily/0logwatch파일을 편집하여 메일의

받는주소와 보내는 주소를 변경할 수 있다.

이메일 루프를 방지하려면, 수신자가 로컬 머신에 없을 때 실제 이메일 주소를 보내는 주소로 변경해야 한다.

수신자를 변경하는 또 다른 방법은 /etc/aliases 편집하여 root의 이메일 주소를 다른 주소로 포워드한다.

그리고 newaliases를 실행하여 변화를 제정한다.

그렇지 않으면, logwatch이메일 메시지를 읽을 때 root로 로그인하고 메일 클라이언트를 사용한다.

logger 명령어를 사용하여 syslogd 로깅으로 자신의 메시지를 보낼 수 있다.

$ logger Added new video card

$ logger -p info -t CARD -f /tmp/my.txt

메시지를 메시지 파일에 추가

우선순위, 태크, 메시지 파일

첫 번째 예는, Added new video card 문장을 메시지 파일에 보낸다.

두 번째 예는, 메시지의 우선순위가 정보로 설정되어 있고 CARD의 태크가 메시지 각 라인에 추가하였다.

텍스트 메시지는 /tmp/my.txt 파일에서 가지고 온 것이다.

실시간으로 로그 항목을 보려면 tail -f 혹은 less를 사용하라.

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap14 #04] - 시스템 로그 작업  (0) | 2011.08.20
[Chap14 #03] - iptsbles로 내장된 방화벽 구성  (0) | 2011.08.20
[Chap14 #02] - 사용자 체크  (0) | 2011.08.20
[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17

Posted by devanix

trackback 1 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/260

2011.08.20 08:19

[Chap14 #03] - iptsbles로 내장된 방화벽 구성

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 컴퓨터의 네트워크 인터페이스의 모든 데이터 패킷을 검사하여 컴퓨터를 보호하고,

그때 설정한 파라미터를 기반으로 패킷을 함께 해야 할지에 대해 결정한다. 현재 리눅스

커널에 내장된 방화벽은 iptables라고 한다(커널2.2의 iptables의 전신은 ipchains)

우분투는 완벽하게 iptables를 시작하고 리눅스를 설치할 때 구성한다.

iptables(www.netfilter.org)는 예외적으로 강력하지만 아직 커맨드라인에서의 사용은 복잡.

그래픽 인터페이스를 사용하여 방화벽 규칙을 설정 : firestarter 패키지 설치.

firestarter는 방화벽 구성 마법사 및 설정을 제공한다. 또한 그래픽 방화벽 구성을 위해서

FWBuilder(fwbuilder 패키지), Shorewall(shorewall 패키지) 같은 패키지를 추가할 수 있다.

▶ 리눅스 시스템의 방화벽이 현재 규칙을 어떻게 설정하는지 표시

☞ 우분투를 처음 설치할 때, 앞의 명령어 출력은 정의에 대한 어떠한 규칙도 없다.

☞ iptables을 방화벽 테이블 기본 필터를 보여준다.

☞ udp 상에서 인터넷 프린팅 프로토콜(ipp)을 위한 패킷이 컴퓨터의 네트워크 인터페이스가 들어오는 것을

보여주고 tcp 프로토콜을 허용.

☞ 마찬가지로 FTP(ftp)와 매치되는 tcp 패킷, 시큐얼 쉘(ssh), 웹(http) 목적지 포트를 수용한다.

패킷이 활성화된 패킷과 연관이 있다면 또한 수용.

▶ 현재 iptables nat 테이블을 표시.

☞ nat 테이블은 단지 네트워크 주소 변환 기능이 적용되는 것을 보여줌.

☞ NAT 방화벽 뒤에 개인 어드레스 같은 것들을 허용한다.

☞ 내부 LAN 머신에서 패킷은 방화벽을 종료한다.

비공개 소스 어드레스는 방화벽의 외부 인터페이스의 IP 어드레스를 재작성한다.

방화벽은 LAN 머신을 통하여 트래픽 반환을 허용하기 위하여 세션 추적을 유지한다.

이 모든 것은 POSTROUTING체인에 있는 MASQUERADE 라인으로 구성된다.

☞ PREROUTING 체인에 DNAT 라인은 내부 LAN IP 어드레스 10.0.0.155:22번 포트에서 포워드하여

IP 어드레스 11.22.33.44에 8785번 포트에 어떤 요청을 발생한다

(비표준 포트를 통해 방화벽 뒤에 컴퓨터에서 ssh로 누군가 트릭)

▶ 방화벽에 대한 정보를 나열( ipstate 명령어는 iptstate 패키지의 일부)

다음은 우분투 시스템에서 모든 iptables 규칙을 멈출 수 있는지 혹은 플러시할 수 있는 방법이다.

이 명령어는 모든 규칙을 제거한다. 그래서 실행할 때 주의하여야 한다.

바로 새로운 규칙의 추가를 원할지 모르기 때문이다.

▶ iptables 명령어로 활성화 방화벽 규칙을 어떻게 변경하여 사용하는지 몇 가지 예를 들어보자.

☞ 첫 번째 예 : 시스템의 25번 포트에 새로운 응답을 허용하는 규칙을 생성한다.

메일서버(센드메일, postfix, 혹은 SMTP 서비스)가 컴퓨터에 구성되어 있기 때문이다.

☞ 두 번째 예 : 소스 네트워크 어드레스 변환(SNAT)을 방화벽에 허용하여 nat 테이블에 규칙을 생성한다.

SNAT 기능을 사용하면 공용 인터넷 방화벽의 외부 IP 어드레스를 사용하여 통신할 수 있도록 방화벽 뒤에

있는 사설 IP 어드레스를 가지고 있다.

SNAT 혹은 다른 폼의 NAT를 사용하려면, 머신에서 IP 포워딩을 활성화해야만 한다.

/etc/sysctl.conf 파일을 편집하여 수행할 수 있고 다음 변수에 uncommenting 할 수 있다.

net.ipv4.conf.default.forwarding=1

방화벽 뒤에 머신에서 인터넷 서비스를 제공하는 경우,

머신이 서비스에 대한 요청을 포워드하도록 방화벽에 지시할 수 있다.

다음 예는 방화벽 뒤에 있는 머신에 방화벽을 통해 서비스에 대한 요청을 전달하도록 port forwarding 기능을 사용.

방화벽 동작의 변경을 만들 수 있는 많은 유형의 규칙이 있다.

iptables 사용의 더 많은 정보를 보려면 iptables 맨 페이지 혹은 Netfilter 웹사이트(www.netfilter.org)를 참조.

위와 같이 변경 후, 정의된 다음 규칙을 볼 수 있다.

모든 iptables 규칙 변경은 이 세션에서만 적용이 된다. 우분투를 재부팅하는 경우,

일반적으로 원하지 않은 기본 설정 규칙을 얻어 온다. iptables 규칙을 보존하려면, iptables-save 실행하라.

2단계 프로세스는 /etc/ 디렉토리에 대한 제한 때문에 필요하다.

( 제한을 변경할 수 있지만, 좋은 생각은 아니다) 여태까지 규칙은 나중에 사용을 위해 저장한다.

다음은 이더넷 인터페이스(시스템상에서 특정 각각의 네트워크 카드 혹은 인터페이스)가 가능하게

매시간 저장된 규칙을 로드할 수 있게 구성할 수 있다. /etc/network/interfaces 파일을 편집하라.

eth0 같은 이더넷 인터페이스를 위해 iface 구성후, 미리보기 표시된 iptables-restore를 호출.

인터페이스 파일에 추가로 /etc/iptables.rules 파일 이전에 규칙을 복원하기 위해 iptables-restore를 호출

ipTables HowTo 문서 : https://help.ubuntu.com/community/IptablesHowTo

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap14 #04] - 시스템 로그 작업  (0) | 2011.08.20
[Chap14 #03] - iptsbles로 내장된 방화벽 구성  (0) | 2011.08.20
[Chap14 #02] - 사용자 체크  (0) | 2011.08.20
[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17

Posted by devanix

TAGiptables

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/259

2011.08.20 07:28

[Chap14 #02] - 사용자 체크

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 사용자 계정을 생성한 후, 그리고 사용자가 컴퓨터를 풀어버리면

컴퓨터를 사용하는 방법을 추적하는데 사용할 수 있는 몇 가지 명령어.

◈ find 명령 : 시스템에서 저장되어 있는 파일이 어디 있는지 시스템에서 검색.

◈ du 명령 : 사용자의 홈 디렉토리에 얼마나 많은 공간이 사용 되었는지 확인.

◈ fuser, ps, top 명령 : 어떤 사용자가 프로세스를 실행하는지 보려면.

▶ last : 가장 최근에 시스템에 로그인한 사람의 정보

$ last

devanix■pts/2■■192.168.0.2■■Sat Aug 20 06:15 still logged in

devanix■pts/1■■:0.0■■■■■■Sat Aug 20 06:08 - 06:24 (00:16)

devanix■pts/0■■:0.0■■■■■■Sat Aug 20 05:49 - 06:24 (00:34)

devanix■tty7■■■:0■■■■■■ Sat Aug 20 05:37 still logged in

…

☞ 언제 로그인햇는지, 얼마나 오랫동안 로그인 했는지, 혹은 'still 로그인'했는지 볼 수 있다.

☞ pts 라인은 원격 컴퓨터 혹인 로컬 X 디스플레이(:0.0)에서 쉘을 연 사용자를 표시.

☞ 원격 클라이언트가 호스트 이름 쉽게 읽음 : $ last -a

▶ lastb :가장 최근 로그인에 성공하지 못한 목록

$ sudo lastb

julian■ssh:notty■■■ritchie■Mon■Aug■6 12:28 - 12:28 (00:00)

…

▶ who -u : 현재 로그인한 목록(긴 형식)

$ who -u

devanix■tty7■■■■2011-08-20 05:37■예■■■1124 (:0)

devanix■pts/2■■■ 2011-08-20 06:15■. ■■■ 2212 (192.168.0.2)

▶ users : 현재 로그인한 목록(짧은 형식)

$ users

devanix■chris■francois■greek■jim

▶ 개별 사용자들에 대한 정보를 찾기 위한 몇 가지 명령어.

$ id ■■■■■■■■■■/* 아이덴터티(UID, GID 그리고 현재 쉘 그룹) */

uid=1000(devanix) gid=1000(devanix) 그룹들=1000(devanix),4(adm),20(dialout),24(cdrom),46(plugdev),112(lpadmin),120(admin)

$ who am i ■■■■■■/* 아이덴터티 (user, tty, 로그인 날짜, 위치) */

devanix pts/2 2011-08-20 06:15 (192.168.0.2)

$ finger -s devanix ■■/* 사용자 정보 (짧게) */

$ finger -l devanix ■■/* 사용자 정보 (길게) */

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap14 #04] - 시스템 로그 작업  (0) | 2011.08.20
[Chap14 #03] - iptsbles로 내장된 방화벽 구성  (0) | 2011.08.20
[Chap14 #02] - 사용자 체크  (0) | 2011.08.20
[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17

Posted by devanix

TAGfinger, last, lastb, Users, who

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/258

2011.08.20 06:51

[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

NFS를 사용하여 원격 디렉토리 공유

설치 : sudo apt-get install nfs-kernel-server

▶ exportfs : 모든 공유서버에서 해당 디렉토리 보여줌.

$ sudo /usr/sbin/exportfs -v

/export/myshare

client.example.com(ro,wdelay,root_squash,no_subtree_check)

/mnt/public

<world>(rw,wdelay,root_squash,no_subtree_sheck)

☞ (ro) : 읽기만 가능, (rw) : 읽고/쓰기 마운트

☞ (wdelay) : 공유에 더 쓰기가 예상될 때 성능 향상을 지연

☞ (root_squash) : 클라이언트 root 유저로부터 요청은 익명 사용자 UID를 맵핑

☞ (no_subtree_check) : 파일시스템 퍼미션 체크가 덜 이루어진다.

▶ NFS 공유 디렉토리 추가/수정

$ sudo /etc/init.d/nfs-kernel-server reload

공유 디렉토리 익스포트 reload

$ sudo exportfs -r

공유 디렉토리 익스포트 reload

$ sudo exportfs -rv

exporting client.example.com:/export/myshare

exporting *:/mnt/public

익스포트 공유의 자세한 reload

▶ showmount : 공유 디렉토리 출력

/* 리눅스 서버 시스템에서, 로컬 시스템이 사용하는 공유 디렉토리 출력 */

$ sudo showmount -e

Export list for server.example.com

/export/myshare client.example.com

/mnt/public *

/* 리눅스 시스템 클라이언트에서, 선택한 컴퓨터가 사용하는 공유 디렉토리 출력*/

$ sudo showmount -e server.example.com

/export/myshare client.example.com

/mnt/public *

◎ NFS 공유 마운트

▶ mount 명령을 사용하여 NFS 공유 마운트

$ sudo mkdir /mnt/server-share

$ sudo mount server.example.com:/export/myshare /mnt/server-share

▶ mount 명령어에 NFS의 특별한 옵션 추가. (-o)

$ sudo mount -o rw,hard,intr server.example.com:/export/myshare /mnt/server-share

기본적으로, NFS 버전3 프로토콜은 공유를 연결하는데 사용.

NFS버전4를 사용하려면, 인터넷과 방화벽을 통해 작동하도록 설계.

커맨드라인에 있는 파일시스템 유형은 다음과 같은 프로토콜을 나타낸다.

$ sudo mount -t nfs4 server.example.com:/ /mnt/server-share

삼바를 사용하여 원격 디렉토리 공유

♧ 삼바는 윈도우 파일의 오픈소스 구현이고 서버 메시지 블록(SMB)으로 알려진 인쇄 공유 프로토콜 이고

지금 일반 인터넷 파일 시스템(CIFS)이라고 한다.

삼바를 사용하려면 samba, samba-doc 패키지 설치.

웹기반 관리 툴 : SWAT(swat 패키지 설치) 이 삼바에 포함.

SWAT 시작하는 방법에 대한 내용 : https://help.ubuntu.com/community/Swat

◎ 삼바 공유 보기와 액세스

▶ SMB 호스트 네트워크 스캔

$ findsmb

■■■■■■■■■■■*=DMB

■■■■■■■■■■■+=LMB

IP ADDR■■■NETBIOS NAME■■WORKGROUP/OS/VERSION

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

192.168.1.1■■SERVER1■■■■+[MYWORKGROUP] [Unix] [Samba 3.0.25a-3.fc7]

▶ smbtree를 사용하여 네트워크 neighborhood(프린터 및 공유 디렉토리)의 텍스트 표현

$ smbtree

Password: ******

WORKGROUP

■■■\\THOMPSON

■■■■\\THOMPSON\

■■■■■\\THOMPSON\IPC$

…

▶ smbpasswd 명령을 사용하여 기존 리눅스 유저에 삼바 유저를 추가.

$ sudo smbpasswd -a devanix

New SMB password: ******

Retype new SMB password: ******

Added user devanix

☞ 암호를 요청하여 어떤 명령어를 수행하기 위한 삼바 패스워드 설정이 필요.

▶ 서버에서 익명 사용에게 서비스 목록을 제공.

$ smbclient -L WIN2003srv

password: ******

Anynymous login successful

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

tree connect failed: NT_STATUS_LOGON_FAILURE

▶ 특정 유저를 smbclient로 출력

$ smbclient -L WIN2003srv -U administrator

Enter administrator's password:

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

■■■Sharename■■Type■■Comment

■■■---------■■■----■■■-------

■■■print$■■■■Disk■■■프린터 드라이버

■■■C$■■■■■ Disk■■■ 기본 공유

■■■F$■■■■■ Disk ■■■기본 공유

■■■IPC$■■■■ IPC■■■■원격 IPC

…

▶ FTP 유형으로 삼바 공유에 연결

$ smbclient //192.168.1.1/myshare -U devanix

Password:

Domain=[WIN2003] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows…]

smb: \>

대부분의 FTP 클라이언트에서 사용할 수 있는 명령어를 보려면 help 또는 ? 입력.

SMB 호스트에서 cd, ls, get, put, quit 같은 쉘 타입 명령어를 사용할 수 있다.

◎ 삼바 공유 마운트

▶ 로컬 혹은 원격 NFS 파일시스템에서 로컬 파일시스템으로 원격 삼바 공유를 마운트

$ sudo mount -t smbfs -o username=devanix,password=MySecret \

//192.168.1.1/myshare /mnt/mymount/

▶ smbstatus : 서버의 현재 연결과 잠금 파일을 볼 수 있다

$ sudo smbstatus

…

▶ nmblookup : 컴퓨터의 IP 어드레스를 결정

$ nmblookup thompson

querying Thompson on 192.168.1.255

192.168.1.1 server1<00>

▷ -U : 특정 서브넷에서 서버의 IP 어드레스를 발견

$ nmblookup -U 192.168.1.255 server1

querying server1 on 192.168.1.255

192.168.1.1 server1<00>

▶ 삼바 구성 파일(smb.conf) 체크

$ testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

…

☞ 삼바 공유를 사용할 수 없거나 삼바 서버 통신에 다른 어떤 문제가 있다면 삼바 구성을 테스트.

☞ smb.conf 이외의 파일에 testparm을 사용 : $ testparm /etc/samba/test-smb.conf

SSHFS를 사용하여 원격 디렉토리 공유

♧ SSH 프로토콜을 통해 또 다른 트릭으로 원격파일시스템을 마운트한다.

ssh 파일시스템(sshfs)을 사용하여 SSH 서버에서 유저 계정을 해당 로컬 리눅스 시스템에 액세스할 수 있는

디렉토리를 마운트할 수 있다. sshfs는 모든 데이터의 전송뿐만 아니라 마운트할 때 암호화를 제공.

sshfs의 또 다른 멋진 측면은 서버 측면에서 SSH 서비스를 실행하는 이외에 별다른 설정이 필요하지 않다.

▶ 원격 서버에서 로컬 디렉토리로 문서의 디렉토리를 마운트.

$ sudo apt-get install sshfs

sshfs 소프트웨어 설치

$ sudo mkdir /mnt/docs

마운트 지점 생성

$ sudo sshfs [email-masked]:/var/docs /mnt/docs

원격 디렉토리 마운트

▶원격 디렉토리를 사용했을 때, fusermount 명령어로 언마운트.

$ sudo fusermount -u /var/docs

원격 디렉토리 언마운트

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap14 #03] - iptsbles로 내장된 방화벽 구성  (0) | 2011.08.20
[Chap14 #02] - 사용자 체크  (0) | 2011.08.20
[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17
[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17

Posted by devanix

TAGnfs, samba, sshfs

trackback 0 comment 1

트랙백 주소 - http://devanix.tistory.com/trackback/257

2011.08.19 17:52

[Chap12 #02] - (2)파일전송(ftp, ssh)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

FTP 명령어를 사용하여 파일 전송

♧ 우분투는 대부분의 유닉스와 윈도우 시스템에서 동일한 방식으로 작동하는 표준 FTP 클라이언트를 제공.

▶ lftp로 FTP 서버에 접속하는 예:

$ lftp mirrors.kernel.org

lftp mirrors.kernel.org:~>

익명 연결

$ lftp [email-masked]

lftp example.com:~>

인증된 연결

$ lftp -u devanix example.com

Password: ******

인증된 연결

$ lftp -u devanix, Mypasswd example.com

lftp example.com:~>

패스워드로 인증

$ lftp

lftp :~> open mirrors.kernel.org

lftp mirrors.kernel.org:~>

Start lftp with no connection

lftp 세션 연결 시작

☞ 네 번째 예(패스워드 인증)은 현실에서는 피해야 한다 (다른 사용자가 ps auwx의 출력으로 볼 수 있음)

▶ lftp 세션에서 다운로드할 때 유용한 명령어 예:

$ lftp mirrors.kernel.org

lftp mirrors.kernel.org:~> pwd

ftp://mirrors.kernel.org

현재 디렉토리 체크

lftp mirrors.kernel.org:~> ls

…

drwxr-xr-x 7 400 400 4096 Jul 02 20:18 debian/

현재 디렉토리 목록

lftp mirrors.kernel.org:~> cd ubuntu-releases/natty/

디렉토리 변경

lftp mirrors.kernel.org:…> get ubuntu-11.04-desktop-i386.iso

파일 다운로드

lftp mirrors.kernel.org:…> <Ctrl+z>

백그라운드에서 다운로드 전송

lftp mirrors.kernel.org:…> mget /gnu/ed/*

/gnu/ed 안에서 모두 가져옴

lftp mirrors.kernel.org:…>!ls

ls 로컬 실행

lftp mirrors.kernel.org:…> bookmark add Live

즐겨찾기 위치

lftp mirrors.kernel.org:…> quit

lftp 종료

▶ lftp 인증된 세션에서 업로드할 때 유용한 명령어 예:

$ lftp [email-masked]

Password: ******

lftp example.com:~> lcd /home/devanix/songs

로컬 디렉토리로 변경

lftp example.com:~> cd pub/uploads

서버 디렉토리로 변경

lftp example.com:~> mkdir songs

서버에 디렉토리 생성

|

lftp example.com:~>chmod 700 songs

원격 디렉토리 퍼미션 변경

lftp example.com:~> cd songs

새로운 디렉토리로 변경

lftp example.com:~> puts song.ogg tune.ogg

3039267 bytes transferred

서버에 파일 업로드

lftp example.com:~> mput /var/songs/*

일치하는 파일 업로드

파일 전송 SSH툴 사용

♧ scp를 사용하여 원격 파일 복사

SSH 유틸리티는 통신 명령어의 시스템 관리자 아스민(arsenal)에게 가장 중요한 툴이다.

특히, scp 명령어는 한 컴퓨터에서 다른 컴퓨터에서 파일을 가지고 올 때 필요하고

패스워드와 데이터 전송 암호화하여 통신에 안전하다. ssh 명령어는 호스트 대 호스트간의

파일을 복사하는데 가장 인기 있는 툴인 rcp 명령어로 대체되었다.

▶ scp 원격 파일 복사 기본 사용 예:

$ scp myfile devanix@server1:/tmp/

Password: ******

myfile을 → 원격서버로 복사

$ scp server1:/tmp/myfile .

원격서버에 myfile을 → 로컬로 복사

▶ 복사본 파일의 퍼미션과 타임스탬프 유지(-p)

$ scp -p myfile server1:/tmp/

▶ SSH 서비스 특정 포트에 연결(-P)

$ scp -P 12345 myfile server1:/tmp/

▶ 특정 지점으로 순환 복사(-r)

$ scr -r mydir devanix@server1:/tmp/

♧ sftp와 lftp 세션에서 원격 파일 복사.

sftp 명령어는 FTP같은 인터페이스를 찾기 위해 사용하고 SSH 프로토콜을 통해 파일을 복사할 수 있다.

▶ sftp 세션 시작

$ sftp devanix@server1

devanix@server1's password: ******

sftp>

▷ 일반 FTP클라이언트와 동일한 방식으로sftp 사용

cd

원격 디렉토리 변경

lcd

로컬 디렉토리 변경

pwd, lpwd

현재의 원격과 로컬 디렉토리 확인

ls, lls

원격과 로컬 내용 목록

chown, chgrp

퍼미션에 따라 파일과 디렉토리의 소유권/그룹

mkdir, rmdir

디렉토리 생성&제거

chmod

퍼미션 변경

▷ sftp 클라이언트로 lftp를 사용

$ lftp sftp://devanix@server1

Password: ********

lftp devanix@server1:~>

윈도우 파일 전송 툴 사용

♧ 많은 경우에, 윈도우 클라이언트를 사용하여 리눅스 서버에 파일을 받을 필요가 있다.

운영체제 클라이언트가 윈도우라면, 리눅스 서버에서 파일을 받기 위해 다음 중 하나의 오픈소스툴 사용.

WinSCP

SSH1과 SSH2 프로토콜을 사용하는

윈도우용 그래픽 scp, sftp와 FTP 클라이언트

FileZilla

윈도우에서 그래픽 클라이언트 FTP와 SFTP 서비스/서버기능

PSCP

TTY 제품군 일부의 커맨드라인 scp 클라이언트

PSFTP

TTY 제품군 일부의 커맨드라인 SFTP 클라이언트

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap14 #02] - 사용자 체크  (0) | 2011.08.20
[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17
[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17
[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17

Posted by devanix

TAGlftp, scp, SFTP

trackback 1 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/256

2011.08.17 11:45

[Chap12 #02] - (1)파일전송(wget, curl)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

wget을 사용하여 파일 다운로드

♧ 가끔 커맨드라인 명령어를 사용하여 원격 서버에서 파일 다운로드가 필요하다.

예를 들면, RPM 소프트웨어 패키지에 대한 링크를 찾을 수 있지만, 링크는 HTTP 바로 설치

RPM을 막기 위한 HTTP 리다이렉트를 몇 개 통과해야 한다.

혹은 매일 밤 로그 파일을 자동으로 다운로드하는 스크립트를 원할지 모른다.

wget 명령어는 웹 서버(HTTP 그리고 HTTPS)와 FTP 서버에서 파일을 다운받을 수 있다.

▶ wget 으로 이미지 파일 다운로드.

$ wget http://cfile3.uf.tistory.com/image/133BD1594DFD44E33AE5B6

--2011-08-17 11:31:35-- http://cfile3.uf.tistory.com/image/133BD1594DFD44E33AE5B6

Resolving cfile3.uf.tistory.com... 118.222.183.121

접속 cfile3.uf.tistory.com|118.222.183.121|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 21104 (21K) [image/png]

Saving to: `133BD1594DFD44E33AE5B6'

100%[==========================================>] 21,104 --.-K/s in 0.02s

2011-08-17 11:31:35 (1.31 MB/s) - `133BD1594DFD44E33AE5B6' saved [21104/21104]

▶ FTP 서버가 로그인과 패스워드가 필요할 때, wget 커맨드 사용 형식.

$ wget ftp://user:[email-masked]/path/to/file

$ wget --user=user --password=password ftp://ftp.example.com/path/to/file

예를 들면 다음과 같다.

$ wget ftp://chris:[email-masked]/home/chris/image.jpg

$ wget --user=chris --password=mykuulpwd ftp.linuxtoys.net/home/chris/image.jpg

▶ wget으로 단일 웹페이지 다운.

$ wget http://www.wiley.com

웹페이지 다운로드

$ wget -p http://www.wiley.com

웹페이지와 요소들 다운

$ wget -pk http://www.wiley.com

페이지 다운로드와 로컬 파일 이름 사용

$ wget -pkK http://wiley.com

로컬 이름 변경, 원본 유지

$ wget -E http://www.aspexamples.com

다운로드 파일에 .html 추가

$ wget -m http://www.linuxtoys.net

타임스탬프를 추가하고 FTP 디렉토리 목록 유지

$ wget -mEkK http://www.linuxtoys.net

가장 쓸만한 복사본

$ wget -c http://example.com/DVD.iso

중단된 파일을 계속 이어서 다운로드

▶ 자주쓰는 예: wget -r -np -A.<확장자> -l <깊이지정> URL

cURL을 사용하여 파일 전송

♧ URL의 애플리케이션(curl 명령어)을 위한 클라이언트는 웹 및 FTP 프로토콜을 사용하여 파일을

전송하기 위해 wget과 유사한 기능을 제공, 그러나 curl 명령어는 또한 SSH 프로토콜(SCP, SFTP),

LDAP, DICT, Telnet 그리고 File 등 다른 인기 있는 프로토콜을 사용하여 파일을 전송할 수 있다.

대용량 및 순환 다운로드(wget)를 지원하는 대신, curl은 싱글-샷 파일 전송을 위해 디자인되었다.

그러나 더 많은 프로토콜 및 일부 깔끔하고 고급스러운 기능을 지원.

▶대괄호'[]'를 사용하여 일치하는 문자 혹은 숫자 범위 지정하여 사용.

$ curl -O ftp://kernelorg.mirrors.tds.net/pub/linux/kernel/v1.0/patch[6-8].sign

▶중괄화'{}'를 사용하여 일치하는 문자 혹은 숫자를 지정하여 사용.

$ curl -OO ftp://kernelorg.mirrors.tds.net/pub/linux/kernel/v2.0/ChangeLog-2.6.{1,4}

▶서버의 유저이름과 패스워드, 파일다운로드(fileA)를 추가, 다운로드 완료시 파일 삭제

$ curl -O ftp://chris:[email-masked]/home/chris/fileA -Q '-DELE fileA'

▶FTP서버에 install.log 파일을 업로드(-T).

$ curl -T install.log ftp://chris:[email-masked]/tmp/ \

-Q "-RNFR install.log" -Q "-RNTO Xinstall.log

▶ftp.kernel.org/pub/ 디렉토리의 컨텐츠 목록을 curl로 알려줌.

$ curl ftp://ftp.kernel.org/pub// List /pub/ contents /pub/

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap12 #03] - 원격 디렉토리 공유(nfs, samba, sshfs)  (1) | 2011.08.20
[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17
[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17
[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17
[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13

Posted by devanix

TAGCURL, wget

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/255

2011.08.17 11:01

[Chap12 #01] - 웹 검색 명령어 실행(elinks)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 텍스트 모드 웹 브라우저는 GUI를 사용할 수 없을 때 웹 서버가 동작중인지 혹은

웹 서버에서 정보를 얻어오는지를 체크하는데 빠른 방법을 제공한다.

한때 인기있었던 텍스트 기반 브라우저는 lynx는 links 브라우저로 대부분 리눅스 시스템에서

대체되었다가 나중에 elinks로 교체되었다.

elinks는 여러 색상을 지원하기 때문에, 테미널에서 사용하는 만큼 여러 색상을 지원하며,

텍스트를 링크와 머리글로 사용하기가 용이하다.

▶ elinks 명령어 실행

$ elinks

파일 이름 혹은 URL의 프롬프트

$ elinks devanix.tistory.com

요청한 파일 이름 혹은 URL 요청

◎ elinks 사용을 위한 컨트롤 키

키

설명

Esc(or F9/F8)

토글 메뉴 켜고 닫음

아래쪽 화살표 (↓)

다음 페이지에 링크 또는 편집 필드로 이동

위쪽 화살표 (↑)

이전 페이지에 링크 또는 편집 필드로 이동

오른쪽 화살표 (→, or Enter)

강조된 링크 앞으로 이동. 강조 양식 필드에 텍스트 입력

왼쪽 화살표 (←)

다시 이전 페이지로 이동

/

검색 전달

?

반대로 검색

n

다음 찾기

N

이전 찾기

PageUp

한 페이지 스크롤

PageDown

한 페이지를 아래로 스크롤

g

URL로 이동

=

페이지 정보를 보여줌

Crtl+r

페이지 새로고침

a

현재 페이지를 즐겨찾기

t

새로운 브라우저 탭 열기

>

다음 탭으로 이동

<

이전 탭으로 이동

c

현재 탭을 닫음

d

현재 링크 다운로드

D

다운로드 보기

A

현재 링크 즐겨찾기에 추가

s

즐겨찾기 보기

v

현재 이미지 보기

h

전역 히스토리 매니저 보기

q (or Ctrl+c)

elinks 종료

☞ /etc/elinks.conf에 elinks 전역 설정을 추가할 수 있다.

☞ 각 유저들의 설정은 각 유저의 $HOME/.elinks 디렉토리에 저장.

☞ 사용할 수 있는 설정을 보려면 man elinkskeys

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap12 #02] - (2)파일전송(ftp, ssh)  (0) | 2011.08.19
[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17
[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17
[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17
[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13
[Chap10 #07] - Hardware 조사  (0) | 2011.08.13

Posted by devanix

TAGelinks, 텍스트 웹 브라우저

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/254

2011.08.17 04:04

[Chap11 #07] - 네트워크 문제 해결

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 네트워크 문제 해결은 일반적으로 하단 레이어에서 이루어진다.

호스트 연결 체크

♧ 링크와 듀플렉스가 불일치가 아니라는 것을 알 때, 다음 단계는 기본 게이트웨이로 ping을 한다.

/etc/network/interfaces 파일로 기본 게이트웨이(gw)를 구성하거나 시스템을 DHCP 같은 서비스로

기본 게이트웨이를 설정한다.

▶ 실제 라우팅 테이블의 기본 게이트웨이를 점검

$ ip route

192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.4 metric 1

169.254.0.0/16 dev eth0 scope link metric 1000

default via 192.168.0.1 dev eth0 proto static

☞ 위 예에서 기본 라우트를 위한 게이트웨이는 192.168.0.1 이다.

▶ ping 명령을 사용하여 게이트웨이의 IP접속을 확인

$ ping 192.168.0.1

PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=2.01 ms

64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.514 ms

64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=0.521 ms

64 bytes from 192.168.0.1: icmp_req=4 ttl=64 time=0.518 ms

--- 192.168.0.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3001ms

rtt min/avg/max/mdev = 0.514/0.890/2.010/0.647 ms

◎ ping 옵션

$ ping -a 192.168.0.1

ping 프로그레스에 audible ping 추가

$ ping -c 4 192.168.0.1

4번 ping 하고 종료

$ ping -q -c 5 192.168.0.1

ping 요약을 보여줌

$ sudo ping -f 192.168.0.1

ping의 흐름을 전송(root)

$ ping -i 3 192.168.0.1

3초 간격으로 패킷 전송

$ sudo ping -I eth0 192.168.0.1

eth0 설정(여러 가지 NICs를 사용하는 경우)

$ sudo ping -s 1500 192.168.0.1

1500 byte로 패킷 사이즈 설정

☞ 기본적으로 ping은 작은 패킷(56 byte)을 전송.

Address Resolution Protocol(ARP) 체크

♧ 게이트웨이에 ping을 할 수 없다면, 이더넷 MAC 레이어를 의심할 것이다.

Address Resolution Protocol(ARP)은 MAC 레이어 정보를 발견하는데 사용할 수 있다.

▶ 호스트 네임으로 ARP 캐시의 컴퓨터 목록 arp를 출력.

$ arp -v

이름 항목의 ARP 캐시 목록

$ arp -vn

IP 어드레스 항목의 ARP 캐시 목록

$ sudo arp -d 192.168.0.4

ARP 캐시에서 192.168.0.4 주소 삭제

$ sudo arp -s 192.168.0.4 00:0B:6A:02:EC:95

ARP에 IP와 MAC 어드레스 추가

▶ arping명령을 사용하여 사용중인 IP를 보려고 서브넷 쿼리.

$ arping 192.168.0.50

사용중인 192.168.0.50을 보려고 서브넷 쿼리

$ arping -f 192.168.0.50

192.168.0.50 쿼리하고 첫 번째 응답에 멈춤

$ arping -c 2 192.168.0.50

해당주소를 쿼리하고 2회에 멈춤

호스트 경로 추적

♧ 게이트웨이 ping할 수 있고 심지어 네트워크 밖에 있는 컴퓨터에도 도달하는지 확인 후,

여전히 특정 호스트 혹은 네트워크에 도달하는데 문제를 가지고 있다면, 병목 혹은 실패지점을 발견하려고 traceroute를 사용할 수 있다.

$ traceroute boost.turbosphere.com

traceroute to boost.turbosphere.com (66.113.99.70), 30 hops max, 60 byte packets

…

6 203.248.238.37 (203.248.238.37) 4.497 ms 1.159 ms 3.815 ms

7 203.233.117.153 (203.233.117.153) 3.823 ms 3.841 ms 210.120.61.93 …

8 61.42.202.93 (61.42.202.93) 4.281 ms 4.353 ms 4.264 ms

9 210.120.105.145 (210.120.105.145) 3.770 ms 3.786 ms 3.804 ms

…

추적 끝에 애스터리스크(*) 라인은 그 대상의 트래픽을 차단하여 방화벽으로 인해 발생한다.

그러나 목적지 전에 몇 개의 애스터리스크(*)를 본다면, 무거운 혼잡, 장비 실패와 병목지점을 나타낼 수 있다.

기본적으로, traceroute는 ICMP보다 더 현실적인 성능 UDP패킷을 사용한다.

그 때문에 일부 인터넷 홉은 ICMP트래픽에 낮은 우선순위를 준다.

ICMP패킷을 사용하여 추적하는 경우가 여전히 같다면, 다음과 같이 명령어를 시도.

$ traceroute -I boost.turbosphere.com

ICMP 패킷을 사용하여 경로 추적

$ traceroute -p 25 boost.turbosphere.com

25번 포트 접속하여 추적

$ traceroute -n boost.turbosphere.com

name resolution을 해제하여 추적

☞ 대안으로 tracepath 명령으로 UDP를 추적하는데 사용 : $ tracepath boost.turbosphere.com

커널 라우팅 테이블을 보고 조작하려면, route 명령어를 사용.

▶ route 명령어를 사용하여 로컬 라우팅 테이블 표시

$ route

로컬 라우팅 테이블 정보 표시

Kernel IP routing table

Destination     Gateway         Genmask            Flags   Metric Ref    Use Iface

192.168.0.0     *                       255.255.255.0   U          1          0        0 eth0

link-local          *                       255.255.0.0        U          1000   0        0 eth0

default             192.168.0.1     0.0.0.0                UG        0          0        0 eth0

$ route -n

DNS 검색 없이 라우팅 테이블 표시

▷ gw 옵션을 사용하여 기본 게이트웨이를 추가

$ sudo route add default gw 192.168.0.1

기본 게이트웨이 192.168.0.1 추가

▷ 새로운 라우트 추가.

$ sudo route add -net 192.168.0.0 netmask 255.2855.255.0 eth0

$ sudo route add -net 192.168.0.0 netmask 255.2855.255.0 gw 10.0.0.100

▷ 라우트 삭제.

$ sudo route del -net 192.168.0.0 netmask 255.255.255.0

새로운 ip 명령어를 사용하면, route 명령어에서 보여줬던 것처럼 똑같이 할 수 있다.

▶ 같은 기본 라우팅 정보를 보여주는 세가지 다른 방법.

$ ip route show

기본 라우팅 정보 표시

192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.4 metric 1

169.254.0.0/16 dev eth0 scope link metric 1000

default via 192.168.0.1 dev eth0 proto static

$ ip route

기본 라우팅 표시 (예 #2)

$ ip r

기본 라우팅 표시 (예 #3)

▶ ip로 라우트를 삭제하고 추가

$ sudo ip r add 192.168.0.0/24 via 10.0.0.100 dev eth0

인터페이스 라우트 추가

$ sudo ip r add 192.168.0.0/24 via 10.0.0.100

인터페이스 없이 라우트 추가

$ sudo ip r del 192.168.0.0/24

라우트 삭제

영구적인 새로운 라우트를 만들려면, /etc/network/interfaces 파일을 편집하고 그 파일에 새로운

라우트 정보를 배치하라. 위의 ip 명령어는 라우트를 추가하고 add, /etc/network/interfaces에

다음과 같은 라인을 추가.

iface eth0 inet static

address 192.168.0.0

netmask 255.255.255.0

gateway 10.0.0.100

netstat 연결 및 통계 표시

♧ 앞의 툴은 네트워크 레이어(레이어 3)에서 대부분 네트워크 문제가 커버되었다.

패킷에 관한 정보를 표시하기 위해 전송-레이어 프로토콜과 ICMP 사이로 전송하려면,

netstat 명령어 사용.

$ netstat -s | less

활성화된 TCP, ICMP, UDP 요약을 보여줌

$ sudo netstat -tanp

활성화된 TCP 연결을 보여줌

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 786/mysqld

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 374/sshd

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1097/cupsd

…

$ sudo netstat -uanp

활성화된 UDP 연결 보기

☞ netstat 데몬 범위에서 TCP 포트까지 출력을 좁히려면, listen 단어 검색

$ sudo netstat -tanp | grep -i listen

기타 네트워크 툴 (tcpdump, nmap)

♧ 시스템에서 송신, 수신 패킷의 헤더 정보를 보길 원한다면, tcpdump를 사용.

tcpdump 명령어는 haystack의 패킷 안에 needle을 찾고 필터링을 선회하는 고급 기능이 많이 있다.

원격시스템에서 tcpdump를 실행한다면, 화면 클라이언트와 원격시스템 사이의

모든 ssh 트래픽이 넘쳐날 것이다.

▶ tcpdump 필터링이 어떻게 작동 되는지 많이 배울 필요없이 시작

$ sudo tcpdump | grep -v ssh

ssh와 연관된 것을 제외하고 패킷을 찾음

▶ nmap로 기본적인 호스트를 스캔

$ sudo nmap 10.0.0.1

컴퓨터의 10.0.0.1 포트 스캔

$ sudo nmap -vv 10.0.0.1

nmap 출력에서 최대 다변을 보여줌

$ sudo nmap -vv -sP 10.0.0.0/24

전체 너트워크의 호스트 스캔

$ sudo nmap -vv -P0 -O -p 100-200 10.0.0.1

ping 없이, OS fingerpint, 100-200포트 ping

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap12 #02] - (1)파일전송(wget, curl)  (0) | 2011.08.17
[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17
[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17
[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13
[Chap10 #07] - Hardware 조사  (0) | 2011.08.13
[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13

Posted by devanix

TAGarp, arping, ip, netstat, NMAP, Ping, route, tcpdump, traceroute

trackback 3 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/253

2011.08.13 19:37

[Chap11 #02] - 네트워크 인터페이스 카드 관리

컴퓨터 서적 정리/Ubuntu Linux Toolbox

◎ 컴퓨터의 네트워크 하드가 바로 올라오지 않고 인터넷에 접속이 되지 않았을 때 문제 해결 단계:

∙ 네트워크 인터페이스 카드(NIC)가 제대로 설치되었는지,

케이블이 네트워크(ISP's CPE, 스위치, 기타 등)에 연결 되었는지 확인.

∙ 케이블 연결 후, 스피드 혹은 듀플렉스 링크 확인.

∙ 다른 방법이 모두 실패하면, 잘 알려진 하드에ㅜ어 오류를 분리하여 NIC 교체.

♧ 리눅스 링크 체크, 스피드와 듀플렉스를 설정하려면, 두 가지 명령어를 사용한다.

새로운 ethtool(ethtool 패키지), 오래된 mii-tool(net-tools 패키지)

▶ ethtool 명령을 이용하여 NIC 설정 정보 표시.

$ ethtool -h | less

ethtool 명령어 옵션 출력

$ sudo ethtool eth0

eth0의 NIC 설정 보기

$ sudo ethtool -i eth0

특정 NIC 정보 드라이버 표시

$ sudo ethtool -S eth0

eth0의 NIC에 대한 상세한 통계 표시

▶ ethtool 명령을 이용하여 NIC 설정 변경.

/* 100 Mpbs의 NIC의 자동 negotiation과 hard-set을 해제하고 전이중(full duplext) */

$ sudo ethtool -s eth0 speed 100 duplext full autoneg off

/* 100 Mpbs의 NIC의 자동 negotiation과 hard-set을 해제하고 반이중(half duplext) */

$ sudo ethtool -s eth0 speed 100 duplext half autoneg off

재부팅 혹은 네트워크를 재시작할 때도 설정

♧ NIC를 설정하여 만든 변경은 현재 세션에만 적용되며 재부팅 하면 설정을 읽어버림.

① eth_options 같은 새로운 스크립트 이름을 선택하고, /etc/init.d 디렉토리에 스크립트 작성.

$ sudo vi /etc/init.d/eth_options

② 새로운 스크립트에 다음 텍스트 입력.

#! /bin/sh

ETHTOOL="/usr/sbin/ethtool"

ETHTOOL_OPTS="speed 10 duplex half autoneg off"

DEV="eth0"

case "$1" in

start)

echo -n "Setting $DEV options to $ETHTOOL_OPTS…";

$ETHTOOL -s $DEV $ETHTOOL_OPTS;

echo "done.";;

stop)

;;

esac

exit 0

③ 원하는 특정 설정은 ETHTOOL_OPTS 변수에 배치 예:

ETHTOOL_OPTS="speed 10 duplex half autoneg off"

④ 실행 파일 스크립트 퍼미션 설정.

$ sudo chmod +x /etc/init.d/eth_options

⑤ 다른 런 레벨 아래에 새로운 스크립트 실행하여 심볼릭 링크(symbolc link)를 설정.

$ sudo update-rc.d eth_options defaults

⑥ 실행

$ sudo /etc/init.d/eth_options start

▶ mii-tool 명령을 이용하여 NIC 설정 정보 출력, 설정

$ mii-tool -v

오래된 NIC 설정의 정보 출력

$ sudo mii-tool -F 10baseT-FD eth0

10baseT-FD의 스피드/듀플렉스 강제로 설정

$ sudo mii-tool -r eth0

restarting autonegotiation…

오래된 NIC의 자동 negotiation을 재활성화

☞ mii-tool은 ethtool 같이 설정을 저장하는 기능을 제공하지 않는다.

그래서 재부팅 후에 실행해야 한다. /etc/rc.local 끝에 추가할 수 있다.

▶ netstat 명령으로 네트워크 인터페이스 통계

$ netstat -i

eth0의 네트워크 인터페이스 통계를 가지고옴

$ netstat -ic

매초마다 네트워크 통계 리프레시

$ watch netstat -i

네트워크 통계 리프레시(화면 중심)

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap12 #01] - 웹 검색 명령어 실행(elinks)  (0) | 2011.08.17
[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17
[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13
[Chap10 #07] - Hardware 조사  (0) | 2011.08.13
[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13
[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13

Posted by devanix

TAGethtool, mii-tool, nic

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/252

2011.08.13 07:22

[Chap10 #07] - Hardware 조사

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ lspic 명령어를 사용하여 컴퓨터의 PIC 디바이스 정보 나열

$ lspic

PIC 하드웨어 항목나열

00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)

00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02)

00:06.0 System peripheral: Intel Corporation 82865G/PE/P Processor to I/O Memory Interface (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)

…

$ lspci -v

더 자세한 정보화 함께 PCI 하드웨어 항목 나열

$ lspci -vv

더욱 자세한 정보와 함께 PCI 하드웨어 항목 나열

♧ dmidecode 명령어를 사용하여 컴퓨터 하드웨어 컴포넌트 정보 표시.

$ sudo dmidecode | less

하드웨어 컴포넌트 나열

$ sudo dmidecode 2.7

SMBIOS 2.3 present.

50 structures occupying 1851 bytes.

Table at 0x000F9D30.

Handle 0x0000, DMI type 0, 20 bytes

BIOS Information

Vendor: American Megatrends Inc.

Version: 0EAS.4002

Release Date: 07/05/2005

Address: 0xF0000

Runtime Size: 64 kB

…

♧ hdparm 명령어를 사용하여 하드웨어 정보와 연관된 정보를 변경 및 보기.

$ sudo hdparm /dev/sda

하드디스크 설정 표시(SATA or SCSI drive)

/dev/sda:

multcount        = 16 (on)

IO_support     =  1 (32-bit)

readonly         =  0 (off)

readahead     = 256 (on)

geometry        = 9733/255/63, sectors = 156368016, start = 0

☞ 하드디스크의 기능 정보를 보는 것은 안전하지만, 일부러 설정을 변경하는 것은 하드디스크에 잠재적 위험.

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap11 #07] - 네트워크 문제 해결  (0) | 2011.08.17
[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13
[Chap10 #07] - Hardware 조사  (0) | 2011.08.13
[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13
[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13
[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13

Posted by devanix

TAGdmidecode, hdparm, lspic

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/251

2011.08.13 07:04

[Chap10 #06] - Straight to the Kernel

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 현재 시스템에서 실행중인 커널이 무엇인지 확인.

$ uname -r                                                 /* 커널 릴리즈 이름 표시 */

2.6.38-10-generic

$ uname -a                                                 /* 가능한 모든 커널 정보 표시 */

Linux Xubun11 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux

♧ dmesg 명령어를 사용하여 커널 ring buffer 내용 표시.

~$ dmesg | less

[ 0.000000] Initializing cgroup subsys cpuset

[ 0.000000] Initializing cgroup subsys cpu

[ 0.000000] Linux version 2.6.38-10-generic (buildd@vernadsky) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 (Ubuntu 2.6.38-10.46-generic 2.6.38.7)

[ 0.000000] BIOS-provided physical RAM map:

[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

…[중략]…

☞ 커널프로세스에 대한 다른 정보는 특히 /var/log 파일, 메시지 파일에서 찾을 수 있다.

♧ lsmod 명령어를 사용하여 로드된 모듈의 이름, 크기, 기타 모듈들이 어떻게 사용 되는지 출력.

$ lsmod

…[중략]…

snd_intel8x0 33213 3

snd_ac97_codec 105614 1 snd_intel8x0

ac97_bus 12642 1 snd_ac97_codec

snd_pcm 80042 2 snd_intel8x0,snd_ac97_codec

nouveau 621970 2

…[중략]…

tvaudio 32495 0

snd_seq_midi_event 14475 1 snd_seq_midi

tda7432 13042 0

msp3400 31504 0

snd_seq 51291 2 snd_seq_midi,snd_seq_midi_event

bttv 112771 0

…[중략]…

♧ modinfo 명령어를 사용하여 특정 모듈에 관한 더 많은 정보 찾기.

$ modinfo snd

filename: /lib/modules/2.6.38-10-generic/kernel/sound/core/snd.ko

alias: char-major-116-*

license: GPL

description: Advanced Linux Sound Architecture driver for soundcards.

author: Jaroslav Kysela <[email-masked]>

license: GPL

description: Jack detection support for ALSA

author: Mark Brown <[email-masked]>

srcversion: 01A2250C004B4DB5F156B0C

depends: soundcore

vermagic: 2.6.38-10-generic SMP mod_unload modversions 686

parm: slots:Module names assigned to the slots. (array of charp)

parm: major:Major # for sound driver. (int)

parm: cards_limit:Count of auto-loadable soundcards. (int)

♧ modprobe 명령어를 사용하여 적재 모듈을 추가하거나 제거.

$ modprobe -l | grep c-qcam

kernel/drivers/media/video/c-qcam.ko

c-qcam을 찾아서, 모든 모듈 나열

$ sudo modprobe c-qcam

QuickCam 컬라 QuickCam 모듈 로드

$ sudo modprobe -r c-qcam

QuickCam 컬라 QuickCam 모듈 제거

♧ sysctl 명령어를 사용하여 실행중인 시스템의 커널 파라미터를 제어.

$ sudo sysctl -a | less

kernel.sched_time_avg = 1000

kernel.sched_shares_window = 10000000

kernel.timer_migration = 1

…

모든 커널 파라미터 나열

$ sudo sysctl kernel.hostname

특정 파라미터 값 나열

$sudo sysctl -p

Load parms from /etc/sysctl.conf

$sudo sysctl -w kernel.hostname=joe

kernel.hostname 값 설정

☞ /etc/sysctl.conf파일에 영구적으로 파라미터를 추가할 수 있다.

그래서 그룹이나 각 재부팅시 로드할 수 있다.

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap11 #02] - 네트워크 인터페이스 카드 관리  (0) | 2011.08.13
[Chap10 #07] - Hardware 조사  (0) | 2011.08.13
[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13
[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13
[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13
[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13

Posted by devanix

TAGdmesg, kernel, lsmod, modinfo, modprobe, sysctl, uname

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/250

2011.08.13 06:19

[Chap10 #05] - 시작과 런 레벨 제어

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 커널이 시작된후에, init 프로세스를 시스템에서 제어한다.

init 프로세스는 시스템에서 처음으로 실행하는 프로세스(PID 1), /etc/inittab 파일 내용을

기반으로 직접 다른 프로세스를 시작, 기본 런 레벨, init 스크립트의 런 레벨 싱행 설정을 한다.

기본 런 레벨은 일반적으로 데스크탑 시스템은 5, 서버시스템은 3으로 설정.

대부분 리눅스 관리자는 기본적인 기능을 혼자하고 서비스가 선택된 레벨에서 켜져있는지

꺼져있는지 초점을 맞춘다. 우분투(Ubuntu)에서 런 레벨 스크립트를 시작하는 메커니즘과

비슷한 시스템은 System V Init 기능, AT&T의 유닉스 System V 시스템을 기반으로 한다.

우분투(Ubuntu)는 init 시스템보다 upstart 시스템을 사용하지만

init 혹은 telinit 명령어로 런 레벨을 여전히 변경한다.

▶ 시스템 초기화 스크립트 및 런 레벨 변경 작업:

$ runlevel

N 2

현재와 이전 런 레벨 표시

$ sudo init 5

현재 런 레벨 5(X 데스크탑)로 변경

$ sudo init q

파일의 변경 프로세스 시작 혹은 중지

$ sudo /etc/init.d/ntp start

Starting NTP server ntpd

즉시 Samba 서비스 시작

◎ 각각의 서비스가 /etc/init.d 디렉토리에 있는 쉘 스크립트가 함께 제공 되며,

각각의 서비스는 시작 혹은 정지 옵션을 지원한다.

▶ service의 시작과 중시 서비스 사용법

$ /etc/init.d/ntp

Usage: /etc/init.d/ntp {start|stop|restart|try-restart|…}

옵션이 없으면 사용법 출력.

$ sudo /etc/init.d/ntp restart Restart

* Stopping NTP server ntpd

* Starting NTP server ntpd

NTP 서비스 재시작(처음에 정지, 그다 음 시작)

[OK]

[OK]

$ sudo /etc/init.d/ntp try-restart Restart

* Stopping NTP server ntpd

* Starting NTP server ntpd

NTP 서비스 재시작(이미 실행중)

[OK]

[OK]

$ sudo /etc/init.d/ntp force-reload

* Stopping NTP server ntpd

* Starting NTP server ntpd

설정파일 설정 다시 읽어들임

[OK]

[OK]

$ sudo /etc/init.d/ntp status

* NTP server is running.

NTP 서비스가 실행중인 검사(smbd)

$ sudo /etc/init.d/ntp stop

* Stopping NTP server ntpd

NTP 서비스 정지

[OK]

☞ /etc/init.d 안에 포함된 init 스크립트가 이러한 방법으로 시작하지만

모든 스크립트가 보여주는 것처럼 지원하지 않는다.

init 0(셧다운), init 6(재부팅)을 포함하여, 언제든지 런 레벨을 변경하기 위해 init 명령어를 사용할 수 있지만,

리눅스 정지를 위한 구체적인 명령어를 사용.

halt, reboot, poweroff, shutdown 같은 명령어의 이점은 셧다운 하기 전에 일부 기능을 멈추도록 하는 옵션이 포함.

$ sudo reboot

컴퓨터 재부팅

$ sudo halt -n

셧다운 하기 전에 하드드라이브에서 동기화를 하지 마라.

$ sudo halt -h

중단하기 전에 대기 모드에서 하드드라이브를 써라.

$ sudo shutdown 10

유저에게 경고 후 10분 있다가 셧다운

$ sudo shutdown -r 10

유저에게 경고 후 10분 있다가 재부팅

$ sudo shutdown 10 'Bye!'

셧다운 전에 유저에게 사용자 정의메시지를 보냄

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap10 #07] - Hardware 조사  (0) | 2011.08.13
[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13
[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13
[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13
[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13
[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12

Posted by devanix

TAGrunlevel, service

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/249

2011.08.13 04:07

[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

[ pgrep으로 실행중인 프로세스 찾기 ]

♧ pgrep을 사용하여 가장 기본적인 형태로, 이름을(또는 일부) 검색.

▶ 기본적인 사용 예제:

$ pgrep init

1

2689

프로세스 ID를 보여줌

$ pgrep -l init

1          init

2689   xinit

-l 옵션 : 프로세스 이름을 보여줌

$ pgrep -lu devanix

2551    sshd

2552    bash

2803    vim

-u 옵션 : 유저와 관련된 프로세스 찾기

▶ ps 와 pgrep 결합 사용 예:

/* sshd 및 실행에 대한 검색의 ps(간단하게) */

$ ps -p `pgrep sshd`

PID     TTY      STAT   TIME    COMMAND

626    ?           Ss        0:00     /usr/sbin/sshd -D

4000   ?          Ss        0:00     sshd: devanix [priv]

4110   ?          S           0:01     sshd: devanix@pts/1

/* sshd 및 실행에 대한 검색의 ps(전체) */

$ ps -fp $(pgrep sshd)

UID         PID      PPID   C    STIME  TTY      STAT   TIME    CMD

root         626      1         0     Aug12   ?           Ss       0:00     /usr/sbin/sshd -D

root         4000    626    0    01:59     ?           Ss       0:00     sshd: devanix [priv]

devanix   4110   4000  0    01:59     ?           S         0:01     sshd: devanix@pts/1

/* firefox 검색, 우선순위 향상 */

# sudo renice -5 $(pgrep firefox)

20522:  old  priority 0, new priority -5

20527:  old  priority 0, new priority -5

☞ 이러한 방법으로 입력한 프로세스 ID와 pgrep을 결합할 수 있다.

[ fuser로 실행중인 프로세스 찾기 ]

♧ fuser명령은 프로세스의 파일 혹은 socket을 찾는데 사용.

fuser 명령은 마운트된 파일시스템의(로컬 하드디스크 혹은 삼바 공유와 같은)프로세스를 찾는데 유용.

▶ /boot와 연관 되서 실행중인 프로세스 ID 출력

/* boot를 열고 프로세스의 자세한 정보 출력 */

$ fuser -mauv /boot

USER          PID        ACCESS    COMMAND

/boot:               root            kernel     mount         (root)/

devanix       990          Frce.           (devanix)sh

devanix      1092        Frce.            (devanix)ibus-daemon

devanix      1105        Frce.            (devanix)ibus-gconf

…[중략]…

/* boot 프로세스의 부모 ID를 보여줌 */

$ fuser /boot

/boot:       19760c 29396c

/* boot 프로세스의 모든 ID를 보여줌 */

$ fuser -m /boot

/boot:        3853c 19760c 28171c 29396c 29252c 29255c

/* boot 프로세스의 ID/유저를 보여줌 */

$ fuser -u /boot

/boot:         19760c(root) 29396c(root) 29252c(root) 29255c(root)

☞ 파일 오픈, 쉘 오픈 혹은 /boot안의 현재 디렉토리와 자식 프로세스의 쉘을 오픈할 수 있다.

☞ (-m 옵션) : 파일시스템 또는 블록장치를 사용하는 모든 프로세스 출력.

☞ (-a 옵션) : 모든 프로세스 출력.

☞ (-u 옵션) : 각 유저의 프로세스를 표시.

☞ (-v 옵션) : 정보 출력.

▶ 파일시스템의 파일을 오픈한 모든 프로세스에 시그널을 보냄(kill)

/* boot 파일 오픈의 모든 프로세스를 kill(SIGKILL) */

$ sudo fuser -k /boot

/* 사용 가능한 시그널 목록 */

$ fuser -l

HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM

STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS

UNUSED

/* boot 오픈된 모든 프로세스에 HUP 시그널을 보냄 */

$ sudo fuser -k -HUP /boot

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap10 #06] - Straight to the Kernel  (0) | 2011.08.13
[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13
[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13
[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13
[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12
[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11

Posted by devanix

TAGfuser, pgrep

trackback 1 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/248

2011.08.13 03:00

[Chap9 #01] - 활성화 프로세스 보기(ps, top)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

▣ ps의 칼럼 출력 선택과 보기

[ 옵 션 ]

[ 칼럼 헤드 ]

[ 설 명 ]

%cpu

%CPU

프로세스가 사용하는 CPU 점유율

%mem

%MEM

프로세스가 사용하는 메모리 점유율

args

COMMAND

명령어와 모든 인수를 문자열로 출력

bsdstart

START

시작된 시간 : HH:MM or Mon Day

bsdtime

TIME

총 CPU 시간 (사용자 및 시스템)

comm

COMMAND

사용자가 실행한 명령어

cp

CP

10분1 CPU 사용률

cputime

TIME

총 CPU시간 [DD-]HH:MM:SS 형식

egid

EGID

이펙티브 그룹ID 프로세스(정수)

egroup

EGROUP

이펙티브 그룹ID 프로세스(이름)

etime

ELAPSED

프로세스가 실행된 소요시간 출력 [[DD-]HH:]MM:SS 형식

euid

EUID

이펙티브 유저ID 프로세스(정수)

euser

EUSER

이펙티브 유저ID 프로세스(이름)

fgid

FGID

파일시스템 액세스 그룹ID(정수)

fgroup

FGRUOP

파일시스템 액세스 그룹ID(이름)

fname

COMMAND

명령어의 처음 8문자

fuid

FUID

파일시스템 액세스 유저ID(정수)

fuser

FUSER

파일시스템 액세스 유저ID(이름)

lstart

STARTED

날짜 및 시간 명령을 시작

nice

NI

우선순위, 19부터 0까지

pgid

PGID

프로세스의 프로세스 그룹ID

pid

PID

프로세스의 프로세스 ID 넘버

ppid

PPID

프로세스의 부모프로세스 ID

psr

PSR

할당된 프로세스

rgid

RGID

실제 그룹ID(정수)

rgourp

RGOURP

실제 그룹(이름)

rss

RSS

실제 메모리 사용량

rtprio

RTPRIO

리얼타임 우선순위

ruid

RUID

실제 유저ID(정수)

ruser

RUSER

실제 유저(이름)

s

S

수면, no interrupt 인터럽트, R:running 실행중, S:sleep

수면, can interrupt 인터럽트, T:stopped 정지, W:paping

sess

SESS

세션 지도자의 세션ID

sgio_p

P

현재 실행중의 프로세스의 프로세서

size

SZ

프로세스가 사용하는 자료와 스택크기

start

STARTED

프로세스가 시작된 시간 : HH:MM:SS 혹은 Month Day

start_time

START

프로세스가 시작된 시간 : HH:MM:SS 혹은 Month Day

stat

STAT

실행되고 있는 프로세스 상태

sz

SZ

프로세스의 이미지 크기(물리적 페이지)

tname

TTY

tty(터미널) 제어

user

USER

이펙티브 유저ID 프로세스(이름)

vsize

VSZ

프로세스 가상 메모리(1024 바이트)

[ ps를 사용하여 활성화 프로세스 보기 ]

♧ 리눅스 시스템은(Unix 계열 시스템뿐만 아니라, BSD, Mac OS X, 여러 가지 리눅스) ps 명령어가 포함.

세월이 흐르면서 많은 다른 버전 및 약간 다른 옵션을 제공하는 ps가 나왔다.

처음에는 Unix 시스템의 ps 날짜 때문에 몇 가지 옵션들을 비표준 방식으로 지원했다.

▶ 현재 사용자를 위해 프로세스 실행을 표시할 수 있는 몇 가지 예:

$ ps

현재 쉘에서 현재 프로세스 리스트

$ ps -u devanix

devanix의 모든 프로세스 보여줌 (간단 출력)

$ ps -u devanix u

devanix의 모든 프로세스 보여줌 (CPU/MEM)

$ ps -fu devanix

devanix의 모든 프로세스 보여줌 (PPID)

$ ps -Fu devanix

devanix의 모든 프로세스 보여줌 (SZ/PSR)

▶ 현재 시스템에서 실행중인 모든 프로세스에 대한 출력 예:

$ ps -e

모든 실행 프로세스를 보여줌

$ ps -el

긴 목록으로 모든 실행 프로세스를 보여줌

$ ps -ef

전체 형식 목록으로 모든 실행 프로세스를 보여줌

$ ps -eF

전체 형식 목록을 추가하여 모든 실행 프로세스를 보여줌

$ ps ax

간단하게 모든 실행 프로세스를 보여줌 [BSD 스타일]

$ ps aux

긴 목록으로 모든 실행 프로세스를 보여줌 [BSD 스타일]

$ ps auwx

다양한 형식의 긴 목록으로 모든 실행 프로세스를 보여줌 [BSD 스타일]

▶ 계층적 프로세스 (tree 형식) :

$ ps -ejH

프로세스/세션 ID를 계층적으로 보여줌

$ ps axjf

BSD 스타일 출력하여 계층적 프로세스를 보여줌

$ ps -ef --forest

forest 형식에서 계층적 프로세스를 보여줌

$ pstree

tree 형식으로 알파벳순으로 프로세스를 보여줌

▶ 사용자 칼럼 지정 보기의 몇 가지 예: (-o 옵션 : 사용자 포맷 지정)

$ ps -eo ppid,user,%mem,size,vsize,comm --sort=-size

정렬

$ ps -eo ppid,user,bsdstart,bsdtime,%cpu,args --sort=-%cpu

사용자 CPU 정렬

$ ps -eo ppid,user,nice,cputime,args --sort=-nice

낮은 우선순위 정렬

$ ps -eo ppid,user,stat,tname,sess,cputime,args --sort=user

유저 정렬

☞ --sort 옵션 : 데이터 정렬

▷ ps 명령의 몇 가지 다른 예:

$ ps -C httpd

실행중인 httpd 프로세스 표시

$ ps -p 5413 -o pid,ppid,bsdtime,args

정보 표시

$ ps -U devanix, chris -o pid,ruser,tty,stat,args

두 명 유저 정보 보여줌

[ top을 사용하여 활성화 프로세스 보기 ]

♧ top 명령어는 시스템에서 지속적으로 업데이트하여 실행중인 프로세스를 보여준다.

▶ 실행중인 프로세스를 지속적으로 표시하는데 사용할 수 있는 다른 옵션 예:

$ top -d 5

5초마다 지연하여 업데이트(기본 3초)

$ top -u devanix

단지 devanix 유저만 볼 수 있음

$ top -p 192,2690

190과 2690 프로세스만 디스플레이

$ top -n 10

종료하기 전보다 10배 화면 리프레시

$ top -b

결과를 텍스트 모드로 보여주기 때문에 파싱을 하거나 스크립트에서 접근

▶ 실행될 때 다른 방법으로 프로세스를 업데이트 및 정렬:

<space> or <Enter>

즉시 프로세스 목록 업데이트

<Shift+n>

PID로 정렬

<Shift+p>

CPU usage로 정렬

<Shift+m>

메모리 usage로 정렬

<Shift+t>

CPU 시간별로 정렬

<

왼쪽으로 정렬

>

오른쪽으로 정렬

f

원하는 칼럼 목록을 선택

d , s

리프레시 설정

u

유저 지정 (선택한 유저 소유의 프로세스만 표시)

k

실행중인 프로세스에 시그널(kill) 보냄.

n , #

프로세스 우선순위 높게 혹은 낮게(음수:높게, 양수: 낮게) 설정

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap10 #05] - 시작과 런 레벨 제어  (0) | 2011.08.13
[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13
[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13
[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12
[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11
[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10

Posted by devanix

TAGPS, top

trackback 1 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/247

2011.08.12 23:58

[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

[ ssh를 사용하여 tar아카이브 백업 ]

♧ OpenSSH(www.ppenssh.org)는 안전한 원격 로그인, 원격 실행, 그리고 네트워크 인터페이스를 통해

원격지로 파일을 복사할 수 있는 툴들을 제공.

▶ 원격 시스템의 파일을 → 로컬 시스템으로 복사.

$ ssh devanix@server1 'tar cf - myfile*' | tar xvf -

devanix@server1's password: ******

myfile1

myfile2

☞ 원격지 시스템에서 실행한 tar 명령어(파일을 압축된 아카이브로 생성)의 표준출력 스트림을

파이프로 보내고 ssh 명령어를 통해 로컬시스템으로 전달한 뒤 로컬의 tar 명령어로 풀어냄.

(로컬 디렉토리에 동일한 파일이 있을 경우 덮어쓰기 함)

▷ 로컬 시스템의 파일을 → 원격 시스템으로 복사.

$ tar cf - myfile* | ssh devanix@server1 'cd /data; tar xvf -'

devanix@server1's password: ******

myfile1

myfile2

☞ 원격지 시스템에 있는 특정 디렉토리로 이동하기 위해 cd명령 추가.

▶ 원격 시스템에서 전송받은 압축 파일을 풀어내지 않고 tgz 파일로 저장.

$ ssh devanix@server1 'tar czf - myfile*' | cat > myfiles.tgz

☞ server1에 devanix사용자의 홈 디렉토리에서 myfile로 시작하는 모든 파일을 압축한 뒤

로컬 시스템에 myfiles.tgz로 저장.

▷ 로컬 시스템의 압축한 파일을 원격 시스템에 tgz파일로 전송.

$ tar czf - myfile* | ssh devanix@server1 'cat > myfiles.tgz'

[ rsync를 사용하여 파일 백업]

♧ rsync는 체크섬을 사용하여 원격지 파일과 로컬 파일을 작은 블록 단위로 비교해 백업을 수행.

rsync 명령어는 원격 쉘 프로그램인 ssh를 이용하거나

원격 서버에서 실행되는 rsyncd데몬을 통해 동작할 수 있다.

▶ ssh를 통해 원격 디렉토리와 동일한 로컬 디렉토리(미러)를 만드는 rsync 예제 :

$ rsync -avz --delete devanix@server1:/home/devanix/data devadata/

☞ (-a 옵션) : 원격지 디렉토리 이하의 모든 파일을 재귀적으로 복사.

☞ (-v옵션) : 명령어가 실행되는 동안 보다 상세한 정보 출력.

☞ (-z 옵션) : 압축 옵션.

☞ (--delete) : rsync 원격 시스템에 존재하지 않은 파일은 로컬에서도 삭제.

(rsync는 기본적으로 변경된 파일만 백업하기 때문에, 원격지에서 파일이 삭제된 경우, 아무런 조치를

취하지 않는다. 따라서 --delete 옵션을 사용해 더 이상 백업할 필요가 없는 파일을 삭제해 준다)

▶ 매주 rsync를 이용하여 백업.

# mkdir /var/backups

# rsync --delete --backup \

--backup-dir=/var/backups/backup-`date +%A` \

-avz devanix@server1:/home/devanix/data/ \

/var/backups/current-backup/

☞ 원격시스템 server1의 /home/devanix/data 디렉토리의 모든 파일이

로컬 디렉토리 /var/backups/current-backup으로 복사.

☞ 당일 변경된 모든 파일은 /var/backups/backup-Monday와 같은 형태로 복사.

☞ 한 주 동안, 과거 7일간의 변경사항이 반영된 7개의 디렉토리가 생성 된다.

▶ 하드링크를 이용해 백업.

# rm -rf /var/backups/backup-old/

# mv /var/backups/backup-current/ /var/backups/backup-old/

# rsync --delete --link-dest=/var/backups/backup-old -avz \

devanix@server1:/home/devanix/data/ /var/backups/backup-current/

☞ 지난 backup-old 디렉토리 내용을 지우고,

☞ 기존의 backup-current 디렉토리 백업내용을 backup-old 디렉토리로 이동.

☞ 이렇게 2주가 지난 backup-old 디렉토리는 지난주 백업된 backup-current로 대체될 것이다.

☞ 새로운 백업은 rsync를 --link-dest 옵션과 함께 실행해 만든다.

원격시스템 server1의 data/ 디렉토리에서 새로 백업한 파일이 이전 백업(이제는 backup-old에 저장)과

동일한 경우, 해당 파일을 backup-current에 backup-old 디렉토리 간에 하드링크를 생성.

▷ 두 디렉토리간 하드링크를 통해 많은 디스크 공간을 절약할 수 있다.

만약 양쪽 디렉토리에 file1.txt 파일을 가지고 있다면, 다음 명령어를 통해 해당 파일의 inode가

하나의 동일한 물리적 파일을 향하는 것을 확인할 수 있다.

$ ls -I /var/backups/backup*/file1.txt

260761 /var/backups/backup-current/file1.txt

260761 /var/backups/backup-old/file1.txt

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap9 #02] - 실행중인 프로세스 찾기(pgrep, fuser)  (0) | 2011.08.13
[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13
[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12
[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11
[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10
[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10

Posted by devanix

TAGrsync, ssh, 네트워크 백업

trackback 1 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/246

2011.08.11 02:27

[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ tar(tape archiver)는 초기 유닉스 시스템에서부터 사용.

지금은 마그네틱 테이프가 일반적이지 않지만, tar는 여전히

아카이브 파일을 생성하고 여러 미디어를 통해 배포하는데

선호되는 명령어이다.

◈ [ 기능 옵션 ] - 반드시 아래 옵션들 중 하나가 들어가야 함

옵 션 [ ,긴 옵션 ]

설 명

-c, --create

새로운 아카이브를 만든다

-x, --extract

아카이브 파일을 풀어준다

-d, --diff

아카이브 파일을 비교하여 다른 점을 찾는다

-u, --update

아카이브 파일에 저장된 사본보다 새로운 파일만 덧붙여 업데이트

-A, --catenate

하나의 tar 파일에 다른 파일을 병합

-r, --append

아카이브 파일 끝에 파일을 덧붙여 추가

-t, --list

아카이브 파일 내용목록을 보여준다

--delete

기존 아카이브 파일에서 삭제 (자기 테이프에 쓰면 안됨X)

◎ [ 부가적인 옵션 ]

옵 션 [ ,긴 옵션 ]

설 명

-f, --file ARCHIVE

지정한 아카이브파일에 읽기 ∙ 쓰기를 실행. (필수)

" - " 는 표준입력에서 데이터를 받거나 표준출력으로 데이터를 쓴다.

-v, --verbose

처리중인 과정을 자세히 출력

-p

모든 퍼미션 정보를 유지.

-j, --bzip2

bzip2 사용하여 파일 압축/풀기

-z, --[un]gzip

gzip 사용하여 파일 압축/풀기

-Z, --[un]compress

compress 사용하여 파일 압축/풀기

--use-compress-programPROG

PROG 로 지정된 압축툴로 아카이브 파일을 다시 처리

( PROG는 반드시 -d(압축 해제)를 처리해야 함)

tar는 명령어에 옵션을 넣어주는 표준적인 방법이 정해지기 전에 만들어진 명령이다.

지금은 tar에서도 대시(-)로 시작하는 옵션을 사용할 수 있지만 항상 필요한 것은 아니다.

때문에 옵션을 의미하는 문자가 없는 tar xvf와 같은 명령어도 볼 수 있다.

tar [ .tar ] - 기본 사용 예

♧ tar는 기본적으로 압축은 하지 않고 단순히 하나의 파일(.tar)로 묶음.

▶ tar 아카이브 파일 생성(묶기) : (c옵션)

$ tar cvf archive.tar *.txt

aaa.txt

bbb.txt

ccc.txt

▶ tar 아카이브 파일 풀기 : (x옵션)

$ tar xvf archive.tar

aaa.txt

bbb.txt

ccc.txt

▶ tar 아카이브 파일 목록 보기 : (t옵션)

$ tar tvf archive.tar

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 aaa.txt

-rw-r--r-- devanix/devanix 16 2011-08-10 22:42 bbb.txt

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 ccc.txt

▶ tar 아카이브 파일에 다른 파일을 병합 : (A 옵션)

$ tar -Af archive1.tar archive2.tar

$ tar tvf archive1.tar

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 aaa.txt

-rw-r--r-- devanix/devanix 16 2011-08-10 22:42 bbb.txt

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 ccc.txt

-rw-r--r-- devanix/devanix 40 2011-08-10 23:55 ddd.txt

-rw-r--r-- devanix/devanix 35 2011-08-10 23:55 eee.txt

☞ archive2.tar 파일이 archive1.tar 아카이브에 추가된다.

▶ tar 아카이브에서 파일 삭제 : (--delete)

$ tar --delete ddd.txt eee.txt -f archive1.tar

$ tar tvf archive1.tar

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 aaa.txt

-rw-r--r-- devanix/devanix 16 2011-08-10 22:42 bbb.txt

-rw-r--r-- devanix/devanix 19 2011-08-10 22:42 ccc.txt

▶ tar 아카이브에 하나 이상의 파일 추가 : (r 옵션)

$ tar rvf archive1.tar ddd.txt eee.txt

ddd.txt

eee.txt

☞ ddd.txt, eee.txt가 archive1.tar 아카이브 파일에 추가 된다.

tar + 타 압축 필터(gzip, bzip2, ...)

♧ tar + gzip (z 옵션)

⇒ tar로 하나의 파일로 묶고 gzip으로 압축하는 과정을 한번에 수행.

⇒ tar+gzip의 확장자 : [ .tar.gz | .tar.z | .tgz ]

▶ tar + gzip 아카이브 파일 압축 생성 : (.tar.gz)

$ tar czvf archive.tar.gz *.txt

aaa.txt

bbb.txt

ccc.txt

▷ z옵션이 지원하지 않는 경우 :

$ tar cvf - *.txt | gzip -c > archive.tar.gz

☞ tar로 하나의 아카이브 파일로 묶고(.tar) gzip로 압축(.gz) 한다.

▶ tar + gzip 아카이브 압축 파일 풀기 : (.tar.gz)

$ tar xzvf archive.tar.gz

aaa.txt

bbb.txt

ccc.txt

▷ z옵션이 지원하지 않는 경우 :

$ gunzip -c archive.tar.gz | tar xvf -

☞ gunzip으로 압축 파일을 풀고(.gz) tar로 나머지 아카이브 파일 풀기(.tar)

♧ tar + bzip2 (j 옵션)

⇒ tar로 하나의 파일로 묶고 bzip2으로 압축하는 과정을 한번에 수행.

⇒ tar+bzip2의 확장자 : [ .tar.bz2 ]

▶ 압축 생성 & 해제 역시 위의 예와 동일하나 해당 압축 필터 사용 옵션으로 변경 한다.

/* 아카이브 압축 생성 */

$ tar cjvf archive.tar.bz2 *.txt

/* 아카이브 압축 풀기 */

$ tar xjvf archive.tar.bz2

♧ tar + lzop (--use-compress-progarm 옵션)

⇒ --use-compress-program옵션 사용하여 lzop 압축 툴 사용.

⇒ 해당 lzop 압축 유틸은 조금 덜 통합된 tar이다.

⇒ lzop를 사용하기 전에 lzop 패키지를 먼저 인스톨 해야 한다.

⇒ tar+lzop의 확장자 : [ .tar.lzo ]

▶ tar+lzop 압축 & 해제 사용

/* 아카이브 압축 생성 */

$ tar --use-compress-program=lzop -cf archive.tar.lzo *.txt

/* 아카이브 압축 풀기 */

$ tar --use-compress-program=lzop -xf archive.tar.lzo

※ 다른 압축 파일 역시 사용 방법은 다 비슷하므로 file 명령을 사용하여 압축 파일의 종류를 먼저 구분한다.

$ file archive.tgz

archive.tgz: gzip compressed data, from Unix, …

$ file archive.tar.bz2

archi.tar.bz2: bzip2 compressed data, block size = 900k

$ file archive.tar.lzo

archive.tar.lzo: lzop compressed data - version 1.020, LZO1X-1, os: Unix

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap9 #01] - 활성화 프로세스 보기(ps, top)  (0) | 2011.08.13
[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12
[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11
[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10
[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10
[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트  (0) | 2011.08.09

Posted by devanix

TAGarchive, bzip2, gzip, lzop, tar

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/243

2011.08.10 02:52

[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 리눅스에서는 윈도우에서 사용하는 scandisk 유틸리티와 같은

물리적인 수준에서 배드블록을 검사하기 위해 badblocks 명령어를 사용한다.

그리고 fsck 명령어를 사용해 논리적인 수준에서 파일시스템의 오류를 검사할 수도 있다.

■ badblocks - 장치의 배드블럭을 검색

badblocks [ -b 블록크기 ] [ -o 출력파일 ] [ -v ] [ -w ]

◈ [ 옵션 ]

옵 션

설 명

-b 블록크기

블록크기를 바이트 수로 나타냄 (기본값 : 1024 bytes)

-o 파일명

지정한 파일에 배드 블록의 리스트 기록

-v

자세한 출력 모드

-e 최대블록개수

점검을 멈출 최대 블록 개수 (0이면 지정된 범위 까지 점검)

-p num_passes

지정된 숫자 만큼 디스크 스캔 반복.

-w

읽기/쓰기 모드 에서 배드블록을 검사 (-n 옵션과 함께 사용 X, 상호 배타적임)

-n

비-파괴 읽고/쓰기 모드 ( -w옵션과 함께 사용 X, 상호 배타적임)

-s

검사 진행 과정 표시

badblocks 명령의 일반적인 사용 예:

▶ -v 옵션 : 자세한 정보 출력과 함께 기본적인 사용

$ sudo badblocks -v /dev/sdb1

Checking blocks 0 to 1044192

Checking for bad blocks (read-only test): done

Pass completed, 0 bad blocks found.

▶ 비-파괴 모드로 배드블록을 검사.

$ sudo badblocks -vsn /dev/sdb1

Checking for bad blocks in non-destructive read-write mode

From block 0 to 1044192

Checking for bad blocks (non-destructive read-write test)

Testing with random pattern: 12.88% done, 0:05 elapsed

☞ 기본적으로, 배드블록 검사는 읽기전용 모드에서 수행하는 것이 안전하다.

비-파괴(non-destructive) 읽고/쓰기 검사는 매우 느리지만

디바이스에 저장된 데이터의 손실 없이 검사할 수 있는 가장 좋은 방법이다.

▶ 읽기/쓰기 모드 검사. ( 경고 : 데이터가 파괴될 수 있음 )

$ sudo badblocks -vsw /dev/sdb1

Checking for bad blocks in read-write mode

From block 0 to 1044192

Testing with pattern 0xaa: done

Reading and comparing: done

Testing with pattern 0x55: done

Reading and comparing: done

Testing with pattern 0xff: done

Reading and comparing: done

Testing with pattern 0x00: done

Reading and comparing: done

Pass completed, 0 bad blocks found.

☞ 읽기/쓰기 모드에서 배드블록을 검사하는 것으로 빠르게 검사할 수는 있지만 데이터가 파괴 된다.

▶ 다수의 배드블록 검사 수행

$ sudo badblocks -vsnp 2 /dev/sdb1

☞ 디스크 품질을 검사하고, 초기 고장률을 낮추기 위한 테스트용으로 사용.

■ fcsk - 리눅스 파일시스템을 검사

♧ fsck 명령어는 특정 파일시스템 유형에 사용되는 검사 유틸리티의 프론트엔드 역할을 수행.

fsck [ -AVRTNP ] [ -s ] [ -t 파일시스템유형 ] [ 파일시스템옵션 ] 파일시스템 [ ... ]

◈ [ 옵션 ]

옵 션

설 명

-A

/etc/fstab 파일에 표시된 모든 파일시스템을 한 번 씩 모두 점검.

-R

-A 플래그와 같이 사용될 때 루트 파일시스템은 제외

-T

시작할 때 버전정보를 출력하지 않음

-V

자세한 출력 수행

-N

실행하지는 말고 어떤 작업을 할 것인지만 보여줌.

fsck 명령의 일반적인 사용 예:

▶ 파일시스템 검사 (-TV : 자세한 출력 및 버전 출력 방지 옵션)

$ sudo fsck -TV /dev/sdb1

[/sbin/fsck.ext4 (1) -- /dev/sdb1] fsck.ext4 /dev/sdb1

e2fsck 1.41.14 (22-Dec-2010)

/dev/sdb1 is mounted.

WARNING!!! The filesystem is mounted. If you continue you ***WILL***

cause ***SEVERE*** filesystem damage.

Do you really want to continue (y/n)? yes

/dev/sdb1: 저널 복구중

/dev/sdb1: clean, 11/65280 files, 8523/261048 blocks

▷ 검사 수행 도중 문제가 발생하면, 문제를 수정할 것인지 사용자에게 물어보는데

-y옵션을 추가하여 모든 질문에 대해 yes로 답변하도록 할 수 있다.

$ sudo fsck -TVy /dev/sdb1

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap8 #02] - 네트워크를 통해 백업하기(ssh, rsync)  (0) | 2011.08.12
[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11
[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10
[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10
[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트  (0) | 2011.08.09
[Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성  (0) | 2011.08.09

Posted by devanix

TAGbadblocks, fsck

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/242

2011.08.10 00:55

[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)

컴퓨터 서적 정리/Ubuntu Linux Toolbox

■ mount 명령어를 사용해 파일시스템 마운트 하기

♧ mount 명령어를 사용하면 로컬(하드디스크, USB, CD, DVD 등)뿐만 아니라 원격지(NFS, 삼바 등)까지

포함해 시스템에 마운트되어 있는 모든 파일시스템 정보를 볼 수 있음.

mount [-hV]

mount -a [-fnrvw] [-t 파일시스템유형]

mount [-fnrvw] [-o 옵션 [,...]] 장치 | 디렉토리

mount [-fnrvw] [-t 파일시스템유형] [-o 옵션] 장치 디렉토리

▶ mount 명령어 옵션

옵 션

설 명

-a, --all

fstab 파일에 언급된 모든 파일시스템을 마운트.

-v, --verbose

자세한 출력 모드.

-f, --fake

실제 시스템 호출은 하지 않고 마운트할 수 있는지 점검.

보통 -v 플래그를 써서 mount 명령의 결과를 알고자 할 때 유용

-n, --no-mtab

/etc/mtab 파일에 쓰기 작업을 하지 않고 마운트.

/etc가 읽기전용 파일시스템인 경우에 필요.

-r, --read-only

읽기만 가능하게 마운트. ( 같은 옵션으로 -o ro )

-w, --rw

읽기/쓰기 모드로 마운트. ( 같은 옵션으로 -o rw ) 기본 디폴트값

-t <vfstype>

마운트할 파일시스템 유형을 명시적으로 지정.

-o <options>

플래그 뒤에 콤마로 분리한 옵션을 적어준다.

-B, --bind

기존에 마운트되어 있는 파일시스템을 서브트리의 다른 위치에 한번 더 마운트.

-M, --move

마운트되어 있는 파일시스템의 마운트 지점을 다른 위치로 이동.

▷ 마운트 플래그 옵션 : 파일시스템 속성 설정 옵션

옵 션

설 명

defaults

rw, suid, dev, exec, auto, nouser, async 속성을 모두 가짐

auto

부팅시 자동 마운트

noauto

부팅시 자동마운트 안함

dev

파일시스템 상의 문자, 블럭 특수 장치를 해석.

nodev

파일시스템 상의 문자, 블럭 특수 장치를 해석 하지 않음.

exec

바이너리 실행파일이 실행되는 것을 허용.

noexec

바이너리 실행파일이 실행되는 것을 허용 안함.

(/tmp 디렉토리와 같이 신뢰할 수 없는 사용자도 접근할 수 있는 경우에 보안 향상)

suid

setuid, setgid 의 사용을 허용

nosuid

setuid, setgid의 사용을 거부

ro

읽기 전용 (read-only)

rw

읽기/쓰기 (read/write) 가능

async

파일시스템에 대한 I/O가 비동기적으로 이뤄지게 함.

sync

파일시스템에 대한 I/O가 동기적으로 이뤄지게 함.

user

일반 계정 사용자들도 마운트 할 수 있게 허용

nouser

일반 계정 사용자가 마운트할 수 없음 (즉, root만 mount 가능)

noatime

파일 접근시간을 업데이트하지 않는다.

(메일 스풀이나 로그와 같이 I/O가 많은 파일시스템에 유용)

remount

이미 마운트된 파일시스템을 다시 마운트.

mount 명령 기본적인 사용 예:

▶ 마운트된 로컬 및 원격지 파일시스템 목록보기

$ mount

/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /sys type sysfs (rw,noexec,nosuid,nodev)

…

▶ 특정 파일시스템 유형을 가진 목록만 보기 (-t 옵션 사용)

$ mount -t ext4

/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)

/dev/sdb1 on data type ext4 (rw)

▶ /dev/sdb1 디바이스를 /mnt/mymount로 마운트 (-v 옵션 : 자세한 정보 출력)

$ sudo mount -v /dev/sdb1 /mnt/mymount/

mount: you didn't specify a filesystem type for /dev/sdb1

I will try type ext4

/dev/sdb1 on /mnt/mymount type ext4 (rw)

☞ 파일시스템 유형을 명시하지 않고 경고를 출력하며, 알아서 ext4로 시도하여 마운트 함.

▶ 마운트할 파일시스템 유형을 명시적으로 지정 (-t 옵션 사용)

$ sudo mount -v -t ext4 /dev/sdb1 /mnt/mymount

/dev/sdb1 on /mnt/mymount type ext4 (rw)

▶ 마운트 옵션 지정 (-o 옵션 사용)

/* 읽고/쓰기(rw) 모드 지정 */

$ sudo mount -v -t ext4 -o rw /dev/sdb1 /mnt/mymount

/dev/sdb1 on /mnt/mymount type ext4 (rw)

/* 읽기전용(ro) 모드 지정 */

$ sudo mount -v -t ext4 -o ro /dev/sdb1 /mnt/mymount

/dev/sdb1 on /mnt/mymount type ext4 (ro)

☞ /etc/fstab 파일의 네 번째 필드와 동일한 효력을 가짐.

☞ -o 옵션과 콤마로 구분된 옵션들을 입력하여 구제적인 마운트 옵션을 지정해줄 수 있음.

▷ remount 옵션 - 이미 마운트되어 있는 파일시스템의 옵션 변경.

/* 만약 이미 마운트 되어 있다면 경고 메시지와 함께 마운트 되지 않는다 */

$ sudo mount -v -t ext4 -o ro /dev/sdb1 /mnt/mymount

mount: /dev/sdb1 already mounted or /mnt/mymount busy

mount: according to mtab, /dev/sdb1 is already mounted on /mnt/mymount

/* remount 옵션을 사용하여 한번의 명령으로 언마운트하고 새로운 옵션으로 다시 마운트 */

$ sudo mount -v -o remount,rw /dev/sdb1 /mnt/mymount

/dev/sdb1 on /mnt/mymount type unknown (rw)

☞ 읽기 전용으로 마운트되어 있는 파일시스템을 읽기전용으로 다시 마운트.

▷ --bind 옵션 - 마운트되어 있는 파일시스템을 다른 위치에 한번 더 마운트.

$ sudo mount -v --bind /mnt/mymount /tmp/mydir

/mnt/mymount on /tmp/mydir type none (rw,bind)

$ mount | grep /mnt/mymount

/dev/sdb1 on /mnt/mymount type ext4 (rw)

/mnt/mymount on /tmp/mydir type none (rw,bind)

☞ 동일한 파일시스템을 서로 다른 두 개의 마운트 지점에서 접근할 수 있게 되었다.

☞ 새로운 마운트 지점 역시 기존과 같은 옵션을 사용.

▷ --move 옵션 - 마운트되어 있는 파일시스템의 마운트 지점을 다른 위치로 이동.

$ sudo mount -v --move /mnt/mymount /tmp/mydir

/mnt/mymount on /tmp/mydir type none (rw)

$ mount | grep /dev/sdb1

/dev/sdb1 on /tmp/mydir type ext4 (rw)

[ fstab 파일에 기술되어 있는 파일시스템을 마운트 하는 세 가지 방법 ]

① mount -a [-t type] 라고 하면 fstab 에서 기술되어 있는 모든 파일 시스템을 마운트 시킨다.

② 그냥 디바이스명만 써주거나 또는 마운트 포인트(마운트될 디렉토리)만 적어주면 된다.

$ sudo mount -v /dev/sdb1

디바이스명을 사용해 파일시스템 마운트

$ sudo mount -v /mnt/mymount

마운트 지점을 사용해 파일시스템 마운트

③ 다음과 같이 fstab에 user라는 옵션이 적혀 있다면, 누구든 마운트 가능.

/dev/sdb1 /data ext4 ro,user,noauto,async 0 0

[ 루프백 마운트 ]

♧ 파일을 블럭 디바이스 처럼 엑세스 할 수 있게 해주는 가상의 장치.

스왑 파일을 생성하는 것처럼, 일반 파일시스템도 파일 속에 생성할 수 있다.

이러한 가상 파일시스템은 루프백 마운트라고 하는 방법으로 마운트 해야 한다.

(다운로드받은 리눅스 설치 CD또는 라이브 CD등을 마운트하려는 경우)

▷ loop장치가 명시되지 않으면 ( -o loop라는 옵션만 주면)

mount는 사용하지 않은 loop장치를 찾아서 사용

▶ CD 이미지파일(iso9660)을 시스템에 마운트

$ sudo mount -v -t iso9660 -o loop /tmp/myimage.iso /mnt/mymount

mount: going to use the loop device /dev/loop0

/tmp/myimage.iso on /mnt/mymount type ext3 (rw, loop=/dev/loop0)

☞ loop : 명시적으로 /dev/loop* 를 지정하지 않으면 사용하지 않는 loop 디바이스를 자동으로 지정.

▶ USB 디스크 부트 이미지 파일을 시스템에 마운트.

$ sudo mount -v -o loop /tmp/diskboot.img /mnt/mymount

mount: going to use the loop device /dev/loop0

mount: you didn't specify a filesystem type for /dev/loop0

I will try type vfat

/tmp/diskboot.img on /mnt/mymount type vfat (rw,loop=/dev/loop0)

♧ 루프백 디바이스 상태에 관한 정보를 보고 싶다면 losetup 명령 사용.

▶ 마운트된 루프백 디바이스를 보여준다.

$ sudo losetup /dev/loop0

/dev/loop0: [0807]:1009045 (/tmp/diskboot.img)

▶ 마운트된 루프백 디바이스를 강제로 언마운트

$ sudo losetup -d /dev/loop1

☞ 만약 루프백 마운트에 문제가 발생해 언마운트할 수 없다면 다음 명령어를 사용하여 분리작업 시도

■ umount 명령어를 사용해 파일시스템 언마운트 하기

♧ 파일시스템의 마운트 해제는 umount명령을 사용한다.

umount [-hV]

umount -a [-dflnrv] [-t vfstype] [-O options]

umount [-dflnrv] {dir | device}...

umount 명령 기본적인 사용 예:

♧ 마운트와 마찬가지로 디바이스명 또는 마운트 지점을 이용해 언마운트 할 수 있다.

bind 옵션(하나의 디바이스, 여러 개의 마운트 지점)으로 마운트 했을 경우 발생할 수 있는 혼란을 피하고 싶다면

가급적 마운트 지점을 이용해 언마운트 하도록 한다.

▶ 디바이스명을 사용해 언마운트.

$ sudo umount -v /dev/sda1

/dev/sdb1 umounted

▶ 마운트 지점을 사용해 언마운트.

$ sudo umount -v /mnt/mymount/

/tmp/diskboot.img umounted

▶ 언마운트가 되지 않을 경우

$ sudo umount -v /mnt/mymount

umount: /mnt/mymount: device is busy.

(In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))

☞ 만약 디바이스가 사용 중이라면 'device is busy' 라는 메시지가 출력되면서 언마운트할 수 없을 것.

(실패하는 일반적인 원인으로, 마운트된 파일시스템의 디렉토리를 사용하고 있는 쉘이 실행중인 경우가 많음)

▶ 드물지만 'device is busy'의 정확한 원인을 알 수 없을 경우 :

/* mymount 파티션에 열려있는 파일을 찾는다 */

$ sudo lsof | grep mymount

bash 9341 devanix cwd DIR 7,0 4096 2 /mnt/mymount

…

☞ devanix 유저가 실행한 PID 9341이 bash 쉘 프로세스가 마운트 지점을 사용하고 있다는 것을 확인.

(결국 이 bash 프로세스가 mymount 파티션의 언마운트를 방해하고 있었던 것)

▶ -l 옵션 : 지연된 언마운트(lazy umount) 사용.

/* 지연된 언마운트를 실행 */

$ sudo umount -vl /mnt/mymount/

☞ 'device is busy'로 언마운트할 수 없을 때,

이를 해결하기 위한 또 다른 방법으로 지연된 언마운트(lazy umount)가 있다.

☞ 지연된 언마운트(lazy umount)는 디바이스가 사용되지 않을 때까지 대기한 후에

디렉토리 트리로부터 파일시스템을 언마운트한다.

▷ 그밖에 이동식 저장장치를 언마운트할 때에는 eject 명령어를 사용할 수 있다.

eject를 사용하면 CD파일시스템이 언마운트되고 드라이브에서 CD가 자동으로 배출 된다.

$ sudo eject /dev/cdrom

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap8 #01] - tar를 사용하여 백업 아카이브(archive) 만들기  (0) | 2011.08.11
[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10
[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10
[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트  (0) | 2011.08.09
[Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성  (0) | 2011.08.09
[Chap7 #02] - (2) 파일시스템 라벨 작업(e2label, findfs)  (0) | 2011.08.08

Posted by devanix

TAGeject, Mount, umount

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/241

2011.08.09 05:00

[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트

컴퓨터 서적 정리/Ubuntu Linux Toolbox

■ fstab - 파일 시스템에 대한 정보를 고정적으로 저장

♧ /etc/fstab 파일은 보통 리눅스 설치단계에서 루트 파일시스템과 시스템에서 사용될

다른 파일시스템 정보를 바탕으로 자동적으로 만들어 진다.

⇒ fstab 파일은 리눅스에서 사용하는 파일시스템 정보를 고정적으로 저장하고 있는 파일로

시스템이 부팅될 때 자동으로 마운트되거나 사용자가 직접 마운트한다.

⇒ fstab파일의 정보가 조금이라도 잘못되면 부팅과정의 파일시스템 마운트 단계에서 멈춤.

◈ /etc/fstab 파일 예제:

<file system>

<mount point>

<type>

<options>

<dump>

<pass>

/dev/VolGroup00/LogVol00

/

ext3

defaults

1

1

LABEL=/boot

/boot

ext3

defaults

1

2

tmpfs

/dev/shm

tmpfs

defaults

0

0

devpts

/dev/pts

devpts

gid=5, mode=620

0

0

sysfs

/sys

sysfs

defaults

0

0

proc

/proc

proc

defaults

0

0

/dev/VolGroup00/LogVol01

swap

swap

defaults

0

0

/dev/sda1

/mnt/windows

vfat

noauto

0

0

( 직관적으로 보기 위해UUID 목록 제외 )

☞ 루트 파일시스템(/) 과 스왑 파티션(swap)의 경우 논리적 볼륨 관리자(LVM)의 볼륨으로 설정.

- LVM은 볼륨 ID는 그대로 유지하면서 물리적인 파티션들을 이동시키거나 연결하기 쉽도록 만들어 줌.

☞ 여러 가상 파일시스템(물리적 파티션이 없는 파일시스템)으로 구성.

- devpts(pts 가상 터미널 인터페이스)

- sysfs(커널 2.6에 관한 정보 제공 통로)

- proc(커널 2.6 이전에 구현된 커널 정보 제공 통로) 등

☞ 마지막 /dev/sda1 디스크 파티션의 경우, 하드디스크에 있는 윈도우 파티션을 마운트하기 위해 사용자가 직접 추가.

※ 과거 리눅스 버전과 달리 /etc/fstab 파일에서는 이제 더 이상 이동식 저장장치 정보를 관리하지 않음.

이러한 이동식 저장장치들은 하드웨어 추상화 계층(Hardware Abstraction Layer, HAL)이라고 하는

시스템에 의해 자동적으로 검색된 후, /media 디렉토리에 생성된 전용 마운트 지점

(디바이스 볼륨 ID 정보 등을 바탕으로 생성)에 마운트 된다.

- 필요하다면 /etc/fstab 파일에 자신만의 하드디스크 또는 이동식 저장장치 파티션에 대한 정보 추가.

- 원격지 파일시스템(NFS, 삼바 등) 역시 /etc/fstab 파일에 포함될 수 있음.

◈ /etc/fstab 파일의 필드

필 드

설 명

1 <file system>

파일시스템을 대표하는 디바이스명:

⇒ 마운트되는 파티션의 디바이스명(/dev/sda1와 같은) 표시.

(그러나 최근에는 디바이스명 대신 LABEL 또는 UUID를 사용)

2 <mount point>

파일시스템이 마운트될 위치:

⇒ 마운트된 파일시스템의 모든 디렉토리 트리구조와 저장된 데이터가 이 지점과 연결.

3 <type>

파일시스템 유형:

⇒ ext?, tmpfs, devpts, sysfs, swap, vfat, hfs, ufs …와 같은 파일시스템 장치 종류

⇒ /proc/filesystems에서 리눅스에서 현재 사용하고 있는 지원가능한 파일시스템 확인

4 <options>

마운트 옵션:

⇒ 파일시스템을 용도에 맞게 사용하기 위한 파일시스템 속성 설정.

⇒ defaults, auto, exec, suid, ro, rw, user, nouser 등 (man mount 에서 -o 옵션 참조)

5 <dump>

파일시스템 덤프 여부: ( 0 또는 1의 값을 가짐)

⇒ dump 명령을 사용하여 백업을 수행할 때에만 의미가 있다.

숫자 0 : dump 명령으로 덤프 되지 않는 파일시스템.

숫자 1 : 데이터 백업등을 위해 dump가 가능한 파일시스템.

6 <pass>

파일시스템 검사 여부:

⇒ fsck 명령을 사용한 무결성 검사가 필요한지 여부를 가리킨다.

숫자 0 : 해당 파일시스템에 검사가 필요 없음 (fsck가 실행 되지 않음)

숫자 1 : 먼저 파일시스템 검사가 필요 (루트 파일시스템)

숫자 2 : 루트 파일시스템을 제외한 나머지 파일시스템을 의미

[ 디바이스명 대신 UUID를 사용하자 ]

♧ 하드디스크를 추가한 후 드바이스명이 순서가 바뀔 수 있다.

이런경우 하드디스크의 고유한 UUID 를 이용하면 바뀌는 것에 신경을 쓰지 않아도 된다.

fstab에 data용으로 쓸 /dev/sda3을 마운트 해보자.

① fstab에 추가할 디바이스 UUID 확인

$ blkid -o list

device            fs_type label     mount point       UUID

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

/dev/sda1     ext4                      /                            01b059a5-5924-4a72-968d-88df4ad60374

/dev/sda2     swap                  <swap>               285a650a-1313-496f-aa6c-9c574c15d912

/dev/sda3     ext4                     /data                    e3853343-ec3b-4933-b0e0-2a872112ed6d

② /etc/fstab 파일 편집

# data was on /dev/sda3

UUID=e3853343-ec3b-4933-b0e0-2a872112ed6d     /data     ext4      defaults     0 0

☞ /dev/sda3 디바이스명을 위처럼 UUID=e3853343… 처럼 바꿔주면 된다.

이렇게 하면 추후 하드디스크를 추가해서 드라이브문자가 바뀐다고 해도 이상 없이 작동한다.

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap7 #04] - 파일시스템 검사하기 (badblocks , fsck)  (0) | 2011.08.10
[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10
[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트  (0) | 2011.08.09
[Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성  (0) | 2011.08.09
[Chap7 #02] - (2) 파일시스템 라벨 작업(e2label, findfs)  (0) | 2011.08.08
[Chap7 #02] - (1) 하드디스크 파티션 나누기(fdisk, sfdisk, parted)  (0) | 2011.08.08

Posted by devanix

TAGfstab

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/240

2011.08.09 01:44

[Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성

컴퓨터 서적 정리/Ubuntu Linux Toolbox

♧ 모든 파티션 준비가 끝났다면 이제 각각의 파티션을 원하는 파일시스템으로 포맷.

■ mkfs - 리눅스 파일 시스템 만들기

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]

▷ mkfs 명령어는 아래와 같은 리눅스 파일 시스템을 만든다.

mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.cramfs, mkfs.msdos, mkfs.ntfs, mkfs.vfat … 등등

▷ 기본적인 사용 방법 예:

$ sudo mkfs -t ext3 /dev/sdb1

sdb1에 ext3 파일시스템 생성.

$ sudo mkfs -t ext3 -v -c /dev/sdb1

배드 플록 검사와 함께 좀 더 자세한 출력 요구.

$ sudo mkfs.ext3 -c /dev/sdb1

위 명령어와 동일한 경과

[ 가상 파일시스템 생성 ]

♧ 물리적으로 고정된 디스크 파티션을 직접 생성하지 않고 특정 파일시스템 유형을

테스트 하고자 한다면 가상 파일시스템을 사용할 수 있다.

(라이브 CD를 만들거나 가상 운영체제를 실행하는 경우에 유용)

▷ 1GB 크기의 빈 디스크 이미지 파일을 생성 & 포맷 & 마운트

/* 0으로 채워진 1GB 파일 생성 */

$ dd if=/dev/zero of=mydisk count=2048000

2048000+0 레코드 들어옴

2048000+0 레코드 나감

1048576000 바이트 (1.0 GB) 복사됨, 25.8721 초, 40.5 MB/초

/* 가상 파일시스템의 크기를 확인 */

$ du -sh mydisk

1001M mydisk

/* mkdisk 파일에 파일시스템을 만든다 */

$ mkfs -t ext4 mydisk

mke2fs 1.41.14 (22-Dec-2010)

mydisk is not a block special device.

Proceed anyway? (y,n) y

…

/* 마운트 위치 생성 & 디스크 이미지 마운트 */

$ sudo mkdir /mnt/image

$ sudo mount -o loop /tmp/mydisk /mnt/image

☞ dd 명령어로 204800 블록(약 1GB)의 빈 디스크 이미지 생성.

☞ mkfs 명령어로 사용자가 선택한 유형의 파일시스템을 생성.

→ 실제 블록 디바이스가 아니기 때문에 경고 출력

☞ 가상 파일시스템은 다른 파일시스템과 동일한 방법으로는 마운트 할 수 없다.

→ 마운트할 디렉토리를 생성한 다음, 파일(mydisk)를 루프 디바이스(-o loop)로서 마운트 해야 함

→ mount 명령 실행시 root 권한 필요

▶ 가상 파일시스템 /mnt/image 접근 사용.

$ sudo cd /mnt/image

마운트 지점으로 이동

$ sudo mkdir teset

파일시스템에 디렉토리 생성

$ sudo cp /etc/hosts .

파일을 파일시스템으로 복사

$ cd

파일시스템을 벗어난다.

$ sudo umount /mnt/image

파일시스템의 마운트를 해제

☞ 가상 파일시스템의 마운트를 해제한 다음, 파일을 다른 시스템으로 이동시키거나

다른 곳에서 사용하기 위해 CD에 기록해 둘 수 있다.

☞ 만약 이 가상 파일시스템이 더 이상 필요 없다면 단순히 파일을 삭제.

'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글

[Chap7 #03] - (2) 파일시스템 마운트 & 언마운트(mount, umount)  (0) | 2011.08.10
[Chap7 #03] - (1) fstab 파일의 파일시스템 마운트  (0) | 2011.08.09
[Chap7 #02] - (3) 파일시스템 포맷(mkfs), 가상 파일 생성  (0) | 2011.08.09
[Chap7 #02] - (2) 파일시스템 라벨 작업(e2label, findfs)  (0) | 2011.08.08
[Chap7 #02] - (1) 하드디스크 파티션 나누기(fdisk, sfdisk, parted)  (0) | 2011.08.08
[Chap7 #01] - 파일시스템 기초 이해  (0) | 2011.08.07

Posted by devanix

TAGmkfs, 가상 파일, 가상 파일시스템 생성

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/239

이전123 다음

home tag media location guest admin write

Total 416,640

Today 92

Yesterday 389

가입하기  RSS FEED
devanix blog is powered by Daum / designed by Tistory

devanix

카테고리

U&L Developer˚ε♡з。 (230)

예제 코드 & 코드 조각 (6)

Programming (31)

C (7)

Python (17)

Shell Script (6)

API 및 라이브러리 (26)

MySQL C API (7)

C 라이브러리 함수 (19)

Unix & Linux (33)

설치 및 활용 (6)

문제 해결 (2)

General Commands (8)

Linux Programming (7)

Essential Tools (12)

VIM - Vi IMproved (5)

Network (2)

DBMS(Database) (4)

컴퓨터 서적 정리 (69)

Binary Hacks (21)

Ubuntu Linux Toolbox (41)

좋은 프로그래밍 습관 (7)

컴퓨터 문서 모음 (8)

유닉스 & 리눅스 (2)

네트워크 프로그래밍 (4)

시스템 프로그래밍 (2)

워게임(WarGame) (38)

BOF원정대(LOF) (22)

PythonChallenge (16)

태그목록

tail 파일 덤프 CURL ubuntu Linux WarGame 오브젝트 파일 APT Binary Hacks dpkg atexit deb IT 서적 mysql c api LinkedList fstat BOF 원정대 공유 라이브러리 pythonchallenge archive 파이썬 vi 역어셈블 MD5 python challenge Python GCC objdump readelf uname md5sum 빌트인 VIM dump 정적 라이브러리 lstat vim plugin bzip2 패키지 관리 aptitude

글 보관함

2012/03 (1)

2011/12 (2)

2011/11 (10)

2011/10 (11)

2011/09 (20)

최근에 올라온 글

우분투(Ubuntu)에서...

ftplib(FTP protoco...

넷캣(Netcat) 간단... (1)

파이썬 – 날짜시간...

파이썬 – 시간(tim...

공지사항

티스토리 초대장 배포 합니다(4장)

링크

The Linux Cross Re...

The C++ Resources...

SoftPedia.

Simples (심플스).

GNU Manuals Online.

tuhs.

달력

201602  이전달 다음달

« 2016/02 »

일 | 월 | 화 | 수 | 목 | 금 | 토
| 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 | | | | |

티스토리 툴바

Daum

Tistory

로그인