참조 : http://denodo1.tistory.com/149


neli 접속 방법

putty 접속시

ip: ec2-54-199-221-176.ap-northeast-1.compute.amazonaws.com

pw: leadweb123456

ssh key: neli_ssh.ppk


securecrt 접속시 

ssh key: neli_ssh_securecrt_Identity



구동정보

tomcat7 

시작: sudo service tomcat7 start
종료: sudo service tomcat7 stop

웹: http://ec2-54-199-221-176.ap-northeast-1.compute.amazonaws.com:8080/manager/status

admin/leadweb123456

mysql

시작: sudo service mysqld start
종료: sudo service mysqld stop


neli

http://ec2-54-199-221-176.ap-northeast-1.compute.amazonaws.com:8080/neli/

/usr/share/tomcat7/webapps/neli


설치순서

AMI t1.micro로 기본 설치 
ssh -i neli_ssh.pem ec2-user@54.199.215.255 접속

한국시간으로 변경 ('AWS 한국시간 변경 참조')


Timezone ?

리눅스를 새로 설치하고 나면 (AWS EC2 AMI도 Linux와 동일) 시간대(Timezone)을 맞추지 않으면, 리눅스의 date가 미국 태평양 시간인 PST로 표시됩니다. 즉 캘리포니아 현지 시간으로 표시됩니다. 이럴경우 한국 표준시인 KST로 변경해주어야 합니다.


Timezone 변경

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[ec2-user@ip-172-31-7-180 ~]$ date
Fri Aug  8 06:41:49 UTC 2014
 
[ec2-user@ip-172-31-7-180 ~]$ sudo date
Fri Aug  8 06:42:01 UTC 2014
 
[ec2-user@ip-172-31-7-180 ~]$ sudo cat /etc/localtime
TZif2UTCTZif2UTC
UTC0
 
[ec2-user@ip-172-31-7-180 ~]$ sudo rm /etc/localtime
 
[ec2-user@ip-172-31-7-180 ~]$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
 
[ec2-user@ip-172-31-7-180 ~]$ date
Fri Aug  8 15:48:27 KST 2014
 
[ec2-user@ip-172-31-7-180 ~]$ sudo date
Fri Aug  8 15:48:40 KST 2014


oracle java 설치 ('AWS 설치 – TimeZone 및 Java 설치')
yum install tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps

sudo service tomcat7 start
sudo service tomcat7 stop
http://ec2-54-199-221-176.ap-northeast-1.compute.amazonaws.com:8080/

yum install mysql-server

sudo service mysqld start
sudo service mysqld stop

mysql_secure_installation

모두 Y

mysql 초기 셋팅
mysqlworkbanch 접속

ssh key 는 .pem 파일 선택

http://www.youtube.com/watch?v=pZFSSVVdqmw

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#


AWS 접속

https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#

AWS 기본설치

http://www.kimjmin.net/2014/01/aws_1/

AWS 한국시간 변경

sudo vi /etc/profile

TZ=Asia/Seoul
export TZ
source /etc/profile
date


AWS 접속방법(상세)

기본: ssh -i neli_ssh.pem ec2-user@54.199.215.255

puttygen 으로 pem 파일을 로드하여 pub, ppk 파일을 만든다. 
자동으로 ppk 파일이 서버의 .ssh/authorized_keys 파일에 복사 된다.

securecrt에서 create public key를 클릭 pub 파일을 만든다. (DSA 선택)
해당 파일을 AWS에 복사후 
※ssh-keygen -i -f ./Identity.pub >> .ssh/authorized_keys
하기 명령을 공개키를 authorized_keys에 등록 해준다.

암호: leadweb123456

AWS tomcat, mysql 설치

http://coenraets.org/blog/2011/11/set-up-an-amazon-ec2-instance-with-tomcat-and-mysql-5-minutes-tutorial/

mysql 까지 설치가 완료되면,

sudo service mysqld start

위 service로 mysql 구동 하여준다

 그리고mysql의 root 계정 패스워드를 초기화 해주어야 한다

(처음엔 password가 지정되어 있지 않으므로

> mysql -u root

로 접속하면 된다)

접속한 뒤 아래와 같이 비밀번호를 셋팅 해준다


Method 2 - Update or change password

MySQL stores usernames and passwords in the user table inside the MySQL database. You can directly update a password using the following method to update or change passwords:

1) Login to the MySQL server, type the following command at the shell prompt:


$ mysql -u root -p


2) Use the mysql database (type commands at the mysql> prompt):


mysql> use mysql;


3) Change password for a user:


mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';


4) Reload privileges:


