특정용량 이상 파일 찾아 지우기

秋 - Tip 2003.10.15 18:27 Posted by 민수아빠™
찾기

$ find    /    -size    +20480

찾아 지우기

$ find    /    -size    +20480    -exec   rm    {}   \;  

(1 block = 512 byte  ---> 2 block = 1024 byte = 1kbyte  ---> 2048 block = 1Mbyte)


출처 : http://network.hanyang.ac.kr/data/fundamentals.htm
신고

과서버 하드디스크 이전하기

秋 - Tip 2003.08.22 10:28 Posted by 민수아빠™
기존에 arch, may가 서로 같이 학과서버로 활용되었다. 이번에 may의 하드가 날아가서 may를 일단 죽이고 arch로 통합하는 과정이 있었다.

먼저 primary의 slave로 장착한다고 가정한다.

1. 하드디스크를 primary slave에 장착하고 부팅한다.

2. fdisk를 실행한다. hda, hdb, hdc, hdd 중 primary slave 는 hdb이다.
[root@arch root]# fdisk /dev/hdb

The number of cylinders for this disk is set to 3737.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p


3. 하드디시크가 여러개로 나눠져 있다.
Command (m for help): p

Disk /dev/hdb: 255 heads, 63 sectors, 3737 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1   *         1       383   3076416   83  Linux
/dev/hdb2           384      3737  26941005    5  Extended
/dev/hdb5           384       416    265041   82  Linux swap
/dev/hdb6           417      3737  26675901   83  Linux

Command (m for help): q

[root@arch root]#


이중에 데이타가 있는곳이 hdb1, hdb2 이다.

4. 마운트 하기.
[root@arch root]# mkdir /oldarchi
[root@arch root]# mkdir /oldarchi/hdb1
[root@arch root]# mount /dev/hdb1/  /oldarchi/hdb1
[root@arch root]# cd /oldarchi/hdb1


신고

tar 압축하고 풀기

秋 - Tip 2003.08.18 15:45 Posted by 민수아빠™

이상하네 그거 좀 요즘 안했다고 다 까먹었네요..

1 tar아카이브(여러 파일을 한 파일로 묶은 것)을 생성하고 푼다.
아카이브의 확장자는 .tar 이다.

tar 는 실행시 반드시 옵션이 있어야 하기 때문에 옵션에 - 를 붙이지 않아도 된다(ps도 마찬가지 이유로 - 가 필요없다). 즉, tar xvf archive.tar 도 작동한다.


2 명령어 활용예
2.1 아카이브 풀기 tar -xvf archive.tar
archive.tar 라는 이름으로 묶인 파일과 디렉토리를 현재 디렉토리에 풀어준다. v 옵션은 파일을 푸는 과정을 화면에 출력해주라는 의미이다.

2.2 아카이브 만들기 tar -cvf archive.tar 묶을파일과디렉토리들
archive.tar 라는 이름으로 파일과 디렉토리를 묶어준다.

2.3 퍼미션을 유지하며 아카이브 만들기 tar -cvfp archive.tar 묶을파일과디렉토리들
archive.tar 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

2.4 tar+gzip 압축하기tar -czvf archive.tar.gz 묶을파일과디렉토리들
archive.tar.gz 라는 이름으로 파일과 디렉토리를 묶어준다. tar -czvfp archive.tar.gz 묶을파일과디렉토리들
archive.tar.gz 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

2.5 tar+bzip2 압축하기tar -cjvf archive.tar.bz 묶을파일과디렉토리들
archive.tar.bz 라는 이름으로 파일과 디렉토리를 묶어준다.

tar -cvjfp archive.tar.gz 묶을파일과디렉토리들
archive.tar.gz 라는 이름으로 퍼미션을 유지하며 파일과 디렉토리를 묶어준다.

2.6 gzip으로 압축된 tar 풀기 tar -xvzf archive.tar.gz
archive.tar.gz 라는 tar 로 묶인뒤 gzip 으로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어준다.

2.7 bzip2로 압축된 tar 풀기 tar -xvjf arhive.tar.bz
archive.tar.bz 라는 tar 로 묶인뒤 bzip2로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어준다.

