순서


1. 포트 오픈

rlogin : 513 

rsh : 514

ssh : 22


2. target 서버에서 .rhost 설정

127.0.0.1 5dolstory  <- ip는 source 서버의 ip


3. 서버에서 rsh, rlogin 실행

/etc/xinetd.d/rsh, /etc/xinetd.d/rlogin

disable = yes -> no 설정


4.   xinetd 재시작

/etc/rc.d/init.d/xinetd restart


5. 로그인 없이 rsh 바로 접근 하고 싶은 경우

vi /etc/pam.d/rsh

#auth       required     pam_rhosts_auth.so <-  주석 처리

Posted by 서오석
,
출처 : 
 

1. 메모리 관리 소개
 
top과 같은 일반적인 Unix 도구들은 시스템이 잠시 구동된 후 여유 공간이 얼마되지 않는다고 종종 보고합니다.
(예를 들어약 3시간 가량 시스템을 가동하면)
현재 제가 이 글을 작성하고 있는 이 머신은 512MB 크기의 RAM임에도 불구하고 단지 60MB 이하의 메모리 여유 공간이 있다고 보고합니다모두 어디로 간 것일까요?
 
이렇게 보고되는 메모리가 사용되는 가장 큰 공간은 디스크 캐시(Cache)에 있습니다. (필자의 경우 현재 약 290MB 이상 입니다.)
이러한 캐시 영역은 top에 의해 "cached"라고 표시됩니다.
캐시 메모리는 실행 중이거나 새로 시작될 프로그램이 메모리를 필요로 한다면 빠르게 대체되어야 하기 때문에 OS에서는 항상 여유있는 만큼 확보하게 됩니다.
 
UNIX가 디스크 캐시용으로 메모리를 이렇듯 많이 사용하는 이유는...
캐시가 사용되지 않으면 RAM이 모두 낭비되기 때문입니다.
캐시를 유지한다는 것은 어떤 프로그램이 같은 데이터를 다시 필요로 하고 있다는 것으로캐시에서 정보를 읽어 들이는 것은 하드 디스크에서 읽어 들이는 것에 비해 약 1000배 이상 빠릅니다.
캐시에서 정보를 가져올 수 없다면하드 디스크에서 읽어 들여야 하기에 그만큼 많은 시간이 소요됩니다. (그러나 정보의 손실은 없습니다.)
 
응용 프로그램을 사용하기 위해 얼마 정도의 여유 메모리가 있는지를 확인하기 위해서는 다음 명령어를 실행하세요.
# free -m
 
-m 옵션은 메가바이트를 의미하며 결과값은 아래와 같습니다:
total used free shared buffers cached
Mem: 503 451 52 0 14 293
-/+ buffers/cache: 143 360
Swap: 1027 0 1027
 
-/+ buffers/cache 라인에는 메모리의 사용량 및 다른 응용 프로그램을 사용하기 위한 여유 공간이 얼마나 되는지를 보여줍니다.
일반적으로 작은 스왑이 사용되면메모리 사용량은 성능에 어떠한 영향을 주지 않습니다.
 
제 시스템에는 512MB의 메모리가 있음에도 단지 503MB만이 사용 가능하다고 나와있습니다.
이것은 커널이 스왑을 할 수 없어서커널이 차지하는 메모리 공간은 절대로 사용될 수 없기 때문입니다.
시스템의 아키텍쳐에 따라서다른 목적을 위해서도 하드웨어에 의해 혹은 하드웨어를 위한 메모리가 점유되어 있는 공간이 있을수도 있습니다.
 
 
2. x86 상의 알 수 없는 880MB 제한
 
기본적으로리눅스 커널은 적은 메모리만으로도 실행할 수 있으며 관리가 가능합니다.
그래서 페이지 테이블 관리가 조금은 용이하게 되고순서대로 메모리로의 접근이 조금 더 빨라지게 됩니다.
단점은 일단 RAM의 총 용량이 880MB에 근접해지면 커널은 모든 메모리를 사용할 수 없게 됩니다.
이것은 지금까지 문제가 되지는 않았지만 데스트톱의 경우 그러한 상황이 발생될 수 있습니다.
 
