개발/Linux/Server (19)
nginx 로그 로테이트

nginx 로그를 로테이트 하고 싶을때 os의 log rotate 모듈을 많이 사용하지만

시간별로 남기는 기능을 지원하지 않는다.


nginx 설정만으로 하려면 다음과 같이 설정한다.


nginx.conf

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") {

set $year $1;

set $month $2;

set $day $3;

set $hour $4;

set $minutes $5;

set $seconds $6;

}


access_log  logs/access_${year}-${month}-${day}_${hour}.log  main;


'개발 > Linux/Server' 카테고리의 다른 글

nginx 로그 로테이트  (0) 2019.01.11
대용량 더미파일 생성 방법  (0) 2018.12.27
쉘 이용해서 자동 로그인하기  (0) 2014.09.17
vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
0  Comments,   0  Trackbacks
댓글 쓰기
대용량 더미파일 생성 방법

압축 테스트 등을 위해 대용량 더미파일을 생성해야 하는 경우가 종종 생깁니다

간단하게 용량을 지정해서 더미파일을 생성하는 방법입니다


$ head -c 1M /dev/urandom > 1m.txt

$ head -c 1G /dev/urandom | gzip -9 > 1g.txt



'개발 > Linux/Server' 카테고리의 다른 글

nginx 로그 로테이트  (0) 2019.01.11
대용량 더미파일 생성 방법  (0) 2018.12.27
쉘 이용해서 자동 로그인하기  (0) 2014.09.17
vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
0  Comments,   0  Trackbacks
댓글 쓰기
쉘 이용해서 자동 로그인하기

아래와 같은 쉘을 만들어서 실행해준다.

#!/usr/bin/expect -f
spawn ssh 111.111.111.111
expect "assword:"
send "thisispassword\r"
interact

'개발 > Linux/Server' 카테고리의 다른 글

nginx 로그 로테이트  (0) 2019.01.11
대용량 더미파일 생성 방법  (0) 2018.12.27
쉘 이용해서 자동 로그인하기  (0) 2014.09.17
vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
0  Comments,   0  Trackbacks
댓글 쓰기
vmstat 파일에 쓰기

시스템 자원, CPU, 메모리 등을 파일로 기록하고 싶을때 사용한다.


아래와 같이 쓰면 된다. 1초마다로 설정해놨으니 숫자 바꾸면 된다.


$ vmstat 1 | xargs -I{} date '+%F %T {}'


결과는 아래처럼...

2014-08-25 14:57:10 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

2014-08-25 14:57:10 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

2014-08-25 14:57:10 3  0  62624 134236  19884 4171812    0    0     0     0 10433 10042 42 22 36  0  0

2014-08-25 14:57:11 4  0  62624 132384  19892 4173124    0    0     0    60 7839 7459 38 10 52  0  0


당연한거지만 파일에 쓸경우 아래처럼..

$ vmstat 1 | xargs -I{} date '+%F %T {}' >> vmstat.log


콘솔 닫아도 적용되게 할려면 아래처럼 하자.

죽일 때는 kill을 이용하자

$ nohup vmstat 1 | xargs -I{} date '+%F %T {}' >> vmstat_log.txt &

[1] 5690

nohup: ignoring input and redirecting stderr to stdout

$ kill -9 5690

'개발 > Linux/Server' 카테고리의 다른 글

대용량 더미파일 생성 방법  (0) 2018.12.27
쉘 이용해서 자동 로그인하기  (0) 2014.09.17
vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
서버 공인 및 사설 IP 확인  (0) 2013.08.21
0  Comments,   0  Trackbacks
댓글 쓰기
shell 색상 입히기

vi .bashrc


아래 항목 중 골라서 추가한다


개발(녹색)

export PS1='\033[1;101m[DEV]\033[0m\u@\033[1;34m\h:\033[1;35m\w\033[1;31m\$\033[0m '


상용(붉은색)

export PS1='\033[1;102m[REAL]\033[0m\u@\033[1;34m\h:\033[1;35m\w\033[1;31m\$\033[0m '


적용은 재접속을 하거나 아래와 같이 적용

source .bashrc


색상 참고는 여기

http://cyj4369.tistory.com/m/post/view/id/113

'개발 > Linux/Server' 카테고리의 다른 글

쉘 이용해서 자동 로그인하기  (0) 2014.09.17
vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
서버 공인 및 사설 IP 확인  (0) 2013.08.21
방화벽 설정(iptables)  (0) 2013.06.19
0  Comments,   0  Trackbacks
댓글 쓰기
마지막으로 수정된 파일 tail 걸기

.bash_profile 에 등록해놓으면 되겠다


alias tt='ll -lrt | grep ^- | head -1 | awk '"'"'{print $9}'"'"' | xargs tail -f'

 

tt 입력 시 마지막으로 수정된 파일 tail건다


설명

ll -lrt (시간 역순 정렬)

grep ^- (-로 시작하는 항목 grep, 폴더는 ^d로 걸린다)