2.8 허가권(Permission) 유지하며 풀기 tar -xpf archive.tar
파일을 묶을 당시의 각 파일의 허가권을 유지하며 풀어준다.

신고
TAG Linux, tar, tip

하드디스크 추가하기

秋 - Tip 2003.08.13 16:36 Posted by 민수아빠™
하드 디스크 추가하기

[ 가정 - 현재 시스템 사양이 아래와 같다 ]

   OS  : Linux
   HDD : 9.1 G * 1
   RAM : 256 M

   /home2 디렉토리는 / 밑에 만든다.

[ 문제 발생]

   기존의 9.1G HDD 의 /home 파티션이 full 로 찾다.
   그래서 새로운 하드디스크( 9.1 G )를 추가하기를 원한다. 단, 추가된 HDD 는 /home2 라는
   디렉토리 에 mount 를 시키길 원하며 앞으로 추가되는 데이타는 home2 에 쌓이길 원한다.


[ 문제 해결하기 ]

   1. 새로운 9.1G HDD 를 서버에 추가한후 서버를 REBOOTING 시킨다 - 추가된 HDD 인식

   2. 새로운 하드 파티션 정보보기
 
      만약 추가된 하드가 파티션이 나누어져있을 가능성이있으므로 확인한다 - 재고일 경우

      [root@soma]# fdisk /dev/sdb

      The number of cylinders for this disk is set to 8678.
      There is nothing wrong with that, but this is larger than 1024,
      and could in certain setups cause problems with:
      1) software that runs at boot time (e.g., old versions of LILO)
      2) booting and partitioning software from other OSs
      (e.g., DOS FDISK, OS/2 FDISK)

      Command (m for help): p  ----> 파티션 정보를 출력


      아무런 파티션이 나누어져있지 않을경우는 그냥 3 번 작업으로 넘어간다.
      만약 파티션이 나누어져있으면 파티션을 지운다.


      [파티션이 나누어져있는 정보 형태]
      ---------------------------------------------------------------------------------
      Device Boot    Start       End    Blocks   Id  System

      /dev/sda1        1         1109    52208   83  Linux


      Command (m for help): d  ----> 파티션을 지운라는 명령어  

      Partition number (1-6):  ----> 지울 파티션 번호를 입력하고 ENTER KEY 를 친다.
 
      아무런문제가 없다면 위의 파티션 정보를 지워졌을것이다.

      [root@soma]# fdisk /dev/sdb

      The number of cylinders for this disk is set to 8678.
      There is nothing wrong with that, but this is larger than 1024,
      and could in certain setups cause problems with:
      1) software that runs at boot time (e.g., old versions of LILO)
      2) booting and partitioning software from other OSs
      (e.g., DOS FDISK, OS/2 FDISK)

      Command (m for help): p  

      Device Boot    Start       End    Blocks   Id  System

      아무런 정보가 출력되지 않는다면 지워졌다.


   3. 새로운 파티션 나누기  

      새로추가된 하드의 파티션을 나누어야한다.여기선 통으로 잡는다고 가정한다.

      [root@soma]# fdisk /dev/sdb

      The number of cylinders for this disk is set to 8678.
      There is nothing wrong with that, but this is larger than 1024,
      and could in certain setups cause problems with:
      1) software that runs at boot time (e.g., old versions of LILO)
      2) booting and partitioning software from other OSs
      (e.g., DOS FDISK, OS/2 FDISK)

      Command (m for help): n  ----> 새로운 파티션을 만들겠다는 명령어
      Command action

         e   extended
         p   primary partition (1-4)
 
         p   ----> p 를 입력하고 ENTER KEY 를 친다 - primary partition 으로 만들겠다.
         
         Partition number (1-4):1  ----> 1 을 입력하고 ENTER KEY - 파티션번호 선택

         First cylinder (1-1109) :1 ----> 1 을 입력하고 ENTER KEY - 시작블럭 선택
 
         Laste cylinder or + size or ...... : 아무것도 입력하지말고 ENTER KEY - 통으로잡기위해
        
      
       이것으로 새로운 파티션을 통으로 잡는 작업은 끝났다. 확인은 fdisk 명령어로 확인하면된다.



   4. 추가한 하드디스크 포맷하기 - mkfs  

      새로운 하드가 추가되었고 파티션역시 나누어져있다.
      이제 마지막으로 추가된 하드디스크를 시스템에 맞는 파일시스템 타입으로 포맷하면된다.
      
      [root@soma]# mkfs -t ext2 /dev/sdb1


      위의 명령어를 실행하면 여러 메시지를 출력하면서 작업이 마무리된다.
      이것으로 모든 작업은 끝났다.


   5. fstab 에 추가시키기 - home2 에 mount 하기

      이제 추가된 하드를 /home2 라는 디렉토리에 mount 시키면된다.
      
      [root@soma]# mount /dev/sdb1 /home2  

      이렇게 간단히 마운트를 시킬수는있지만 이렇게 마운트를 시켜놓으면 재부팅될때는 자동으로 마운트가 되지않는다.
      이럴 해결하기위해서는 /etc/fstab 에 추가시켜놓으면 아무런 문제가 없어진다.

  
      [root@soma]# vi /etc/fstab
  
       /dev/sdb1      /home2        ext2      defaults    1 2


      위의 라인을 맨 마지막줄에 추가하고 저장하면 모든 작업이 끝났다.

      마지막으로 rebooting 를 시킨다.  
      부팅될때의 메시지를 유의깊에 살펴보기 바란다. 혹 문제가 발생할수있기 때문에...



   6. 확인하기

      [root@soma]# cd /

      [root@soma]# df -m /home2

      Filesystem           1M-blocks      Used Available Use% Mounted on
      /dev/sdb1             .......       ....    .....    1%  /

       
      대충 위의 형식으로 출력된다.