1GB 이상의 RAM을 모두 사용하려면커널은 재컴파일되어야 합니다.
'make menuconfig' (또는사용하는 어떤 config 파일도 가능)을 열어 다음의 옵션을 설정하세요.
Processor Type and Features ---->
High Memory Support ---->
(X) 4GB
 
이것은 2.4 및 2.6 커널에 적용됩니다.
높은 메모리를 지원한다는 것은 이론적으로 메모리 접근 속도가 다소 느려지게 되는 것이지만, Joseph_sys와 log에 따라서 실제적으로는 차이가 없습니다.
 
 
3. top의 출력에서 VIRT, RES, 그리고 SHR의 차이점
 
VIRT는 하나의 프로세스의 가상 크기 (virtual size of a process)를 의미하는데그 프로세스가 실제로 사용하고 있는 메모리의 총량으로프로세스에 대응되는 메모리 (, X 서버의 비디오 카드 RAM), 프로세스에 대응되는 디스크상의 파일들 (대부분 주로 공유 라이브러리들), 그리고 다른 프로세스와 함께 공유되는 메모리입니다. VIRT는 현재 시점에서 어떤 하나의 프로그램이 접근 가능한 메모리의 크기가 얼마나 되는지를 보여줍니다.
 
RES는 현재 점유하고 있는 메모리 크기 (resident size)를 의미하는데하나의 프로세스가 실제 물리 메모리를 얼만큼 소비하고 있는가는 보여주는 것입니다. ( 이것은 또한 %MEM 열에 직접적으로 대응합니다.) 대부분의 프로그램들이 라이브러리에 의존하기 때문에 RES는 항상 VIRT 크기보다 작습니다.
 