mysql> flush privileges;
mysql> quit



AWS 설치 – TimeZone 및 Java 설치

http://www.kimjmin.net/2014/01/aws_2/


mysql 초기 셋팅

[root@ip-172-31-17-71 bin]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.34 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database neli
-> ;
Query OK, 1 row affected (0.00 sec)

mysql> use neli;
Database changed
mysql> create table test (
-> id integer not null auto_increment,
-> name varchar(255) not null,
-> body text not null,
-> primary key(id)
-> );
Query OK, 0 rows affected (0.03 sec)

mysql> create user 'neli_user'@'localhost' identified by 'leadweb123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on neli.* to 'neli_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@ip-172-31-17-71 bin]#


mysql 인코딩 설정

$ vi /etc/my.cnf


[mysql]

default-character-set = utf8


[mysqld]

character-set-client-handshake=FALSE

init_connect="SET collation_connection = utf8_general_ci"

init_connect="SET NAMES utf8"

default-character-set = utf8

character-set-server = utf8

collation-server = utf8_general_ci


datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0


[client]

default-character-set = utf8


[mysqldump]

default-character-set = utf8


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid



그리고 재시작 
$ service mysqld restart 
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ] 

이제 최종적으로 status를 통해 서버와 mysql의 인코딩이 통일 되었는지 확인해보자 .

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.61, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:          8
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.1.61 Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 27 min 16 sec

Threads: 1  Questions: 52  Slow queries: 0  Opens: 23  Flush tables: 1  Open tables: 11  Queries per second avg: 0.31
--------------

mysql> show variables like 'c%' ;


Linux Kernel에 관련된 지식을 가지고 실제로 현업에 나간다면 그 지식은 어떻게 쓰이고 어떤 분야가 유망할까요? 아래는 제가 느낀 분야별 Kernel 관련 지식 활용 추세입니다. Linux Kernel의 소스 디렉토리별로 대략 나누어서 생각해 보았습니다.

/usr/src/linux/Documentation: 개발자가 아닌 사용자들에게 유용한 지식입니다. Kernel에 뭔가 새로운 기능을 스스로 추가하는 것보다는 이미 있는 기능에 대해서 잘 숙지하고 디버깅이나 퍼포먼스 프로파일링 능력을 요구받는 일이 더 많습니다. 대부분의 퍼포먼스 이슈는 사용자 레벨에서 발생하고, 커널로 인해 애플리케이션이 오동작하는 경우는 거의 없지만 커널의 각종 파라미터를 튜닝하여 동일한 하드웨어에서 더 좋은 성능을 내거나 애플리케이션이 크래쉬될 경우 그 원인을 알기 위해서는 커널 수준까지 디버깅할 수 있는 능력을 갖춘다면 회사에서 더 많은 사랑을 받을 수 있습니다.

/usr/src/linux/arch: x86 계열을 주로 사용하는 서버를 다루는 일을 하시는 분들과는 거의 관련이 없고 임베디드 엔지니어들에게 유용한 지식입니다. 새로운 CPU나 보드를 bring-up하는 일이 항상 동반되는 바, 하드웨어 & 소프트웨어 양쪽의 지식이 모두 필요합니다. 이쪽 분야는 특정 아키텍처를 다룰 수 있는 기회가 계속 주어진다면 해당 아키텍처의 maintainer가 되는 쪽으로 목표를 정하고 추진한다면 더 많은 기회가 주어집니다. (물론, maintainer가 되는 것은 어느 분야이든 좋은 일입니다만...)

/usr/src/linux/fs: 개인적으로 Kernel 개발자들에게 가장 유망하다고 보는 분야입니다. 파일시스템은 OS가 있는 한 계속해서 존재할 것이고, 스토리지 디바이스에 대한 요구사항은 제품마다, 혹은 애플리케이션마다 다르기 때문에 그러한 요구사항을 잘 반영할 수 있는 파일시스템을 개발할 수 있는 능력을 갖춘다면 정말로 많은 기회를 잡을 수 있을 것입니다. 꼭 회사에 속해 있지 않더라도 고용량 HDD나 플래쉬 메모리 디바이스 등은 쉽게 구할 수 있으므로 특정 디바이스를 요하는 디바이스 드라이버 관련 지식 등에 비해 미리 공부하기도 상대적으로 용이한 측면이 있습니다.

/usr/src/linux/drivers: 디바이스 드라이버는 계속해서 새로운 디바이스가 출시되기 때문에 그러한 추세에 발맞추어 새로운 스펙이나 특정 하드웨어에 대한 지식을 지속적으로 습득하는 작업이 필요합니다. 잘 하면 물론 좋지만 개인적으로는 들이는 노력에 비해 실제로 얻을 수 있는 것이 다른 분야에 비해 좀 작다는 느낌을 받습니다.

