Linux 40

[LINUX] ulimit

Linux 에서의 ulimit 에 대해서 글 올립니다. ulimit 이란, shell과 shell이 실행한 프로세스에 대하여 시스템 상의 사용 자원을 제한할 수 있도록 해주는 명령어입니다. 예제를 보시면 다음과 같습니다. # ulimit -a // 현재 로그인한 user가 사용 가능한 모든 자원의 limit 값 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 127461 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlim..

[dmesg] PCI: Fatal: No config space access function found

1. 에러 메시지:PCI: Fatal: No config space access function found 2. 원인:- Linux VM이 generic kernel을 사용하지 않고 full PV mode 로 실행될 경우 로깅- full PV mode는 Xen의 가상화 지원 모드 두 가지 중 하나이며, PV는 ParaVirtualization의 줄임말- kernel 2.6.24 버전부터는 Xen-PV-enabled kernel이 사용되며, 이럴 경우 어떤 가용한 PCI도 없다는 의미- CentOS 6.3, 6.5 버전(kernel 2.6.24 버전 이상)에서만 해당 메시지 로깅 3. 조치 방안: - lspci 명령 수행 시 아무 결과도 나오지 않고 바로 프롬프트가 떨어지면 정상임- 조치 필요 없음 4. ..

[UNIX/LINUX] 자동화를 위한 interactive 스크립트 - expect (2) 예제

이번 글에서는 expect 스크립트에 대한 예제를 통해 이해를 돕는 시간을 갖도록 하겠습니다. (2) 예제 #!/bin/expect set target "[lindex $argv 0]" set rootid "[lindex $argv 1]" set oldpwd "[lindex $argv 2]" set newpwd "[lindex $argv 3]" spawn telnet $target expect -timeout 5 "*ogin:" send "$rootid\n" expect -timeout 5 "*assword:" send "$oldpwd\n" sleep 2 expect -timeout 5 "#|>" send "passwd\n" expect -timeout 5 "New password:" send "$new..

[UNIX/LINUX] 자동화를 위한 interactive 스크립트 - expect (1) 기본 사용법

이번 글에서는 자동화를 위해 유용하게 사용할 수 있는 expect 란 스크립트에 대해서 말씀 드리도록 하겠습니다. expect 는 telnet이나 ftp와 같이 interactive한 환경이 필요한 곳에서 특정 문자열을 기다리고(expect), 정해진 문자열을 자동으로 보내는(send) 등의 처리를 하는 스크립트 언어입니다. 가령, A라는 서버에서 B라는 서버의 패스워드를 바꾸려 한다고 하면, telnet을 이용하여 B서버로 로그인하고 password 명령을 이용해 기존 패스워드와 새로운 패스워드를 차례로 입력하는 일련의 과정들을 거치게 됩니다. 하지만, 이 expect 를 이용하면 그런 절차들을 일일이 거칠 필요 없이 스크립트 하나만 돌림으로써 문제를 해결할 수 있습니다. expect 스크립트를 사용하..

[LINUX] CentOS 설치