이상으로 새로운 하드디스크 추가하기를 마칩니다.


ps) fdisk , mkfs 에대한 자세한 정보는 man page 를 참고하시길...
신고

하위폴더의 파일들 지우기

秋 - Tip 2003.03.18 17:54 Posted by 민수아빠™

find . ( -name '*.mp3' -o -name '*.MP3' ) -print -exec rm -f {} ;

혹시 dir들이 link로 되어 있으면 -follow 업션 하나 더 줘야...

신고

Apache 1.3.26 업그레이드기 (PHP4.2.2)

秋 - Tip 2002.09.09 19:57 Posted by 민수아빠™
Apache 1.3.26 Released

The Apache Software Foundation and The Apache Server Project are pleased to announce the release of version 1.3.26 of the Apache HTTP Server. This Announcement notes the significant changes in 1.3.26.

This version of Apache is principally a security and bug fix release. A summary of the bug fixes is given at the end of this document. Of particular note is that 1.3.26 addresses and fixes the issues noted in CAN-2002-0392 (mitre.org) [CERT VU#944335] regarding a vulnerability in the handling of chunked transfer encoding. We would like to thank Mark Litchfield of ngssoftware.com for discovering and reporting the vulnerability.

기본적으로 RedHat Advanced Server 2.1을 설치하면
Apache1.3.24, PHP4.0.6이 설치된다.

Apache1.3.24는 참을만했으나, PHP4.0.6은 참을 만하지 못하다.
그리고 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2002-0392 를 방문해 보면
Apache1.3.24도 참을만 한것 같지는 않다..
구체적인 내용은 http://www.apache.kr.net/info/security_advisory-02.txt 를 참고하라..

잘 기억은 안나지만 Apache1.3.26(+PHP4.2.2)으로 업그레이드를 정리한다.
나중에 Archi 아니 Arch 서버가 들어오면 긴요하게 쓰일 수도 있을것 같아서...


[root@urban tmp]#
[root@urban tmp]# cp /etc/httpd/conf/httpd.conf  /home/sylee/backup/
[root@urban tmp]# /etc/rc.d/init.d/httpd stop
[root@urban tmp]# cp /usr/local/apache/conf/httpd.conf /home/kan
[root@urban tmp]# /etc/rc.d/init.d/httpd stop
httpd 를 정지함:                     [ 확인 ]
[root@urban tmp]# /etc/rc.d/init.d/mysqld stop
Killing mysqld with pid 1194

만약에 /usr/local/apache에 설치되어 있다면
[root@urban tmp]# mv /usr/local/apache /usr/local/apache_old

[root@urban tmp]# cd apache_1.3.26
[root@urban apache_1.3.26]# ./configure --prefix=/usr/local/apache --enable-module=so --enable-rule=SHARED_CORE --enable-shared=max
[root@urban apache_1.3.26]# make
[root@urban apache_1.3.26]# make install
[root@urban apache_1.3.26]# ls /usr/local/
apache  apache_old doc  games  include  libexec  sbin   src
bin     etc  imap   lib      mysql    share


apache 디렉토리 생성확인

[root@urban apache_1.3.26]# cd ../php-4.2.2
[root@urban php-4.2.2]# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-config-file-path=/usr/local/lib --with-mysql=/usr/local/mysql --with-pdflib=no --enable-track-vars --enable-magic-quotes --enable-modules=so

[root@urban apache_1.3.26]# make
[root@urban apache_1.3.26]# make install
[root@urban apache_1.3.26]# cp php.ini-dist /usr/local/lib/php.ini
[root@urban apache_1.3.26]# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl stop: httpd started
이렇게 나오면 OK

[root@urban apache_1.3.26]# /usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl stop: httpd stopped
httpd.conf를 조절하기위해 stop

[root@urban apache_1.3.26]# vi /usr/local/apache/conf/httpd.conf
ServerRoot "/usr/local/apache"

ServerAdmin www@urban.knu.ac.kr

ServerName urban.knu.ac.kr

DocumentRoot "/usr/local/apache/htdocs"



    Options SymLinksIfOwnerMatch MultiViews IncludesNoExec
    AllowOverride FileInfo AuthConfig LImit
    Order allow,deny
    Allow from all

취향에 맞게 수정


DirectoryIndex index.html

BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
추가
BrowserMatch "WebZIP" no_access
BrowserMatch "Teleport" no_access
BrowserMatch "NamoWebEditor" no_access
BrowserMatch "WebTrack-HTTPP" no_access
BrowserMatch "WebSymmetrix" no_access

AddType application/x-tar .tgz
추가
AddType application/x-httpd-php .php .php3 .html .inc
AddType application/x-httpd-php-source .phps

AddHandler cgi-script .cgi


NameVirtualHost 155.230.175.52:80
ServerAdmin www@urban.knu.ac.kr
DocumentRoot /home/city/html
ServerName city.knu.ac.kr
ServerAlias city.knu.ac.kr
ErrorLog logs/city.error_log
TransferLog logs/city.access_log


#####################################################################
/etc/rc.d/init.d/httpd


---------httpd 시작----------------------------------------------------
#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf

# Source function library.
. /etc/rc.d/init.d/functions

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl # 경로 수정
httpd=/usr/local/apache/bin/httpd # 경로 수정
prog=httpd
RETVAL=0

# Find the installed modules and convert their names into arguments httpd
# can use.
moduleargs() {
moduledir=/usr/local/apache/libexec # 경로 수정
moduleargs=`
/usr/bin/find ${moduledir} -type f -perm -0100 -name "*.so" | env -i tr '[:lower:]' '[:upper:]' | awk '{ gsub(/.*//,""); gsub(/^MOD_/,""); gsub(/^LIB/,""); gsub(/.SO$/,""); print "-DHAVE_" $0}'`
echo ${moduleargs}
}

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
daemon $httpd `moduleargs` $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
graceful|help|configtest)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|status|fullstatus|graceful|help|configtest}"
exit 1
esac

exit $RETVAL

---------httpd 끝------------------------------------------------------


#####################################################################
/etc/logrotate.d/apache



---------apache 시작--------------------------------------------------
/usr/local/apache/logs/access_log /usr/local/apache/logs/error_log{
     missingok
     sharedscripts
     postrotate
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
     endscript
}
---------apache 끝----------------------------------------------------


#####################################################################
/usr/local/lib/php.ini



적당히 수정.

끝.




Good Luck
신고