/usr/src/linux/kernel , /usr/src/linux/mm: Linux Kernel의 코어에 해당하는 부분입니다. 이 부분을 수정할 수 있는 능력을 갖추고 그렇게 하는 것이 언제 좋으며 왜 필요한지를 설명할 수 있는 능력을 갖춘다면 현업보다는 학교/연구소 등에서 OS에 관한 리서치를 하는 것이 좋습니다. 이 부분은 시스템 전체에 영향을 미치기 때문에 실제 현업에서는 코드 자체는 거의 바꾸지 않고 컴파일시 옵션만 선택해서 사용하는 경우가 대부분입니다. 이부분을 잘 안다면 'guru'라고 불리울 수 있는 폼나는 분야이기도 하지요.

다시한번 말씀드리지만 위의 내용은 어디까지나 제 개인적인 느낌입니다. 막상 써 놓고 다시 읽어보니 말도 안되고 앞뒤가 안맞는 부분이 많네요. 그냥 재미로 읽어 보시고... 실제로 각 분야에서 현업에 계신 분들의 의견/반론/경험담 등을 기대하겠습니다.

gurugio의 아바타

usr/src/linux/Documentation:

usr/src/linux/Documentation: 예전에 책을 쓸때나 개발 문서를 쓸 때 많이 봤었습니다. 이 문서를 번역하거나 개발 문서를 쓸 때 이용하면 좋은 문서가 될것 같구요 그러면 이름을 알리는데 도움이 될것 같습니다. 제가 만든 문서를 읽어본 분들께 도움을 받은 적이 있습니다. 부가적인 효과겠지요?

/usr/src/linux/arch: 예전에 ARM 계열 보드에 포팅할 때 많이 봤습니다. 계속 보면서 흐름에 익숙해지면 포팅하는데 많이 도움이 되구요 특히 자기가 다루는 프로세스 폴더를 많이 보다보면 부팅 흐름에 대해 기본적인 것들을 배울 수 있는것 같습니다.

/usr/src/linux/fs: 파일시스템은 주변에 다루시는 분이 안계셔서 모르겠습니다. 하지만 그만큼 기술보유자가 적고 매리트가 있다는 것 같습니다.

/usr/src/linux/kernel , /usr/src/linux/mm: 취미 생활로 작은 커널을 만들고 있는데 계속 들여다보고 있습니다만.. 적확히는 커널 책을 보는 경우가 더 많고 소스만 보는 경우는 적은것 같습니다. 그 외에 경제적이거나 직접적인 효과는 잘 모르겠습니다.... 불면증 해소? 고민을 많이 하면 체중감량에 조금 도움이 되었습니다.

----
세상을 바꾸는 것은 단 한 사람. 오직 하나님의 사람뿐이다.

anfl의 아바타

kernel - 요즘엔 이

kernel
- 요즘엔 이 분야의 중요도가 점점 더 높아지고 있습니다. 사람들이 더 빠르고, 더 화려한것을 갈구하는것을 멈추지 않는한 새로운 architecture는 계속 나올것이고, 그러한 architecture를 받쳐줄 새로운 OS는 계속 필요 할것입니다.
요즘 상황만 봐도 공정 기술과 소자의 한계로 인해 더 이상 성능을 내지 못하게 되자 multi-core로 옮겨갔는데 그로 인해 OS의 비중이 더욱 크지게 되었습니다. multi-core에서 제대로 성능을 내려면 OS의 dynamic-profiling 정보를 이용한 효율적인 scheduling이 필수적이고 그러한 일은 architecture나 compiler가 제공해주지 못하죠.
때문에 현재의 소자가 계속 사용되는한 multi-core, many-core, MPSoC는 필연적이고 그에 따른 OS의 비중이 크짐과 동시에 다양한 architecture의 다양한 OS가 나올 가능성이 큽니다.
때문에 손을 들어준다면 저는 이쪽에 손을 들어주고 싶군요. low level에서는 아직도 할일이 무궁무진합니다. 실제로 권순선님이 다니시는 회사에서도 이와 관련된 일을 제가 했었죠. SM?, LE? 라고 들어보셨는지...