SHR은 얼마 정도의 VIRT 크기 만큼 공유될 수 있는가를 보여줍니다. (메모리 또는 라이브러리라이브러리의 경우에는 모든 라이브러리가 메모리에 들어 있다는 것이 아닙니다예를 들어한 프로그램이 어떤 라이브러리의 아주 적은 함수만을 사용한다면모든 라이브러리는 대응이 되고 VIRT와 SHR에서 라이브러리 수가 측정되지만 단지 사용되고 있는 함수가 포함된 해당 라이브러리 파일의 일부분만 실행되고 RES에 의해 측정될 것입니다.
 
 
4. 버퍼와 캐시의 차이
 
버퍼는 특정 블록 장치와 관련이 있으며 파일시스템의 메타데이터를 캐시에 저장하는것 뿐만 아니라 in-flight 페이지를 추적하는 것 또한 할 수 있습니다그러나 캐시는 캐시에 저장된 파일 데이터만을 유지합니다.
버퍼가 디렉터리에는 무엇이 있는지파일들의 권한들은 어떠한가를 저장하며어떤 메모리가 특정 블록 장치를 위해 기록이 되거나 혹은 읽어 들여지는 가를 추적합니다그러나 캐시는 파일들의 내용 그 자체만을 유지할 뿐입니다.
 
이 부분에 대해 더 정확히 아시는 분은정정 및 부연 설명을 해주시기 바랍니다.
저는 /proc/meminfo가 이러한 결론에 도달하기 위해서 어떻게 처리되는가를 알아보는 것에 근거하여 다소 추측을 포함해 작업하였기 때문입니다.
 
 
5. Swappiness (커널 2.6)
 
2.6 버전 이후로메모리가 꽉 차게 될 때리눅스는 캐시의 크기를 축소하는 것과는 달리얼마의 메모리를 디스크로 스왑해야 하는지를 조율하기 위한 방법이 있었습니다.
 
어떤 하나의 응용 프로그램이 메모리를 필요로 하나 모든 RAM이 사용되고 있을 때커널은 일부 메모리 공간을 확보할 수 있는 두 가지 방법을 가지고 있습니다.
커널은 가장 오래된 데이터를 삭제함으로써 RAM에 있는 디스크 캐시를 줄인다거나상대적으로 덜 사용되는 부분 (페이지)를 디스크의 스왑 파티션 밖으로 스왑할 수도 있습니다.
 
그러나 이 두가지 방법 중 어떤 것이 더 효과적인가는 미리 알 수 없습니다.
커널은 최근의 활동 기록을 바탕으로 주어진 시간에 두 가지 방법 중 효과적인 것을 추측하여 결정을 하게 됩니다.
 
커널 2.6 이전 버전에서는 사용자가 그러한 계산에 영향을 미칠 수 있는 수단이 없었으며 커널이 종종 잘못된 결정을 하게 되어 성능이 저하되고 느려지게 되는 상황이 발생하기도 했습니다. 2.6 버전에 swappiness가 추가됨으로써 이러한 문제를 해결하였습니다.
 
Swapiness는 응용 프로그램을 스왑하고 캐시를 비워두는 것 사이에 균형의 변화를 주기 위해서 0에서 100까지 중 하나의 값을 선택합니다. 100을 선택하면커널은 사용하고 있지 않은 페이지들을 찾아내어 모두 스왑해 버립니다다른 경우에는스왑이 응용 프로그램이 메모리를 얼마나 점유하고 있는지 그리고 얼마나 적은 캐시가 사용하지 않는 것들을 찾아내고 빼내는가에 따라 스왑이 발생할 수도 있고 그렇지 않을 수도 있습니다.
 
기본적으로 swappiness의 값은 60입니다. 0은 메모리가 필요했던 응용 프로그램들이 캐시의 크기를 줄여서 RAM의 아주 작은 부분만 할당되게 할 수 있는 이전의 방식에 가깝게 되게 합니다랩톱의 경우 주로 디스트 회전 속도가 감소하기 때문에 20의 swappiness 값을 권장합니다.
 
sysctl으로, swapiness는 런타임시 다음과 같은 명령어들을 통해 설정될 수 있습니다.
# sysctl -w vm.swappiness=30
# echo 30 >/proc/sys/vm/swappiness
 
: Gentoo boot가 etc/sysctl.conf에서 설정될 때 기본값
# Control how much the kernel should favor swapping out applications (0-100)
vm.swappiness = 30
 
: Asianux Server 3의 기본값
# sysctl -a | grep vm.swappiness
vm.swappiness = 60
 
 
일부 패치셋에서는 커널이 자동적으로 swapiness 레벨을 지정할 수 있게 하여 사용자 설정 값을 유지하지 않을 수도 있습니다.


'서버 이야기 > Linux 이야기' 카테고리의 다른 글

rlogin, rsh 설정  (0) 2013.10.07
리눅스 history에 시간남기기  (0) 2013.01.23
rcp 서버 설정하기.  (0) 2012.10.24
리눅스 시간 동기화  (0) 2012.09.05
No space left on device  (0) 2012.06.28
Posted by 서오석
,

출처 : http://trouble.tistory.com/entry/bash-history%EC%97%90-%EC%8B%9C%EA%B0%84-%EB%82%A8%EA%B8%B0%EA%B8%B0


History 명령어


특수문자

의미

!

History 기능을 시작하기 위한 특수문자

!n

n번째로 사용된 명령어 실행

!-n

현재부터 n번째 앞에 사용된 명령 실행

!!

바로 전에 실행되었던 명령 실행(!-1)

!string

가장 최근에 string를 포함하고 있는 명령 실행

!?string[?]

가장 최근에 string을 포함하고 있는 명령 실행

^aa^bb

마지막으로 실행된 명령어에서 aa를 bb로 치환하여 명령 실핼, !!:s/aa/bb와 같음

!*

마지막으로 실행된 명령에 사용된 모든 argument

!$ 또는 !!$

마지막 명령의 마지막 argument

!^

마지막 명령의 첫 argument

Event:s^aa^bb

Event는 앞에서 !로 시작하는 history 명령. Aa를 bb로 치환, ^ 대신 다른 특수문자를 사용하여도 됨. Ex) !23:s/aa/bb

!:n 또는 !!:n

마지막 명령의 n번째 argument

!:n*

마지막 명령의 b번째부터 그 이후의 argument(!:n-$와 같은 의미)

!:0

마지막 명령의 명령어만 나타냄

!:n-m

마지막 명령의 n번째부터 M번째 까지의 argument