1. 장비에 CentOS DVD를 넣으면 아래와 같은 화면이 보이고 Enter를 누르면 설치가 시작됨 2. OS 설치를 시작하기 전에 설치 media를 테스트하려면 'OK' 를, 그렇지 않으면 'Skip' 을 선택하고 Enter 3. 'Next' 를 누르면 설치 Wizard 가 시작됨 4. 설치를 위해 사용할 언어 선택 5. 키보드 선택 6. 파티션 설정 - 목적에 따라 적절한 항목을 선택. 여기서는 Create Custom layout 선택 7. Create Custom layout 7.1. Swap 파티션: 시스템의 물리적 메모리의 2배 정도 용량으로 생성 (파일시스템 타입에서 swap 선택) 7.2. /boot 파티션: Primary Partition으로 선택하고 512MB로 생성 (파일시스템 타입..

[UNIX/LINUX] Shell Script - sed 명령을 이용한 new line <-> 특정 문자열 (2)

지난 글에 이어서 이번에는 sed를 이용하여 new line을 특정 문자열로 변경하는 방법에 대해 말씀 드리도록 하겠습니다. (2) new line --> 특정 문자열 # cat test.txt1111122222333334444455555 위와 같은 컨텐츠를 가진 txt 파일이 있다고 가정합니다. 위 컨텐츠에서 Enter가 적용된 부분(new line)을 ':'(colon)으로 변경하고자 한다면 다음과 같이 수행합니다. # sed 'N;N;N;N;s/\n/:/g' test.txt sed 명령에서 'N' 옵션은 줄바꿈문자(\n)를 /A패턴/ 공간에 더하고 입력의 다음 줄을 읽어 패턴 스페이스에 덧붙이겠다는 뜻입니다. 무슨 말인지 이해가 잘 되시나요? 사실 저는 아직도 완전히 이해가 되지는 않습니다.;;;;..

[UNIX/LINUX] Shell Script - sed 명령을 이용한 new line <-> 특정 문자열 (1)

이번 글은 sed 명령어를 이용하여 new line(개행문자 \n)을 특정 문자열로 바꾸거나, 특정 문자열을 new line으로 변경하는 방법에 대한 글입니다. Shell Script를 작성하다 보면 한꺼번에 많은 내용을 바꾸어야 할 때가 종종 발생하는데, 그 때 유용하게 쓰이는 명령어가 바로 이 'sed' 명령어죠. sed와 비슷한 역할을 하는 명령어로 'tr' 이라는 명령어도 있습니다. 각자가 처한 상황에 맞게, 취향에 따라 골라 쓰시면 되는데요. 그러한 내용 변경 상황 중에서도 new line, 다시 말해 줄바꿈 상태를 특정 문자열로 변경하거나, 그 반대로 특정 문자열을 줄바꿈 상태로 바꿔야 하는 경우가 있습니다. 그럴 때 다음과 같이 사용하시면 되겠습니다. (1) 특정 문자열 --> new lin..

[UNIX/LINUX] Shell Script 기본 - 5.case문 (1) 기본 사용법 및 예제

5. case문 (1) 기본 사용법 및 예제 case 변수 in 경우1) ~ ;; 경우2) ~ ;; 경우3) ~ ;; ...esac case문의 사용법은 아주 간단합니다. shell script를 아무 생각없이 코딩하다 보면 무수히 많은 if문을 남발하게 되고 소스 자체가 지저분해 보이게 되는데 이 때 이 case문만 적절히 사용할 줄 알아도 훨씬 심플하고 보기 좋은 shell script를 작성할 수 있습니다. 그럼 바로 예제문을 통해 설명 드리겠습니다. 먼저 동일한 결과를 보여주는 if문부터 보도록 하겠습니다. tmpSize=`df -g /tmp | grep tmp | awk '{print $3}' | cut -d '.' -f 1` echo 'The size of /tmp filesystem '${t..

[UNIX/LINUX] Shell Script 기본 - 4.while문 (1) 기본 사용법 및 예제

4. while문 (1) 기본 사용법 및 예제 while [ 조건식 ]; do // while문 시작 ~done // while문 종료 for문과 마찬가지로 while문 또한 루프 처리를 담당합니다. 사용법이 다소 다르므로 상황에 따라 적절히 선택해서 사용해야 하는데요. 이 while문 역시 조건식 뒤에 세미콜론을 사용하지 않고 사용 가능합니다. while문의 조건식엔 보통 산술 비교 형태가 들어갑니다. 가령, 다음과 같은 식이지요. while [ ${index} -le 10 ] // index 변수값이 10보다 작거나 같은 동안 while문 수행do ~done 위와 같은 조건식으로 시작하여 '~' 로 처리한 컨텐츠 부분에 그 조건식에 위배되는 순간이 오게 되면 while문을 종료하는 식이지요. 헌데 f..

[UNIX/LINUX] Shell Script 기본 - 3.for문 (2) 예제

#!/bin/shif [ -d $1 ]; then cd $1 if [ -f $2 -a -s $2 ]; then echo $2' is file and has contents more than one character.' array=`cat $1/$2` for day in ${array}; do if [ -n ${day} ]; then if [ ${day} == "Fri" -o ${day} == "Sat" ]; then echo ${day}' is very happy day!!' else echo ${day}' is gloomy day.' fi fi done else echo $2' is not file or has zero character.' fifi 앞서 if문 예제 글에서 보여 드렸던 예제 스크립트보..