arch
- linux kernel에 있는것만 이해를 해도 software 분야에서 필요한 arch는 거의 다 알았다고 할수 있을것 같습니다. embedded 개발자라면 당연히 이 부분의 지식이 반드시 필요하고 linux에 있는것만 봐도 software 쪽에서는 왠만큼 다 알았다라고 할수 있을것 같습니다.
하지만 이쪽 분야에서 그 정도로 그친다면 전망이 불투명하다고 봅니다. 사실 arch에 있는것들은 메뉴얼대로 하면 되는것들이기 때문에 고차원적인 것들이 그다지 있지 않습니다.
이 분야의 꽃은 뭐니뭐니해도 H/W와 S/W를 동시에 이해해서 architecture exploration을 할수 있는 능력이지 않을까 쉽네요.

fs
- fs는 정말 유망하죠. 특히나 flash와 같은 새로운 저장 매체가 나옴으로써, 그리고 용량이 점점 크져가면서 더욱 중요해지고 있습니다. 예를 들면 flash memory들이 대부분 FAT을 사용하는데 FAT라고 해도 다 같은 FAT가 아니죠. 성능과 안전성을 향상시키기 위해 대부분 변형된 FAT이 들어가는데 그 종류도 많죠. 그리고 그 종류는 앞으로 더욱 늘어날거라 봅니다. 지금 분산이 중요해지고 있는데 fs에서도 중요해지고 있기 때문에 할일은 정말 많을것 같습니다.

driver
- 사실 이 분야는.... 좀 노가다성이 짖죠. 밥 굶고 살일은 없겠지만 그렇다고해서 전망이 밝다고 말하지 못할것 같습니다. 물론 이건 제 주관적인 견해입니다. 
앞으로 없어지진 않겠지만 driver와 함께 할수 있는 다른 무언가를 준비하지 않으면 나중에 위기가 닥쳐올수도 있을거라 생각합니다.
예전에 손으로 artwork 그리고 PCB 뜨는 기술이 중요했다면 지금은 거의 대부분 자동화 되버리거나 SoC chip로 대체되는것을 볼때 이 분야도 어쩌면 그렇수도 있을것 같네요.

런맨의 아바타

네트웍이 빠지면

네트웍이 빠지면 안되지 않나요?ㅎㅎㅎ 갠적으로 
linux/net/netfilter/
이것도 좋다고 생각합니다.

제주위에서 보면 웬만한거는 네트웍은 되어야 한다는 생각이 들어요...유비쿼터스라고도 할까요? ^^

짧은 생각입니다.

cychong의 아바타

net/ipv4 아무래도

net/ipv4
아무래도 네트웍 쪽에 있고 TCP/IP 스택의 동작을 이해하는데 가장 좋은 자료중의 하나입니다.

Life with fun...

cookatrice의 아바타

좋은글들 잘 읽었습니다..^^

감사할 따름입니다...^^

임수서룬뫼의 아바타

흠. 파일시스템

흠. 파일시스템 하니까 생각나는데...
저는 그 뭐냐 폴더인지 뭔지 하는 개념을 박멸시키고 싶거든요.
그냥 태그나 붙이면서 살아가고 싶어요.
ex:
C:\Users\cppig1995\Documents\Memo.txt
---]
파일명: Memo.txt, 범주: 개인문서, 메모
---]
Memo.txt:개인문서;메모 (새로운 표기법)



CS최정예 만세!
최정예OS (64비트 운영 체제) 만세!
UltraScx (SC/BW 맵 에디터) 만세!

지리즈의 아바타

기발한데요.

요즘 들어서는 나오는 FS들은
물리적 제한에 대한 탈피가 최대의 화두인 것 같습니다..

전통적인 디렉토리(directory,file) 개념은 
당시에는 그나마 최대한 논리적인 선택이었죠.
사실 저장매체에 메모리의 내용을 저장한다는 것 자체가 획기적이었던 시절에
나왔던 (당시로는) 이상적인 저장 매체 관리 방법이었고, 지금까지 이어져 온거네요.

카세트 테이프에 기록하다가 랜덤 억세스가 가능한 디스크를 봤을 때 놀라운 생각이 들었던 기억을 해보니..
정말 격세지감이 드네요.

이제는 정말 디렉토리,파일 개념을 버려야 할 시기가 온 것 같아요.

보다 더 추상적이고 사용자 지향적인 저장시스템이 필요해진 것 같습니다.

There is no spoon. Neo from the Matrix 1999.

akudoku의 아바타

.

각 파일에 태그를 붙여서 관리하는 건 나쁘지 않지만,
기존의 파일을 폴더별로 관리하는 사람들을 위해서 폴더의 이름을 바로 파일의 태그로 넣을 수 있는 유틸이 필요하지 않나... 하는 생각이 듭니다.

akudoku.net

죠커의 아바타