!;n-

마지막 명령의 n번째부터 마지막 argument를 제외한 argument

!?string?%

가장 최근에 string을 포함하고 있는 단어를 나타냄


위의 명령어를 command line나 bash script에서 사용하여 history 기능을 사용할 수 있다.

modifler를 이용하여 hostiry에 저장된 명령어의 내용을 변환 시킬수도 있다.

$ Tip : 쉘 명령 실행 시간을 .bash_history 에 기록하기
vi /etc/profile

[root@Linux ~]# vi /etc/profile
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S\ "
export HISTTIMEFORMAT

라인을 추가하게되면, 로그인한 계정의 .bash_histroy 파일에
해당 명령의 실행 시간이 함께 찍히게 된다.

확인은 history 명령을 입력하게 되면,
[root@Linux ~]# history
2623  2006-10-17_13:48:06\ /etc/init.d/apache restart
2624  2006-10-17_13:48:06\ vi vhost_nehome.net


이런식으로, 라인 번호 다음에 해당 명령의 실행 시간이 표기된다.

'서버 이야기 > Linux 이야기' 카테고리의 다른 글

rlogin, rsh 설정  (0) 2013.10.07
리눅스 메모리 관리, 왜 메모리 여유공간이 없을까?  (0) 2013.08.14
rcp 서버 설정하기.  (0) 2012.10.24
리눅스 시간 동기화  (0) 2012.09.05
No space left on device  (0) 2012.06.28
Posted by 서오석
,

원본글 바로가기


tomcat6를 처음 설치하면(압축풀면)  webapps 폴더 안에 웹페이지에서 디플로이를 관리할 수 있는

host-manager, manager 등이 디폴트로 설치되어 있다. 하지만 이것은 보안적인 측면에서 위배되므로

보통 다 지우는 게 좋다.

하지만 이것을 그냥 지우게 되면

Error Message

심각: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/msp_solution/web/tomcat/webapps/host-manager does not exist or is not a readable directory

이와 같은 에러를 만나게 된다.

Solution

conf\Catalina\localhost 밑에 context명.xml으로 생성하면, tomcat은 \webapps\context를 docBase 경로로 판단하고 찾는다. 그래서 서버 구동시 위와 같은 에러를 발생시킨다.
아래 xml들을 찾아서 삭제해주면 에러는 발생하지 않는다.

conf\Catalina\localhost\host-manager.xml
conf\Catalina\localhost\manager.xml

Posted by 서오석
,


1.1.1.1 -> 2.2.2.2 로 rcp를 쓰고 싶은 경우..


  1. 2.2.2.2 서버 로그인
  2. /etc/hosts.allow 파일에 rsh.d , rlogin.d 에 1.1.1.1 주소 추가
  3. 로그인 없이 사용하기 위해서는 /etc/hosts.equiv 파일에 1.1.1.1 {계정} 추가 
  4. /etc/xinetd.d 아래 rlogin, rsh 파일에서 disable = no 로 설정 
  5. /etc/init.d/xinetd restart 


Posted by 서오석
,

리눅스에서 date  명령어로 시간을 치면 가끔 다른 시간이 나오는데 이걸 동기화 하는 방법이다.

 

권한은 root에서 가능하다.

 

]$ rdate -s time.bora.net && hwclock -w

 

'서버 이야기 > Linux 이야기' 카테고리의 다른 글

리눅스 history에 시간남기기  (0) 2013.01.23
rcp 서버 설정하기.  (0) 2012.10.24
No space left on device  (0) 2012.06.28
Date 명령어 사용  (0) 2011.02.16
VI에서 인코딩 변환해서 보기  (0) 2010.12.02
Posted by 서오석
,

디스크 용량이 어느정도 있는데도 불구하고 No space left on device 가 뜰 때가 있다.

 

이때는 i-node에 용량이 남아있는지 확인하기 위하여 df -i로 확인을 해야한다.

 

원인은  spool에 뭔가가 많아서 그런 것인데 해당 내용을 지우면 해결된다.

 

/var/spool/mqueue

/var/spool/clientmqueue

 

여기 안에 있는 내용을 지우자.

 