awk '"'"'{print $9}'"'"' 항목 중 9번째 항목을 가져온다.  OS별로 숫자는 다를 수 있다

xargs tail -f 태일 건다



.bash_profile 수정후 재접속 혹은

source .bash_profile을 통해 적용


그냥 명령어로 칠려면 다음처럼 심플하게(순서 

ls -lt | grep ^- | head -1 | awk '{print $8}' | xargs tail -f

'개발 > Linux/Server' 카테고리의 다른 글

vmstat 파일에 쓰기  (0) 2014.08.25
shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
서버 공인 및 사설 IP 확인  (0) 2013.08.21
방화벽 설정(iptables)  (0) 2013.06.19
SVN 서버 설치하기(Cent OS)  (0) 2013.05.14
0  Comments,   0  Trackbacks
댓글 쓰기
서버 공인 및 사설 IP 확인

1. ifconfig를 이용한 평범한 방법

> ipconfig

eth0      Link encap:Ethernet  HWaddr D8:D3:85:E1:1A:E0  
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.192
          inet6 addr: fe80::dad3:85ff:fee1:1ae0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10823500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7472760 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1547256320 (1.4 GiB)  TX bytes:7501446783 (6.9 GiB)
          Interrupt:162 Memory:f4000000-f4012800 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:14220694 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14220694 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2515746329 (2.3 GiB)  TX bytes:2515746329 (2.3 GiB)


2. netstat를 이용한 방법(HP계열에서만 되는듯?)

> netstat -ni

Name      Mtu  Network         Address         Ipkts   Ierrs Opkts   Oerrs Coll

lo0       4136 127.0.0.0       127.0.0.1       409856012 0     409856012 0     0  

lan4      1500 xxx.xxx.xxx.xxx    xxx.xxx.xxx.xxx  2620308736 0  2487146066 0   0 


3. 번외로 꼼수를 이용

정확히는 서버쪽에서 나가는 IP 확인이 가능하다

what's my ip를 콘솔로 찍은것뿐?

> wget http://ipecho.net/plain -O - -q ; echo




'개발 > Linux/Server' 카테고리의 다른 글

shell 색상 입히기  (0) 2013.11.28
마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
서버 공인 및 사설 IP 확인  (0) 2013.08.21
방화벽 설정(iptables)  (0) 2013.06.19
SVN 서버 설치하기(Cent OS)  (0) 2013.05.14
각 폴더명 크기 보기  (0) 2013.04.23
0  Comments,   0  Trackbacks
댓글 쓰기
방화벽 설정(iptables)

1. service iptables stop

2. vi /etc/sysconfig/iptables

3. service iptables save

4. service iptables start

5. service iptables status


위 순서대로 서비스를 종료 시키고 수정하고 저장하고 상태 확인이 끝이다.

파일 샘플은 아래 참조

#Firewall configuration written by system-config-securitylevel

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12082 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12084 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2082 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 40160 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2401 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited


'개발 > Linux/Server' 카테고리의 다른 글

마지막으로 수정된 파일 tail 걸기  (0) 2013.11.13
서버 공인 및 사설 IP 확인  (0) 2013.08.21
방화벽 설정(iptables)  (0) 2013.06.19
SVN 서버 설치하기(Cent OS)  (0) 2013.05.14
각 폴더명 크기 보기  (0) 2013.04.23
tomcat 재기동 스크립트  (0) 2013.03.20
0  Comments,   0  Trackbacks
댓글 쓰기
SVN 서버 설치하기(Cent OS)

OS 확인

[root@donnert ~]# cat /etc/*-release
CentOS release 5.5 (Final)


설치

[root@donnert ~]# yum install subversion
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: data.nicehosting.co.kr
 * base: data.nicehosting.co.kr
 * extras: data.nicehosting.co.kr
 * updates: data.nicehosting.co.kr
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i386 0:1.6.11-11.el5_9 set to be updated
---> Package subversion.x86_64 0:1.6.11-11.el5_9 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved
================================================================================  Package           Arch          Version                   Repository      Size ================================================================================ Updating:  subversion        i386          1.6.11-11.el5_9           updates        3.1 M  subversion        x86_64        1.6.11-11.el5_9           updates        3.2 M
Transaction Summary ================================================================================ Install       0 Package(s) Upgrade       2 Package(s)
Total download size: 6.4 M Is this ok [y/N]: y Downloading Packages: (1/2): subversion-1.6.11-11.el5_9.i386.rpm               | 3.1 MB     00:21      (2/2): subversion-1.6.11-11.el5_9.x86_64.rpm             | 3.2 MB     00:14      -------------------------------------------------------------------------------- Total                                           181 kB/s | 6.4 MB     00:36      Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction   Updating       : subversion                                               1/4    Updating       : subversion                                               2/4    Cleanup        : subversion                                               3/4    Cleanup        : subversion                                               4/4 
Updated:   subversion.i386 0:1.6.11-11.el5_9     subversion.x86_64 0:1.6.11-11.el5_9    
Complete!


SVN 계정 생성(root로 관리할 경우 패스)

[root@donnert ~]# adduser svn
[root@donnert ~]# passwd svn
Changing password for user svn.
New UNIX password: 
BAD PASSWORD: it is WAY too short
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.


저장소 생성 및 권한 변경

[root@donnert ~]# svnadmin create --fs-type fsfs /home/svn/repos
[root@donnert ~]# chown -R svn:svn /home/svn/repos
[root@donnert ~]# ll /home/svn/repos
합계 48
-rw-r--r-- 1 svn svn  229  5월 14 13:53 README.txt
drwxr-xr-x 2 svn svn 4096  5월 14 13:53 conf
drwxr-sr-x 6 svn svn 4096  5월 14 13:53 db
-r--r--r-- 1 svn svn    2  5월 14 13:53 format
drwxr-xr-x 2 svn svn 4096  5월 14 13:53 hooks
drwxr-xr-x 2 svn svn 4096  5월 14 13:53 locks


설정 변경(이후부터는 svn 계정)

[root@donnert ~]# su - svn
[svn@donnert ~]$ cd repos/conf
[svn@donnert ~]$ vi passwd
아이디=비밀번호 

[svn@donnert ~]$ vi authz
[repos:/]
아이디= rw

[svn@donnert ~]$ vi svnserve.conf (주석을 지워줘야 한다)
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz


기동 및 확인

[svn@donnert conf]$ svnserve -d -r /home/svn
[svn@donnert conf]$ ps -ef | grep svnserve | grep -v grep
svn       7375     1  0 13:57 ?        00:00:00 svnserve -d -r /home/svn
[svn@donnert conf]$ netstat -an | grep 3690
tcp        0      0 :::3690                     :::*                        LISTEN      


중지 및 확인

[svn@donnert conf]$ killall svnserve
[svn@donnert conf]$  ps -ef | grep svnserve | grep -v grep
[svn@donnert conf]$ netstat -an | grep 3690


추가 폴더 생성(trunk, branches, tag)

의미는 http://cranix.net/302 에서 확인하기 바란다.. 안만들어도 크게 상관없는듯

인증 실패가 생길 경우 --username=xxx 추가해서 인증받기 바란다

[svn@donnert conf]$ svn mkdir svn://localhost/repos/trunk
svn: 로그 메시지를 구하기 위해 외부 프로그램을 사용할 수 없습니다. SVN_EDITOR 환경변수를 설정하시거나 --message (-m) 또는 --file (-F) 옵션을 사용하세요.
svn: 환경변수 SVN_EDITOR, VISUAL, EDITOR 중 하나는 설정하거나, 'editor-cmd' 를 구성화일에 명시해야합니다.

나올경우 아래 추가 후 재실행(나머지2개 폴더도 만들어주자)

[svn@donnert conf]$ SVN_EDITOR=/usr/bin/vim 
[svn@donnert conf]$ export SVN_EDITOR 
[svn@donnert conf]$ svn mkdir svn://localhost/project/trunk

저장 후 C 선택 Store password unencrypted (yes/no)? yes Please type 'yes' or 'no': 예     
[svn@donnert conf]$ svn list svn://localhost/repos trunk/


젠장 하다하다 안되서 확인해보니 방화벽 문제였다는... 


추가 

부팅시 자동 등록되게 할려면

root로 접속 -> vi /etc/rc.d/rc.local

아래 줄을 추가해준다(svn계정으로 실행)

su -c 'svnserve -d -r /home/svn' svn


'개발 > Linux/Server' 카테고리의 다른 글

서버 공인 및 사설 IP 확인  (0) 2013.08.21
방화벽 설정(iptables)  (0) 2013.06.19
SVN 서버 설치하기(Cent OS)  (0) 2013.05.14
각 폴더명 크기 보기  (0) 2013.04.23
tomcat 재기동 스크립트  (0) 2013.03.20
telnet 이용해서 서버 감시 로그 찍기  (0) 2012.12.17
0  Comments,   0  Trackbacks
댓글 쓰기
각 폴더명 크기 보기

아래의 명령어 입력 시 폴더별 크기가 출력된다.

$8의 경우 ll 실행시 나오는 순서이다.  8번째가 파일명이니 8을 적어준다

OS마다 다를 수 있으니 붉은 부분을 체크해보자


$ ll | grep ^d | awk '{print $8}' | xargs du -sk

30764   app


$ ll

합계 227836

drwxrwxr-x   4 test test      4096 2013-04-22 11:01 app

1                 2  3    4           5        6             7     8


'개발 > Linux/Server' 카테고리의 다른 글

방화벽 설정(iptables)  (0) 2013.06.19
SVN 서버 설치하기(Cent OS)  (0) 2013.05.14
각 폴더명 크기 보기  (0) 2013.04.23
tomcat 재기동 스크립트  (0) 2013.03.20
telnet 이용해서 서버 감시 로그 찍기  (0) 2012.12.17
폴더별로 크기 보기  (0) 2012.12.17
0  Comments,   0  Trackbacks
댓글 쓰기