전통적인 운영체제

전통적인 운영체제 수준의 파일시스템은 아니니 조금 다른 얘기일 수도 있습니다만 요즘 분산 파일시스템에서 계층적인 디렉토리/파일 구조를 쓰지 않는 경우가 종종 있더군요. /blah/foo/bar 라는게 있다면 전통적으로는 blah 디렉토리에 foo 디렉토리가 계층적으로 위치했는데 분산 파일시스템에선 그냥 /blah/foo/bar로 처리하고 사용자가 요청할때 /blah/foo/bar에서 /blah/foo/나 /blah/를 해석해내었습니다. 전체적인 경로에서 부분적인 경로를 역으로 찾더군요.

죠커's blog / HanIRC:#CN

gamdora의 아바타

파일 시스템이

파일 시스템이 거대한 위키가 되겠군요. :)

tolkien의 아바타

RE: Linux Kernel 쪽에서 가장 유망한 분야는?

pm (power manangement).
간단하게 하면 sleep/wakeup or suspend/resume 처리
좀 더 들어가면 intel's speed step.
좀 더 들어가면 performance monitoring & resource management

HAL.
appl과의 interaction 부분은 아직 많이 부족함.
desktop/server쪽은 현재 구현으로 그럭저럭 쓸만함.
but, small device에서는?

bootloader
kernel쪽은 아닌데, 하다보면 이쪽은 안 건드릴 수 없죠.
alpha server의 srm bootloader보다 편한 것을 보지 못했습니다.
bootloader의 함수들을 file system 처럼 넣었다 뺄 수 있으면 좋겠슴.
u-boot의 미래는?

gurugio의 아바타

지금 잠깐 든

지금 잠깐 든 생각인데요
여기 올라온 주제들을 오픈소스 프로젝트로 만들면 어떨까요..

전 kldp에서 몇가지 프로젝트를 kldp 이름으로 관리하면 좋겠다고 생각하거든요.
(배포판도 그중 하나지요 ;-)

사실 개인적으로도 흥미있는 주제들을 써주셔서 감사드립니다.

----
세상을 바꾸는 것은 단 한 사람. 오직 하나님의 사람뿐이다.

corone의 아바타

좋은 글 잘 읽었습니다

오래된 글이긴 하지만 좋은 글 잘 읽었습니다

paeksj98의 아바타

이글 오랜만에 또 보넹...

이런글 볼때마다 열심 해야지 하는 생각만...^^;

리눅스 장비에 usb to serial 장치 14개를 붙여서 진행하는 프로젝트가 있었다.
프로젝트 도중 usb serial port가 0~5번까지는 open이 되는데 6번 이상의 port들은 open이 안되는 현상이 계속해서 나타났다.
한참 개고생하다가 지인의 도움으로 해결했다. ㅋ

이럴 땐 "ls -al /dev/ttyUSB*"를 해본다.

#ls -al /dev/ttyUSB*
crw-rw-rw- 1 root root 188,  0 2008-11-14 10:19 ttyUSB0
crw-rw-rw- 1 root root 188,  1 2008-11-14 10:19 ttyUSB1
crw-rw-rw- 1 root root 188,  2 2008-11-14 10:19 ttyUSB2
crw-rw-rw- 1 root root 188,  3 2008-11-14 10:19 ttyUSB3
crw-rw-rw- 1 root root 188,  4 2008-11-14 10:19 ttyUSB4
crw-rw-rw- 1 root root 188,  5 2008-11-14 10:19 ttyUSB5

 디바이스 파일들이 0~5번까지만 생성되어 있기 때문에 open 되지 않았던 것이다.

mknod 유틸을 이용해서 6번부터 13번까지 생성함으로 써 이 문제는 깨끗하게 해결되었다(디바이스 파일은 create()함수를 사용하지 않고 mknod 유틸을 이용해야 한다).

mknod 사용법
mknod [디바이스파일명] [디바이스타입] [주번호] [부번호]

* 여기서 usb to serial 장치는 문자형 장치이기 때문에 디바이스 타입에는 c, 주번호는 188을 사용한다.


mknod /dev/usb-tty/ttyUSB6 c 188 6
mknod /dev/usb-tty/ttyUSB7 c 188 7
mknod /dev/usb-tty/ttyUSB8 c 188 8
mknod /dev/usb-tty/ttyUSB9 c 188 9
mknod /dev/usb-tty/ttyUSB10 c 188 10
mknod /dev/usb-tty/ttyUSB11 c 188 11
mknod /dev/usb-tty/ttyUSB12 c 188 12
mknod /dev/usb-tty/ttyUSB13 c 188 13
mknod /dev/usb-tty/ttyUSB14 c 188 14
mknod /dev/usb-tty/ttyUSB15 c 188 15