find . -ctime +0 -exec rm -f {} \;

 

 

'서버 이야기 > Linux 이야기' 카테고리의 다른 글

rcp 서버 설정하기.  (0) 2012.10.24
리눅스 시간 동기화  (0) 2012.09.05
Date 명령어 사용  (0) 2011.02.16
VI에서 인코딩 변환해서 보기  (0) 2010.12.02
Linux screen 사용하기  (0) 2010.11.30
Posted by 서오석
,
스크립트로 데이터를 뽑아내고 나서 이를 파일로 저장한 후에 메일로 보내고 싶을 때가 있다.

그래서 간단한 메시지와 함께 메일에 파일을 첨부해서 보내는 모듈을 소개한다.

모듈명은 Multpart 이다.

인스톨 방법은 다음과 같다. 

[root@xxx /xxx/perlprogram/Net-SMTP-Multipart-1.6] perl Makefile.PL
WARNING: HTMLLIBPODS is not a known parameter.
Checking if your kit is complete...
Looks good
'HTMLLIBPODS' is not a known MakeMaker parameter name.
Writing Makefile for Net::SMTP::Multipart
[root@xxx /xxx/perlprogram/Net-SMTP-Multipart-1.6] make
pod2text Multipart.pm >README
pod2html Multipart.pm >Multipart.html
/usr/bin/pod2html: no title for Multipart.pm.
cp Multipart.pm blib/lib/Net/SMTP/Multipart.pm
Manifying blib/man3/Net::SMTP::Multipart.3
[root@xxx /xxx/perlprogram/Net-SMTP-Multipart-1.6] make install
Installing /usr/lib/perl5/site_perl/5.8.5/Net/SMTP/Multipart.pm
Installing /usr/share/man/man3/Net::SMTP::Multipart.3
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod
[root@biz-anal /daum/perlprogram/Net-SMTP-Multipart-1.6]
 
인스톨을 했으니 이제 메일을 보내면서 파일을 전송해보자.
        my $to = $_[0];         #받는 사람
        my $from = $_[1];       #보내는 사람
        my $subject = $_[2];    #제목
        my $text =$_[3];        #내용
        my $file = $_[4];       #첨부파일 (파일위치와 파일명까지 써줘야함)

        my $smtp = Net::SMTP::Multipart->new('127.0.0.1'); #<- SMTP 서버 
        $smtp->Header(To   => $to,
                Subj => $subject,
                From => $from);
  $smtp->Text($text);
  $smtp->FileAttach($file);
  $smtp->End();
소스는 위와 같다.

이제 간단한 프로그램을 짜서 메일로 잘 오는지 테스트 해보면 된다.

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Term-ReadPassword를 이용해서 입력값을 숨김으로 받는 법  (0) 2011.04.15
PERL FTP 파일 다운로드  (0) 2010.11.18
PERL Error Handling  (0) 2010.11.18
PERL Subrountines  (0) 2010.11.18
PERL Regular Expressions  (0) 2010.11.18
Posted by 서오석
,
가끔 Perl에서 입력값을 숨기고 싶을 때가 이다.
예를 들어 DB에 access하려고 하는 스크립트를 만든다고 했을 때 스크립트에 id나 PW를 박아서 연결하거나 간단한 scanf 를 통해  값을 입력받는다.

근데 그렇게 하면 PW가 공개될 우려가 있기 때문에 이를 막아주기 위하여 IO-Prompt를 사용하여 마치 리눅스 로그인하듯이 입력값을 가릴 수 있게 할 수 있다.
===========================================================================
본시스템은 허가된 사용자만 이용하실수 있습니다.
부당한 방법으로 전산망에 접속하거나 정보를 삭제/변경/유출하는
사용자는 관련법령에 따라 처벌 받게 됩니다

This is a private computer facility.
Access for any reason must be specifically authorized by the manager.
Unless you are so authorized, your continued access and any other use may
expose you to criminaland or civil proceedings
=========================================================================== 
login: 5dolstory
Password:  

리눅스에 로그인하게 될 때 Password를 치게 되면 이 때 Password 입력값은 먹지만 실제로 화면에 보여주지는 않는다.