work directory를 /media/외장하드/backup.tar.gz로 압축한다.
tar cvfz /media/외장하드/backup.tar.gz work/
위와 같이 할 경우 권한이 없는 파일을 백업하려 할때 Error exit delayed from previous errors 메시지와 함께 백업이 중단될 수 도 있다. 따라서 아래 처럼 하면 더 완벽하게 백업할 수 있다.
sudo tar cvfz /media/외장하드/backup.tar.gz work/


/media/외장하드/backup.tar.gz파일을 /home/kei/에 압축을 푼다.
tar xvfz /media/외장하드/backup.tar.gz /home/kei/
sudo를 이용해서 압축을 했을 경우 아래와 같이 압축을 푼다. 이렇게 하지 않으면 권한이 없는 파일일 경우 압축이 해제되지 않는다.
sudo tar xvfz /media/외장하드/backup.tar.gz /home/kei/



백업중 tar : Error exit delayed from previous errors
에러 발생 이유 :
1) 해당 파티션에 용량이 부족할 경우. 아래 명령으로 용량 확인
df -h
du -h work

2) 권한이 없는 파일을 백업하려 할 경우
tar cvfz /media/외장하드/backup.tar.gz work/ --ignore-failed-read

--ignore-failed-read
              don’t exit with non-zero status on unreadable files

#참고
--exclude=PATTERN
              exclude files matching PATTERN

우선 "fdisk -l" 명령으로 장치 드라이버 이름을 알아본다.
sh-3.2# fdisk -l

Disk /dev/uba: 8292 MB, 8292139008 bytes
49 heads, 48 sectors/track, 6885 cylinders
Units = cylinders of 2352 * 512 = 1204224 bytes

  Device Boot      Start         End      Blocks  Id System
/dev/uba1               1        6886     8097780   b Win95 FAT32
sh-3.2#

여기서는 "/dev/uba1"으로 잡혔구나 ~
장치 드라이버 경로를 알았으니 "/mnt/usb" directory로 mount를 해보자.
만약에 "/mnt/usb" directory가 없을 경우 mkdir /mnt/usb로 directory 생성!!
sh-3.2# mount -t vfat /dev/uba1 /mnt/usb

mount되었는지 'ls"명령으로 확인해보자!
sh-3.2# ls /mnt/usb
??                                     Project_?? ??.zip
??                                     RFIDReader.zip
??                                     Release.zip
??.zip                                 SamsungPrint
????                                   ShapNWitServerProgram.exe
????.docx                              System Volume Information
CDMv2n_20100209.zip                    Utils
CDMv2n_20100211.zip                    Vcard
CDMv2n_20100216.zip                    Visual Studio ?? ?? ??
CDMv2n_20100222.zip                    c#
CDMv2n_20100224.zip                    desktop.ini
DrawCircle.zip                         jffs2root-inetok-20090216-0916.tar.gz
KDebug.cs                              linux-2.6.25.10_20090812.tar.gz
KeiRaysLibrary.zip                     make_root_image.tar.gz
Keipack_20100211.zip                   npki
Keipack_20100216.zip                   p07408_WIT SHAP ????? ???.zip
Keipack_20100222.zip                   r58562.exe
LineSelector                           rcwf.exe
NVCInstFull.exe                        recycler
Project.zip                            wmwifirouter1.3.cab
sh-3.2#

usb드라이버에 한글 부분이 깨져보인다. 이를 해결하기 위해서는 iocharset을 cp949로 맞추어준다.
sh-3.2# mount -t vfat -o iocharset=cp949 /dev/uba1 /mnt/usb
sh-3.2# ls /mnt/usb
CDMv2n_20100209.zip                    Utils
CDMv2n_20100211.zip                    Vcard
CDMv2n_20100216.zip                    Visual Studio 환경 설정 파일
CDMv2n_20100222.zip                    c#
CDMv2n_20100224.zip                    desktop.ini
DrawCircle.zip                         jffs2root-inetok-20090216-0916.tar.gz
KDebug.cs                              linux-2.6.25.10_20090812.tar.gz
KeiRaysLibrary.zip                     make_root_image.tar.gz
Keipack_20100211.zip                   npki
Keipack_20100216.zip                   p07408_WIT SHAP 무선데이터 수집기.zip
Keipack_20100222.zip                   r58562.exe
LineSelector                           rcwf.exe
NVCInstFull.exe                        recycler
Project.zip                            wmwifirouter1.3.cab
Project_회사 작업.zip                  기타
RFIDReader.zip                         동생사진
Release.zip                            문서
SamsungPrint                           작업
ShapNWitServerProgram.exe              작업.zip
System Volume Information              프로토콜.docx
sh-3.2#

usb메모리의 사용이 끝났으면 unmount를 한다.
sh-3.2# umount /dev/uba1
sh-3.2#





아래 코드로 간단하게 해결.

void ConfigureNetwork(char *ip, char *subnetmask, char *gateway)
{
    char command[255];
    sprintf(command, "ifconfig eth0 %s netmask %s up", ip, subnetmask);
    system(command);
   
    sprintf(command, "route add default gw %s", gateway);
    system(command);

    sleep(2);
    // 보나스로 gateway에 ping 3번 날려줌
    sprintf(command, "ping %s -c 3", gateway);
    system(command);
}


우분투 기본 환경 설정

1. Ubuntu 7.1 Server 설치

# sudo apt-get update
# sudo apt-get dist-update


2. Locale 변경
#  sudo locale-gen ko_KR.EUC-KR
#  /etc/environment 의 LANG를 ko_KR.EUC-KR로 수정


3. Webmin 설치

# Webmin 다운로드 :  webmin_1.400_all.deb
# dpkg --install webmin_1.400_all.deb
# apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl


4. apache2 환경설정

# sudo a2enmod rewrite : mod_rewrite추가
# /etc/apache2/sites-available/default 에 AllowOverride all로 변경
# /etc/apache2/Apache2.conf에 다음의 설정을 추가/확인
<IfModule mod_rewrite.c>
   RewriteEngine On
</IfModule>


5. proFTPD 환경설정

# sudo apt-get install proftpd
# /etc/proftpd/proftpd.conf에 다음의 내용을 추가
<Global>
RootLogin off              # root 로그인 방지
AllowForeignAddress on     # 외부 접속 허용/금지
AllowRetrieveRestart on    # 이어받기 허용/금지
AllowStoreRestart on       # 이어쓰기 허용/금지
DeferWelcome on           
ServerIdent on
LoginPasswordPrompt on     # 사용자 암호 묻기
AllowOverwrite on          # 겹쳐쓰기 허용
AuthAliasOnly on           # 인증된 alias 사용자만 사용
UserAlias #### #### (ftp user, shell user : 필요한 사용자 이름으로 지정)
UseFtpUsers on             # Ftp용 사용자를 사용
RequireValidShell off      # shell로 로그인된 사용자만 사용
HiddenStor on              # hidden속성 저장
</Global>


6. Samba 환경설정

# sudo smbpasswd -a <userid> : Samba 사용자 추가
# /etc/samba/smb.conf Global 옵션 추가/확인
[global]
 encrypt passwords = true
 netbios name = <server name>
 server string = <server name>
 writable = yes 
 invalid users = root
 workgroup = WORKGROUP
 unix charset = euc-kr
# /etc/samba/smb.conf 에 공유디렉토리 추가
[test]
 hide dot files = no
 delete readonly = yes
 path = /../../.. (공유할 디렉토리)
 sync always = yes
# sudo /etc/init.d/samba restart
 

7. Java 설치

# sudo apt-get install sun-java5-bin sun-java5-plugin
# sudo update-alternatives --config java : Java Defualt를 설정

8. Tomcat & JDK 설치

# sudo apt-get install tomcat5.5 sun-java6-jdk tomcat5.5-webapps tomcat5.5-admin
# /etc/default/tomcat5.5 에 JAVA_HOME 설정/확인
JAVA_HOME=/usr/lib/jvm/java-6-sun
# sudo update-alternatives --config java : Java Defualt를 설정
# sudo /etc/init.d/tomcat5.5 start : 톰켓 시작
# wget http://localhost:8180 : 접속하여 확인

9. SVN 설치

# sudo apt-get install subversion libapache2-svn
# svnadmin create --fs-type fsfs /../../.. : 리포지토리 디렉토리 생성
# svnserve -d -r /../../..  : 시작 스크립트
# killall svnserve          : 종료 스크립트

10. build환경 구성
# sudo apt-get install gcc
# sudo apt-get install build-essential

특 이사항
# 보안상 문제가 있을지라도 Webmin은 상당히 좋은 툴 이다. 이런저런 스크립트가 내장되어 대부분 gui에서 실행하면 스크립트와 설정파일을 얻을수가 있다

# 문자세트를 euc-kr로 통일 Ftp, Web, Samba, Local에서 만든 한글 디렉토리또는 파일이름이 잘 출력된다.