이걸 할 수 있는 녀석이Term-ReadPassword이다.

우선 다운받아 리눅스에 인스톨을 하자.


[root@xxxx /xxxx/perlprogram/Term-ReadPassword-0.11] perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Term::ReadPassword
[root@xxxx /xxxx/perlprogram/Term-ReadPassword-0.11] make
cp ReadPassword.pm blib/lib/Term/ReadPassword.pm
Manifying blib/man3/Term::ReadPassword.3pm
[root@xxxx /xxxx/perlprogram/Term-ReadPassword-0.11] make install
Installing /usr/lib/perl5/site_perl/5.8.5/Term/ReadPassword.pm
Installing /usr/share/man/man3/Term::ReadPassword.3pm
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod
[root@xxxx /xxxx/perlprogram/Term-ReadPassword-0.11]


저렇게 하면 모듈이 인스톨 된 것인다.

소스를 짜는 건 단순하다. 

#!/usr/bin/perl
use Term::ReadPassword;

print "input pw :";
$pw = read_password($_[0]);
print $pw; 


저렇게 짜고 실행을 시키면 이런 결과가 나온다.
 /.pw.pl
input pw :
aaaa 

즉 input pw : aaaa
aaaa
이렇게 출력되지 않는다는 것이다.


모듈 설명서 링크 : http://search.cpan.org/~phoenix/Term-ReadPassword-0.11/ReadPassword.pm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl로 메일보낼 때 파일 첨부하기  (0) 2011.04.15
PERL FTP 파일 다운로드  (0) 2010.11.18
PERL Error Handling  (0) 2010.11.18
PERL Subrountines  (0) 2010.11.18
PERL Regular Expressions  (0) 2010.11.18
Posted by 서오석
,
현재 일시
> date
Fri Nov 27 11:07:02 KST 2009


일분 전
 > date -d -1minutes
Fri Nov 27 11:09:28 KST 2009

한시간 전
date -d +1hours
Fri Nov 27 12:10:03 KST 2009


하루 전
> date -d -1days
Thu Nov 26 11:09:32 KST 2009
 

한달 전
> date -d -1months
Tue Oct 27 11:08:18 KST 2009


일년 후
> date -d +1years
Sat Nov 27 11:09:01 KST 2010
 


일자 포멧 변경
 > date '+%Y/%m/%d %H:%M:%S'
2011/02/16 13:47:05


Date --help
Usage: date [OPTION]... [+FORMAT]
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.

  -d, --date=STRING         display time described by STRING, not `now'
  -f, --file=DATEFILE       like --date once for each line of DATEFILE
  -ITIMESPEC, --iso-8601[=TIMESPEC]  output date/time in ISO 8601 format.
                            TIMESPEC=`date' for date only,
                            `hours', `minutes', or `seconds' for date and
                            time to the indicated precision.
                            --iso-8601 without TIMESPEC defaults to `date'.
  -r, --reference=FILE      display the last modification time of FILE
  -R, --rfc-2822            output RFC-2822 compliant date string
  -s, --set=STRING          set time described by STRING
  -u, --utc, --universal    print or set Coordinated Universal Time
      --help     이 도움말을 표시하고 끝냅니다
      --version  버전 정보를 출력하고 끝냅니다

FORMAT controls the output.  The only valid option for the second form
specifies Coordinated Universal Time.  Interpreted sequences are:

  %%   a literal %
  %a   locale's abbreviated weekday name (Sun..Sat)
  %A   locale's full weekday name, variable length (Sunday..Saturday)
  %b   locale's abbreviated month name (Jan..Dec)
  %B   locale's full month name, variable length (January..December)
  %c   locale's date and time (Sat Nov 04 12:02:33 EST 1989)
  %C   century (year divided by 100 and truncated to an integer) [00-99]
  %d   day of month (01..31)
  %D   date (mm/dd/yy)
  %e   day of month, blank padded ( 1..31)
  %F   same as %Y-%m-%d
  %g   the 2-digit year corresponding to the %V week number
  %G   the 4-digit year corresponding to the %V week number
  %h   same as %b
  %H   hour (00..23)
  %I   hour (01..12)
  %j   day of year (001..366)
  %k   hour ( 0..23)
  %l   hour ( 1..12)
  %m   month (01..12)
  %M   minute (00..59)
  %n   a newline
  %N   nanoseconds (000000000..999999999)
  %p   locale's upper case AM or PM indicator (blank in many locales)
  %P   locale's lower case am or pm indicator (blank in many locales)
  %r   time, 12-hour (hh:mm:ss [AP]M)
  %R   time, 24-hour (hh:mm)
  %s   seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
  %S   second (00..60); the 60 is necessary to accommodate a leap second
  %t   a horizontal tab
  %T   time, 24-hour (hh:mm:ss)
  %u   day of week (1..7);  1 represents Monday
  %U   week number of year with Sunday as first day of week (00..53)
  %V   week number of year with Monday as first day of week (01..53)
  %w   day of week (0..6);  0 represents Sunday
  %W   week number of year with Monday as first day of week (00..53)
  %x   locale's date representation (mm/dd/yy)
  %X   locale's time representation (%H:%M:%S)
  %y   last two digits of year (00..99)
  %Y   year (1970...)
  %z   RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
  %Z   time zone (e.g., EDT), or nothing if no time zone is determinable

By default, date pads numeric fields with zeroes.  GNU date recognizes
the following modifiers between `%' and a numeric directive.

  `-' (hyphen) do not pad the field
  `_' (underscore) pad the field with spaces