참조 : http://jongsik.tistory.com/126
1. 서브버전 설치
$ sudo apt-get install subversion

2. 저장소 확보
$ mkdir /home/dev/svn

3. 저장소 생성 (sample 저장소 생성)
$ svnadmin create --fs-type fsfs sample

4. 사용자 인증 설정
$ vi /home/dev/svn/sample/conf/svnserve.conf

auth-access = write 주석 해제
password-db = passwd 주석 해제

$ vi /home/dev/svn/sample/conf/passwd 에서 아이디, 암호 입력

5. SVN 서버 시작
$ svnserve -d -r /home/dev/svn



# mkdir 리눅스폴더명
# mount -t smbfs -o username=test,password=test //호스트IP/윈도우폴더명 /리눅스폴더명

ex)
$ sudo mount -t smbfs -o username=jgl,password=jgl85 //192.168.1.39/jgl /mnt/

'Linux' 카테고리의 다른 글

우분투 기본 환경 설정  (0) 2010.02.11
kubuntu에서 SVN server 설치하기  (0) 2010.02.11
[kubuntu/ubuntu] NFS 서버 설치와 설정  (0) 2010.02.04
SSH, SAMBA 설정하기  (0) 2010.01.29
기본적인 개발 환경 구축  (0) 2010.01.29

1. nfs-kernel-server, nfs-common, portmap 패키지 설치
$ sudo apt-get install nfs-kernel-server nfs-common portmap

2. 서버 설정
$ sudo vi /etc/exports

/home/dev 192.168.1.*(rw,no_root_squash,no_all_squash,async,no_subtree_check)

3. 서버 재시작
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo /etc/init.d/portmap restart

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

다른 시스템에서 NFS 공유 폴더를 마운트하기
$ mount -t nfs -o nolock 192.168.1.48:/home/dev /mnt/nfs


'Linux' 카테고리의 다른 글

kubuntu에서 SVN server 설치하기  (0) 2010.02.11
리눅스에서 윈도우 공유 폴더 마운트하기  (0) 2010.02.10
SSH, SAMBA 설정하기  (0) 2010.01.29
기본적인 개발 환경 구축  (0) 2010.01.29
Kubuntu 9.10 한글 입력 설정  (0) 2010.01.29

1. SSH 설치
 $sudo apt-get install ssh

2. SSH 재시작
 $sudo /etc/init.d/ssh restart

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

1. SAMBA 설치
 $sudo apt-get install samba smbfs

2. SAMBA ID 생성
 $sudo smbpasswd -a 아이디
 (가급적이면 리눅스 계정과 동일한 이름으로 해야  관리가 편하다.)

3. smb conf 수정
 $sudo vi /etc/samba/smb.conf

#======================= Share Definitions =======================
[Myfolder]
   comment = work Directories
   path = /
   browseable = yes
   read only = no
   writable = yes 

예)
[home]
 comment = Linux dev machine
 path = /home/dev
 browseable = yes
 read only = no
 writable = yes  

# samba 속도 향상
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096 SO_RCVBUF=4096 

4. SAMBA 재시작
 $sudo /etc/init.d/samba restart


우분투, 쿠분투들은 기본적으로 설치되지 않는다.
하지만 콘솔환경에서 손쉽게 설치할 수 있다.

sudo apt-get install build-essential

설치가 잘되었는지 확인하는 방법은
gcc 만 콘솔에 입력 했을 때 "gcc: no input files"라는 메시지가 나오면 성공!!
한글 입력이 안된다. ㅠ.ㅠ
구글에서 검색해보니 답을 찾았다.


Kickoff 프로그램 실행기(윈도우즈에서 시작메뉴와 같은 것) - 컴퓨터 - 시스템 설정 - 국가 및 언어 - Select System Language 에서,
언어선택: 한국어
키보드 입력 방식: nabi

그리고 시스템을 재부팅하고 나면 ctrl + space 키 조합으로 한글 입력이 잘된다.

쿠분투를 설치할 때 분명히 한글을 선택했음에도 불구하고 언어 설정이 영어로 되어 있었다.
이럴 경우 한국어 패키지를 설치 해야 한다.

터미널에서 apt-get을 이용하여 아래의 방법으로 한국어 패키지를 설치한다.
$sudo apt-get install language-pack-kde-ko
$sudo apt-get install language-pack-kde-ko-base

KDE가 아닐 경우 아래의 두 패키지를 설치한다.
language-pack-ko
language-pack-ko-base

설치 후
System Settings -> Personal의 Regional & Language 선택
Add Language에서 Korean 선택

+ Recent posts