'서버 이야기 > Linux 이야기' 카테고리의 다른 글

리눅스 시간 동기화  (0) 2012.09.05
No space left on device  (0) 2012.06.28
VI에서 인코딩 변환해서 보기  (0) 2010.12.02
Linux screen 사용하기  (0) 2010.11.30
리눅스에서 FTP로 사용하기  (0) 2010.02.18
Posted by 서오석
,
VI에서 파일 인코딩을 변환하여 저장하거나 불러오려면 다음의 명령을 이용한다.

인코딩을 변환하여 불러오기.
:e ++enc=euc-kr

그리고 아래 명령으로 인코딩을 변환한 다음 저장한다.
:set fileencoding=utf-8

'서버 이야기 > Linux 이야기' 카테고리의 다른 글

No space left on device  (0) 2012.06.28
Date 명령어 사용  (0) 2011.02.16
Linux screen 사용하기  (0) 2010.11.30
리눅스에서 FTP로 사용하기  (0) 2010.02.18
vmstat 항목 설정 보기  (0) 2010.02.02
Posted by 서오석
,
예전에 screen + vim 조합으로 열심히 써서 손에 익었던 것도 잠시.. 몇 년이 지나고 나니 어느새 다 잊어버렸다.
screen 을 이용하면 vim 에서 창을 나누지 않고 여러 화면을 전환하면서 쓸 수도 있고, 새로운 파일 들을 열어서 볼 때도 매우 편리하다.  또한, 원격지에서 접속 후 일을 하다가 중간에 작업은 진행시켜 둔 채로 접속을 끊고, 다른 곳에서 접속하여 하던 작업을 이어서 할 수 있다는 장점(이게 난 가장 좋다!)도 있다.
사용법을 찾아보니 이 곳이 정리가 너무 잘되어 있다.

내가 자주 사용하거나 유용한 몇 가지만 요약하여 정리하면 다음과 같다.

1. screen 생성시
$ screen -S <세션명>
또는 그냥
$ screen

2. 어떤 screen 이 있는지 보고 싶을 때
$ screen -list

3. 이전에 생성한 screen으로 돌아가고 싶을 때
$ screen -r [세션명]

4. 작업 중 새로운 screen 생성
Ctrl + a, c

5. 현재 screen 의 Title 명 변경
Ctrl + a, A

6. 작업 중 다른 screen으로 옮기고 싶을 때
6.1. 바로 이전에 사용하던 screen
Ctrl + a, a
6.2. screen 번호와 Title 보고 이동(5 항목과 함께 이용하면 편리하다)
Ctrl + a, " (화살표 키 이동 후 엔터)
6.3. 번호 창으로 이동
Ctrl + a, [0-9]
6.4. 다음 screen
Ctrl + a, n
6.5. 이전 screen
Ctrl + a, p

7. screen 을 잠깐 사용 중인 상태로 떼어놓고(detach) 싶을 때
Ctrl + a, d

8. screen 세션을 kill하고 싶을 때
screen -X kill

'서버 이야기 > Linux 이야기' 카테고리의 다른 글

Date 명령어 사용  (0) 2011.02.16
VI에서 인코딩 변환해서 보기  (0) 2010.12.02
리눅스에서 FTP로 사용하기  (0) 2010.02.18
vmstat 항목 설정 보기  (0) 2010.02.02
Crontab 설정 하기  (0) 2010.02.02
Posted by 서오석
,
#! /usr/local/bin/perl
use strict;
use IO::File;
use Net::FTP;

my @CHECK = ("1log.gz"
            ,"2log.gz"
);

if(@CHECK){
        my $FTP = Net::FTP->new("192.168.0.1", Debug => 0) or die "Cannot connect to 192.168.0.1: $@";
        $FTP->login("hanadmin","여기엔PW를 넣습니다.") or die "Can not login \n", $FTP->message;
        my $loc = "/data01/";
        foreach my $j (0..$#CHECK){
        chomp $CHECK[$j];
        my $file = $CHECK[$j];

        $FTP->cwd($loc) or die "Cannot change working directory ", $FTP->message;
        $FTP->binary;
        $FTP->get($file,"/daum/logs/".$file) or die "$file", $FTP->message;

        }
        $FTP->quit;
}
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_error_handeling.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Term-ReadPassword를 이용해서 입력값을 숨김으로 받는 법  (0) 2011.04.15
PERL FTP 파일 다운로드  (0) 2010.11.18
PERL Subrountines  (0) 2010.11.18
PERL Regular Expressions  (0) 2010.11.18
PERL Files & I/O  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_subroutines.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

PERL FTP 파일 다운로드  (0) 2010.11.18
PERL Error Handling  (0) 2010.11.18
PERL Regular Expressions  (0) 2010.11.18
PERL Files & I/O  (0) 2010.11.18
Perl Built-in Operators  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_regular_expression.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

PERL Error Handling  (0) 2010.11.18
PERL Subrountines  (0) 2010.11.18
PERL Files & I/O  (0) 2010.11.18
Perl Built-in Operators  (0) 2010.11.18
Perl Loops  (0) 2010.11.18
Posted by 서오석
,

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

PERL Subrountines  (0) 2010.11.18
PERL Regular Expressions  (0) 2010.11.18
Perl Built-in Operators  (0) 2010.11.18
Perl Loops  (0) 2010.11.18
Perl Conditional Statements  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_operators.htm

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

PERL Regular Expressions  (0) 2010.11.18
PERL Files & I/O  (0) 2010.11.18
Perl Loops  (0) 2010.11.18
Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_loops.htm

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

PERL Files & I/O  (0) 2010.11.18
Perl Built-in Operators  (0) 2010.11.18
Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_conditions.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Built-in Operators  (0) 2010.11.18
Perl Loops  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Perl Array Variable  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_special_variables.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Loops  (0) 2010.11.18
Perl Conditional Statements  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Perl Array Variable  (0) 2010.11.18
Perl Scalar Variable  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_hashes.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Array Variable  (0) 2010.11.18
Perl Scalar Variable  (0) 2010.11.18
Perl Variable Types  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_arrays.htm


'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Perl Scalar Variable  (0) 2010.11.18
Perl Variable Types  (0) 2010.11.18
Posted by 서오석
,
출처 : http://www.tutorialspoint.com/perl/perl_scalars.htm

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Perl Array Variable  (0) 2010.11.18
Perl Variable Types  (0) 2010.11.18
Posted by 서오석
,

'서버 이야기 > Perl 이야기' 카테고리의 다른 글

Perl Conditional Statements  (0) 2010.11.18
Perl Special Variables  (0) 2010.11.18
Perl Hash Variable  (0) 2010.11.18
Perl Array Variable  (0) 2010.11.18
Perl Scalar Variable  (0) 2010.11.18
Posted by 서오석
,