: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ... 14 :

[table 용량확인]


SELECT
concat(table_schema,'.',table_name),  
concat(round(table_rows/1000000,2),'M') rows,  
concat(round(data_length/(1024*1024*1024),2),'G') DATA,  
concat(round(index_length/(1024*1024*1024),2),'G') idx,  
concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,  
round(index_length/data_length,2) idxfrac   
FROM
information_schema.TABLES 
where table_name = '테이블명' ;

==========================================================
출처:http://blog.naver.com/juner84?Redirect=Log&logNo=100150510663

2012/03/01 20:33 2012/03/01 20:33
샤이 이 작성.

당신의 의견을 작성해 주세요.

솔라리스에서는 netstat -p 옵션을 사용할 수 없어 열려있는 포트의 pid를 확인할 수 없으며

아래와 같은 방법으로 확인이 가능합니다.

다음 소스의 FindPort(80); 부분을 찾고자 하는 포트로 수정한 후 port.c로 작성하여 컴파일 합니다.

#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <dlfcn.h>
#include <procfs.h>
#include <dirent.h>

/* Flags accepted by Pgrab() */
#define PGRAB_RETAIN    0x01    /* Retain tracing flags, else clear flags */
#define PGRAB_FORCE     0x02    /* Open the process w/o O_EXCL */
#define PGRAB_RDONLY    0x04    /* Open the process or core w/ O_RDONLY */
#define PGRAB_NOSTOP    0x08    /* Open the process but do not stop it */

/* Error codes from Pcreate() */
#define C_STRANGE   -1  /* Unanticipated error, errno is meaningful */
#define C_FORK      1   /* Unable to fork */
#define C_PERM      2   /* No permission (file set-id or unreadable) */
#define C_NOEXEC    3   /* Cannot execute file */
#define C_INTR      4   /* Interrupt received while creating */
#define C_LP64      5   /* Program is _LP64, self is _ILP32 */
#define C_NOENT     6   /* Cannot find executable file */

/* Error codes from Pgrab(), Pfgrab_core(), and Pgrab_core() */
#define G_STRANGE   -1  /* Unanticipated error, errno is meaningful */
#define G_NOPROC    1   /* No such process */
#define G_NOCORE    2   /* No such core file */
#define G_NOPROCORCORE  3   /* No such proc or core (for proc_arg_grab) */
#define G_NOEXEC    4   /* Cannot locate executable file */
#define G_ZOMB      5   /* Zombie process */
#define G_PERM      6   /* No permission */
#define G_BUSY      7   /* Another process has control */
#define G_SYS       8   /* System process */
#define G_SELF      9   /* Process is self */
#define G_INTR      10  /* Interrupt received while grabbing */
#define G_LP64      11  /* Process is _LP64, self is ILP32 */
#define G_FORMAT    12  /* File is not an ELF format core file */
#define G_ELF       13  /* Libelf error, elf_errno() is meaningful */
#define G_NOTE      14  /* Required PT_NOTE Phdr not present in core */
#define G_ISAINVAL  15  /* Wrong ELF machine type */
#define G_BADLWPS   16  /* Bad '/lwps' specification */
#define G_NOFD      17  /* No more file descriptors */


typedef struct ps_prochandle* (*Pgrab_t)(pid_t pid, int flags, int *perr);
typedef int (*pr_getsockname_t)(struct ps_prochandle *Pr, int sock, struct sockaddr *name, socklen_t *namelen);
typedef int (*pr_stat_t)(struct ps_prochandle *Pr, const char *path, struct stat *buf);
typedef int (*pr_fstat_t)(struct ps_prochandle *Pr, int fd, struct stat *buf);
typedef void (*Prelease_t)(struct ps_prochandle *P, int flags);

int FindPort(int nPort);
int FindPortFromSockAddr(struct sockaddr *sa, socklen_t len, const int nFindPort);
const char *GetProcNameByPID(const int pid);
const char *Pgrab_error(int error);

int main(int argc, char **argv)
{
    FindPort(80);
    return 0;
}

int FindPort(int nPort)
{
    int nCurPID = 0, nMyPID = 0, nCurFD = 0, nErr = 0;
    void *handle = 0;
    Pgrab_t Pgrab = NULL;
    pr_getsockname_t pr_getsockname = NULL;
    pr_fstat_t pr_fstat = NULL;
    Prelease_t Prelease = NULL;
    DIR *dir = NULL, *subdir = NULL;
    socklen_t len;
    char sockBuff[512] = {0};
    char szPath[0xFF] = {0};
    struct sockaddr *sa = (struct sockaddr *)sockBuff;
    struct dirent *entry = NULL, *subentry = NULL;
    struct stat stFile;
    struct ps_prochandle *Pr = NULL;
   
    nMyPID = (int)getpid();

    if ( (handle = dlopen("libproc.so", RTLD_NOW)) == NULL )
    {
        printf("fail to dlopen, %s\n", dlerror());
        return 0;
    }

    if ( (Pgrab = dlsym(handle, "Pgrab")) == NULL )
    {
        printf("fail to Pgrab, %s\n", dlerror());
        dlclose(handle);
        return 0;
    }

    if ( (pr_getsockname = dlsym(handle, "pr_getsockname")) == NULL )
    {
        printf("fail to pr_getsockname, %s\n", dlerror());
        dlclose(handle);
        return 0;
    }
   
    if ( (pr_fstat = dlsym(handle, "pr_fstat")) == NULL )
    {
        printf("fail to pr_fstat, %s\n", dlerror());
        dlclose(handle);
        return 0;
    }  
   
    if ( (Prelease = dlsym(handle, "Prelease")) == NULL )
    {
        printf("fail to Prelease, %s\n", dlerror());
        dlclose(handle);
        return 0;
    }
   
    if ((dir = opendir("/proc/")) == NULL)
    {
        dlclose(handle);
        return 0;
    }
   
    while ( (entry = readdir(dir)) != NULL )
    {
        if ( (nCurPID = atoi(entry->d_name)) <= 0 )
            continue;

        /* pid 1, 2, 3 is system process */
        if ( nCurPID == nMyPID || nCurPID < 4 )
            continue;

        if ( (Pr = Pgrab((pid_t)nCurPID, PGRAB_FORCE, &nErr)) == NULL )
        {
            printf("fail to Pgrab [pid %d], %s\n", nCurPID, Pgrab_error(nErr));
            continue;
        }
       
        snprintf(szPath, sizeof(szPath)-1, "/proc/%d/fd", nCurPID);

        if ((subdir = opendir(szPath)) == NULL)
        {
            printf("fail to opendir, %s\n", szPath);
            Prelease(Pr, 0);
            Pr = NULL;
            continue;
        }
       
        while ( (subentry = readdir(subdir)) != NULL )
        {
            if ( (nCurFD = atoi(subentry->d_name)) <= 0 )
                continue;
           
            if ( (nErr = pr_fstat(Pr, nCurFD, &stFile)) == -1 )
            {
                printf("pr_fstat [%d], nCurFD [%d], Pr[%p]\n", nErr, nCurFD, Pr);
                continue;
            }
           
            if ( (stFile.st_mode & S_IFMT) != S_IFSOCK )
                continue;
           
            len = sizeof(sockBuff);
            if (pr_getsockname(Pr, nCurFD, sa, &len) != 0)
                continue;
           
            switch ( FindPortFromSockAddr(sa, len, nPort) )
            {
            case AF_INET:
printf("Port number %d is used by '%s' (pid : %d, AF_INET)\n", nPort, GetProcNameByPID(nCurPID), nCurPID);
                break;
            case AF_INET6:
printf("Port number %d is used by '%s' (pid : %d, AF_INET6)\n", nPort, GetProcNameByPID(nCurPID), nCurPID);
                break;
            default:
                break;
            }
        }
       
        Prelease(Pr, 0);
        Pr = NULL;
        closedir(subdir);
    }
   
    closedir(dir);
    dlclose(handle);
    return 0;
}

const char *GetProcNameByPID(const int pid)
{
    int nFD = 0;
    char szPath[0xFF] = {0};
    static char szProcessName[0xFF];
    struct psinfo pinfo;
   
    snprintf(szPath, sizeof(szPath)-1, "/proc/%d/psinfo", pid);
    szProcessName[0] = 0;
   
    if ( (nFD = open(szPath, O_RDONLY)) > 0 )
    {
        if ( read(nFD, (void *)&pinfo, sizeof(struct psinfo)) > 0 )
            snprintf(szProcessName, sizeof(szProcessName)-1, "%s", pinfo.pr_fname);

        close(nFD);
    }
   
    return szProcessName;
}

int FindPortFromSockAddr(struct sockaddr *sa, socklen_t len, const int nFindPort)
{
    struct sockaddr_in *so_in = (struct sockaddr_in *)(void *)sa;
    struct sockaddr_in6 *so_in6 = (struct sockaddr_in6 *)(void *)sa;
    struct sockaddr_un *so_un = (struct sockaddr_un *)sa;
   
    switch (sa->sa_family)
    {
    case AF_INET:
        if ( nFindPort == ntohs(so_in->sin_port) )
            return AF_INET;
        break;
    case AF_INET6:
        if ( nFindPort == ntohs(so_in6->sin6_port) )
            return AF_INET6;
        break;
    default:
        break;
    }
   
    return -1;
}

const char *Pgrab_error(int error)
{
    const char *str = NULL;
 
    switch (error)
    {
    case G_NOPROC:          str = "no such process";                break;
    case G_NOCORE:          str = "no such core file";              break;
    case G_NOPROCORCORE:    str = "no such process or core file";   break;
    case G_NOEXEC:          str = "cannot find executable file";    break;
    case G_ZOMB:            str = "zombie process";                 break;
    case G_PERM:            str = "permission denied";              break;
    case G_BUSY:            str = "process is traced";              break;
    case G_SYS:             str = "system process";                 break;
    case G_SELF:            str = "attempt to grab self";           break;
    case G_INTR:            str = "operation interrupted";          break;
    case G_LP64:            str = "program is _LP64, self is not";  break;
    case G_FORMAT:          str = "file is not an ELF core file";   break;
    case G_ELF:             str = "libelf error";                   break;
    case G_NOTE:            str = "core file is corrupt or missing required data";  break;
    case G_STRANGE:         str = "unanticipated system error";     break;
    case G_ISAINVAL:        str = "wrong ELF machine type";         break;
    case G_BADLWPS:         str = "bad lwp specification";          break;
    case G_NOFD:            str = "too many open files";            break;
    default:                str = "unknown error";                  break;
    }

    return (str);
}

컴파일 방법

# gcc -o port port.c -lnsl -lsocket -ldl

컴파일 후 port 실행

참고 : http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ptools/pfiles/pfiles.c
참고 : http://blog.daum.net/aswip/8429248

2011/07/12 18:08 2011/07/12 18:08
샤이 이 작성.

당신의 의견을 작성해 주세요.

http://www.net-snmp.org/
 * 소스 버전 net-snmp-5.4.2.1 설치 절차
 

OS: SunOS 5.10 x86
 gcc Version: 3.4.6
 net-snmp Version: 5.4.2.1
 

-----------------------------------------------------
 -- OS 설치 시 자동 설치된 snmp check.
 

1. 데몬 프로세스 확인.
 # ps -ef | grep snmp
 35:   636 ?        S  0:03 /usr/sfw/sbin/snmpd
 43: 12815 ?        S  0:00 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
 45: 12839 ?        S  0:00 /usr/lib/dmi/snmpXdmid -s sgn
 

2. 서비스 등록 확인.
 # svcs | grep dmi
 113:online          8월_03  svc:/application/management/dmi:default
 
# svcs | grep snmp
 120:online         15:01:37 svc:/application/management/snmpdx:default
 
# svcs | grep sma
 112:online          8월_03  svc:/application/management/sma:default
 

3. svcadm 명령으로 disable 시킨다.
 # svcadm disable svc:/application/management/dmi:default
 # svcadm disable svc:/application/management/snmpdx:default
 # svcadm disable svc:/application/management/sma:default
 

4. ps 및 svcs 명령으로 정상적으로 중지되었는지 확인한다.
 # ps -ef | grep snmp
 # svcs | grep dmi
 # svcs | grep snmp
 # svcs | grep sma
 

-----------------------------------------------------
 -- 설치
 

1. install
 -- root 로 로그인.
 -- gcc 설치.
 
# gunzip net-snmp-5.4.2.1.tar.gz
 # tar -xvf net-snmp-5.4.2.1.tar
 # cd net-snmp-5.4.2.1
 
# ./configure
 # make
 # make install
 

2. conf 설정
 -- EXAMPLE.conf를 /usr/local/share/snmp/snmpd.conf 로 복사하여 수정하여 사용한다.
 # cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
 # vi /usr/local/share/snmp/snmpd.conf
 

3. 시스템에 맞게 수정한다
 # NETWORK -> IP Address 대역으로 수정 (예: NETWORK -> 192.168.2.0)
 # COMMUNITY -> Manager 연동할 인증 문자열로 수정 (예: COMMUNITY -> public)
 #       sec.name  source          community
 com2sec local     localhost       public
 com2sec mynetwork 192.168.2.0/24  public
 
-- OMS(Manager)와 해당 서버(Agent)가 192.168.2.XXX 대로 연동이 가능하면 “192.168.2.0/24” 로 설정하시면 되고,
 -- 외부 망으로만 연동이 가능하다면 “공인IP.0/24” 로 설정하시면 됩니다.
 
-- (1) 192.168.2.xxx 대역으로 연동 가능 시: com2sec mynetwork 192.168.2.0/24    public
 -- (2) 외부 망으로만 연동 가능 시:           com2sec mynetwork 공인IP.0/24 public
 

4. 시스템에 맞게 수정한다
 syslocation Seoul Korea
 syscontact aaa@bbb.com
 

5. 아래 부분을 찾아 관리 대상이 되는 프로세스를 등록한다.
 # Process checks.
 #
 #  The following are examples of how to use the agent to check for
 #  processes running on the host.  The syntax looks something like:
 #
 #  proc NAME [MAX=0] [MIN=0]
 #
 #  NAME:  the name of the process to check for.  It must match
 #         exactly (ie, http will not find httpd processes).
 #  MAX:   the maximum number allowed to be running.  Defaults to 0.
 #  MIN:   the minimum number to be running.  Defaults to 0.
 proc aaaProck 1 1
 proc bbbProc 1 1
 proc cccProc 1 1
 

6. 아래 부분을 찾아 관리 대상이 되는 Disk를 등록한다.
 # disk checks
 #
 
# The agent can check the amount of available disk space, and make
 # sure it is above a set limit.
 
# disk PATH [MIN=DEFDISKMINIMUMSPACE]
 #
 # PATH:  mount path to the disk in question.
 # MIN:   Disks with space below this value will have the Mib's errorFlag set.
 #        Default value = DEFDISKMINIMUMSPACE.
 disk / 10000
 

7. 자동 실행 스크립트 작성
 -- 시스템이 부팅 될때 실행한다.
 -- 스크립트 작성 후 한번 실행시킨다.
 
# cd /etc/rc3.d
 # vi S78net-snmp
 

#!/sbin/sh
 #
 # /etc/rc3.d/S78net-snmp
 #
 # pkill has moved over the years so we need to find it
 #
 LD_LIBRARY_PATH=/usr/lib:/lib:/usr/share/lib:/usr/local/lib:/usr/local/ssl/lib
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 export PATH LD_LIBRARY_PATH
 
X=`which pkill`
 
case "$1" in
 'start')
     /usr/local/sbin/snmpd
     ;;
 
'stop')
     $X -TERM -x -u 0 snmpd
     ;;
 
*)
     echo "Usage: $0 { start | stop }"
     exit 1
     ;;
 esac
 exit 0
 

# chmod +x S78net-snmp
 

8. 기존에 설치된 snmp 부팅시 로드 되는 부분 제거.
 /var/svc/profile/generic_open.xml
 enabled='false' 로 수정.
 
  <service name='application/management/sma' version='1' type='service'>
     <instance name='default' enabled='false' />
   </service>
   <service name='application/management/dmi' version='1' type='service'>
     <instance name='default' enabled='false' />
   </service>
   <service name='application/management/snmpdx' version='1' type='service'>
     <instance name='default' enabled='false' />
   </service>

 ====================================================================
출처: http://childeye.tistory.com/208

2011/07/11 09:45 2011/07/11 09:45
샤이 이 작성.

당신의 의견을 작성해 주세요.


사용자 삽입 이미지

















 

만남을 소중이 여기는 사람과 사랑을 하세요.

그래야 행여 당신에게 이별이 찾아와도

당신과의 만남을 잊지않고 기억해 줄 테니까요
.




사랑을 할 줄 아는 사람과 사랑을 하세요.

그래야 행여 익숙지 못한 사랑으로

당신을 떠나보내는 일이 없을 테니까요.




무언가를 잃어본 적이 있는 사람과 사랑을 하세요

그래야 행여 무언가를 잃어버릴 때가 와도

잃어버린다는 것의 아픔을 알고 더이상 잃어버리고

싶어하지 않을 테니까요




기다림을 아는 이와 사랑을 하세요.

그래야 행여 당신이 방황을 할 때

그저 이유없이 당신을 기다려 줄 테니까요.




슬픔을 아는 이와 사랑을 하세요

그래야 행여 당신이 슬퍼질 때

당신의 슬픔을 함께 해줄 수 있을 테니까요




항상 가까이에 있어 줄 수 있는 사람과 사랑을 하세요.

그래야 행여 어느 때 갑자기 보고 싶어지더라도

뛰쳐나가 만날 수 있을 테니까요




가슴이 따뜻한 이와 사랑을 하세요

그래야 행여 가슴이 시린 겨울이 찾아와도

그대의 따뜻한 가슴에 몸을 녹일 수 있을 테니까요




진실된 사람과 사랑하세요

그래야 행여 그대가 나의 거짓된 모습을 보더라도

그대의 진실로 나를 감싸줄 테니까요




진실로 자신의 모든 것을 사랑해 줄 수 있는 이와 사랑을 하세요

그래야 행여 당신의 한 모습이 나빠보이더라도

사랑하는 이의 다른 모습을 보며 감싸안을 수 있을 테니까요




그리고 진실로 진실로 자기 자신을 사랑할 줄 아는 이와 사랑하세요

자기 자신을 사랑할 줄 아는 사람이 남 또한

사랑할 줄 안데요..




-김남조
2011/07/06 23:11 2011/07/06 23:11
샤이 이 작성.

당신의 의견을 작성해 주세요.

리눅스와 윈도우가 인식하는 \n(개행문자)에는 차이가 있다.

윈도우는 엔터키를 눌러 개행문자입력할 경우 해당 개행문자는 Carriage Return(CR)과 Line Feed(LF)가 함께 들어가게 된다. 즉, CR과 LF가 함께 들어가야만 하나의 라인이 끝난것으로 인식을 하는것이다.

하지만 리눅스는 Carriage Return(CR) 하나만으로 윈도우의 CR+LF기능을 함께 처리 한다.
따라서 윈도우에서 작성한 텍스트 파일 또는 소스파일을 그대로 Linux 시스템에 올리게 되면 해당 파일이 정상적인 작동을 하지 않는 경우가 발생 할 수 있는 것이다.

이는 윈도우에서 작성할때 입력된 CR은 VI에서 인식이 되나 LF가 인식이 되지 않기 때문이며, LF코드값을 삭제해 주면 정상적인 사용이 가능하다.

LF 코드값은 리눅스에서는 Vi 라는 에디터 프로그램을 이용하여 간단히 수정할 수 있다.

Vi에서 해당 파일을 오픈할때 그냥 오픈할 경우 LF값이 보이지 않으므로 바이너리(Binary)로 열어 코드값을 치환한다.


Ex ) vi -b 파일명


이걸 몰라 삽질을 20분!!! ㅜ_ㅜ 완전 안습쓰나미다... ㅜ_ ㅜ


PS. vi -b 파일명으로 열었을때 ^M 문자가 보이는 경우 정상적으로 스크립트가 실행되지 않을때가 있습니다. 이럴땐 ^M 문자를 없애야 하는데 이걸 어떻게 없애야 할지 걱정스러울 때가 있을 것 입니다. (아시는 분은 패에에에스~ ~)

vi에서 제일 아래 행으로 내리세요 (Shift + G)
: 를 누르셔서 실행창을 띄우신 후 아래와 같이 입력 하시면 됩니다.

: 1, s/^M//g
여기서 ^M을 입력하는 방법은 Ctrl키를 누르신 상태에서 V와 M을 순서대로 누르시면 입력이 가능 합니다.

vi 편집기에서(바이너리 모드가 아닌 일반모드) 다음 명령어로 각 os 개행문자를 수정할 수 있습니다.

:set ff=dos
:set ff=unix

=======================================================================
출처:http://blog.lovetonight.net
추가:샤이
2011/07/06 10:56 2011/07/06 10:56
샤이 이 작성.

당신의 의견을 작성해 주세요.

1. First install subversion and ruby via yum or up2date:

yum -y install subversion ruby

yum install subversion*

yum install ncurses-devel*


2. make ffmpeg

cd /
mkdir ffmpeg


3. Now we need to install MPlayer & FFmpeg sources from SVN:

cd /ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer


4. Now we need some codecs:

wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
tar xvjpf essential-20071007.tar.bz2
cd essential-20071007
mkdir /usr/local/lib/codecs
mv * /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/
cd /ffmpeg


6. Next we will install LAME MP3 encoder:

wget http://downloads.sourceforge.net/lame/lame-398-2.tar.gz
tar xvzpf lame-398-2.tar.gz
cd lame-398-2
./configure --prefix=/usr
make
make install
cd /ffmpeg


7. Now we install Libogg:

wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar xvzpf libogg-1.1.3.tar.gz
cd libogg-1.1.3
./configure --prefix=/usr
make
make install
cd /ffmpeg


8. We need to make sure the correct lib directories are setup in ldconfig. Edit the /etc/ld.so.conf file and add the following lines:

/usr/lib
/usr/local/lib


9. Now save and run the following command:

ldconfig


 


10. To install libvorbis we will run:

wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz
tar xvzpf libvorbis-1.2.0.tar.gz
cd libvorbis-1.2.0
./configure --prefix=/usr
make
make install
cd /ffmpeg


11. Now we will install FLVTool2:

wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
tar xvzpf flvtool2-1.0.6.tgz
cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
cd /ffmpeg


 

12.yasm install

tar zxvf yasm-1.1.0.tar.gz
cd yasm-1.1.0
./configure
make
make check
make install
cd /ffmpeg



13.libx264 codec install

x264
소스 다운로드
tar xvf last_x264.tar.bz2
cd x264-snapshot-20110620-2245
./configure --enable-shared
make
make install
cd /ffmpeg




14. Next we should build MPlayer & MEncoder and it will take a while unless you have a nice dual or quad core machine. Note that I’ve seen the SVN version of these packages break before, so you can always download the source code from their site (a stable copy) if it fails on make:

cd mplayer
./configure --prefix=/usr
make
make install
cd /ffmpeg


15. We will now build FFmpeg:

mkdir /usr/local/src/tmp
chmod 777 /usr/local/src/tmp
export TMPDIR=/usr/local/src/tmp
cd /ffmpeg/ffmpeg
./configure --prefix=/usr --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-gpl --disable-mmx --enable-shared
make
make install
cd /ffmpeg

 

16. Symlink some libraries if needed (ignore file exists errors):

ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51



17. Now build FFmpeg-PHP:

wget http://downloads.sourceforge.net/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
tar xvjpf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure --prefix=/usr
make
make install
cd /ffmpeg



root/ffmpeg-php-0.5.0/ffmpeg_frame.c:495: error: ‘PIX_FMT_RGBA32′ undeclared (first use in this function) make: *** [ffmpeg_frame.lo] Error 1 에러 발생시
vi +495(or해당라인) ffmpeg_frame.c 로 vi 진입후에 " ESC > :%s/PIX_FMT_RGBA32/PIX_FMT_RGB32" 로 수정 후 저장하고 다시 make

ffmpeg-php.c:46:21: error: swscale.h: No such file or directory 에러 발생시

vi 로 접속하여 swscale.h 의 경로를 수정해 보시기 바랍니다. ( 예 : #include </root/ffmpeg/ffmpeg/libswscale/swscale.h> )


18. Now you need to copy the ffmpeg.so file that was created from it’s location (from the build) to /usr/local/lib/php/extensions/, it should look something like:

cp /usr/local/lib/php/extensions/no-debug-non-zts-????????????/ffmpeg.so /usr/local/lib/php/extensions/


19. Modify your php.ini. Try /etc/php.ini or /usr/lib/php.ini or /usr/local/Zend/etc/php.ini as they are common locations, you can do php -i | grep -i ini to find the proper location. Change the extension_dir value as seen below and add the extension as seen below:

extension_dir = “/usr/local/lib/php/extensions/”
extension=ffmpeg.so


20. Now save and restart apache and test php for ffmpeg on both apache via phpinfo() and from shell:

/etc/rc.d/init.d/httpd restart
php -r 'phpinfo();' | grep ffmpeg


출처:http://www.tdive.kr/213
추가수정:샤이
2011/06/21 19:03 2011/06/21 19:03
샤이 이 작성.

당신의 의견을 작성해 주세요.

사용자 삽입 이미지















I always make fun of it and stuff...
but isn't everything we do in life a way
to be loved a little more?


난 늘 그런 걸 비웃어 넘기지만...
우리가 살아가면서 하는 모든
일이 좀 더 사랑받기 위한 거 아냐?

사용자 삽입 이미지

























You know, I believe
if there's any kind of God...

있잖아, 이 세상에 신이 있다면...

it wouldn't be in any of us,
not you or me...

그 신은 너나 나, 우리 안에
존재하는 게 아니라...

but just this little space in between.

우리 사이에 존재한다고 믿어

사용자 삽입 이미지

























When you talked earlier
about after a few years...

네가 아까 커플이 몇 년 동안 같이 살게 되면...

how a couple would begin
to hate each other...
by anticipating their reactions,
or getting tired of their mannerisms.

상대의 반응을 예측할 수 있고...
또 상대의 습관에 싫증을 느끼게 돼
서로를 싫어하게 된다고 했잖아

I think it would be the opposite for me.

난 정반대일 것 같아

I think I can really fall in love
when I know everything about someone.

난 상대에 대해 완전히 알게 될 때
정말 사랑에 빠질 것 같거든

The way he's gonna part his hair,
which shirt he's gonna wear that day...

가르마를 어떻게 타는지
이런 날은 어떤 셔츠를 입는지...

knowing the exact story he'd tell
in a given situation.

이런 상황에선 정확히
어떤 얘기를 할지 알게 되면...

I'm sure that's when I know
I'm really in love.

난 그때야 비로소
그 사람을 사랑하게 될 거야

사용자 삽입 이미지


























-before sunrise 1995-


2011/06/14 01:59 2011/06/14 01:59
샤이 이 작성.

당신의 의견을 작성해 주세요.

feel sore

2011/06/14 01:48 / Trivial tale

사용자 삽입 이미지























 
왼쪽 가슴 속이 아리다...

2011/06/14 01:48 2011/06/14 01:48
샤이 이 작성.

당신의 의견을 작성해 주세요.

다음은 Windows 2003 에서 간단하게 세팅 가능한 IIS metabase 자동백업설정 입니다.
물론 원하는 내용으로 복원도 가능 합니다.

1) 시작 - 실행 - cmd
2) 우선 systemroot 디렉토리로 이동합니다.
cd c:\WINDOWS\system32 <== 폴더이동

3) backupname 이라는 이름으로 IIS 설정을 백업 합니다.
c:\WINDOWS\system32>iisback /backup /b backupname <== 백업
서버에 연결...완료.
Backup saintbackuptest version NEXT_VERSION has been CREATED.

4) 정상적으로 백업이 되었는지 확인 합니다.
C:\WINDOWS\system32>iisback /list
서버에 연결...완료.
Backup Name Version # Date/Time
================
IISbackuptest 0 2009-01-07 오후 5:01:01
IISbackuptest 1 2009-01-07 오후 5:02:00
초기 백업 - IIS 설치 프로그램에서 자동으로 만듦 1 2007-01-08
오후 3:03:51

위 백업리스트에서 Version 부분이 나중에 복원할때 쓰이는 내용입니다.
0 번 버전으로 복원 또는 1번 버전으로 복원..

위와같은 내용을 자동으로 실행하도록 batch 파일을 생성 합니다.
메모장을 열어서 다음 내용을 기록 한 후 iisbackup.bat 라는 확장자 명으로 저장 합니다.

cd c:\WINDOWS\system32
c:\WINDOWS\system32>iisback /backup /b backupname
C:\WINDOWS\system32>iisback /list

5) 문제 발생시 백업본으로 복원을 할 경우 다음 명령어를 실행 합니다.

c:\WINDOWS\system32>iisback /restore /b backupname <== 복구

=> /v 3 라는 부분은 Version 정보중에 3번 버전으로 복원 한다는 내용입니다.
/v 옵션을 제거할 경우 기본값으로 가장 높은 버전으로 복원 합니다.


iisback /list 명령어를 사용하지 않고 수동으로 백업 상태를 확인 할때는
C:\WINDOWS\system32\inetsrv\MetaBack 디렉토리를 확인하면 IIS 구성/설정 백업데이터를 확인할 수 있습니다.

감사합니다.
=============================================================
출처:http://www.1000dedi.net/hosting/gnuboard4/bbs/board.php?bo_table=serverLecture&wr_id=745

2011/06/08 16:55 2011/06/08 16:55
샤이 이 작성.

당신의 의견을 작성해 주세요.

http://www.net-snmp.org/
* 소스 버전 net-snmp-5.4.2.1 설치 절차


OS: SunOS 5.10 x86
gcc Version: 3.4.6
net-snmp Version: 5.4.2.1


-----------------------------------------------------
-- OS 설치 시 자동 설치된 snmp check.


1. 데몬 프로세스 확인.

# ps -ef | grep snmp
35: 636 ? S 0:03 /usr/sfw/sbin/snmpd
43: 12815 ? S 0:00 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
45: 12839 ? S 0:00 /usr/lib/dmi/snmpXdmid -s sgn


2. 서비스 등록 확인.

# svcs | grep dmi
113:online 8월_03 svc:/application/management/dmi:default

# svcs | grep snmp
120:online 15:01:37 svc:/application/management/snmpdx:default

# svcs | grep sma
112:online 8월_03 svc:/application/management/sma:default


3. svcadm 명령으로 disable 시킨다.

# svcadm disable svc:/application/management/dmi:default
# svcadm disable svc:/application/management/snmpdx:default
# svcadm disable svc:/application/management/sma:default


4. ps 및 svcs 명령으로 정상적으로 중지되었는지 확인한다.

# ps -ef | grep snmp
# svcs | grep dmi
# svcs | grep snmp
# svcs | grep sma


-----------------------------------------------------
-- 설치


1. install

-- root 로 로그인.
-- gcc 설치.

# gunzip net-snmp-5.4.2.1.tar.gz
# tar -xvf net-snmp-5.4.2.1.tar
# cd net-snmp-5.4.2.1

# ./configure
# make
# make install


2. conf 설정

-- EXAMPLE.conf를 /usr/local/share/snmp/snmpd.conf 로 복사하여 수정하여 사용한다.
# cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
# vi /usr/local/share/snmp/snmpd.conf


3. 시스템에 맞게 수정한다
# NETWORK -> IP Address 대역으로 수정 (예: NETWORK -> 192.168.2.0)
# COMMUNITY -> Manager 연동할 인증 문자열로 수정 (예: COMMUNITY -> public)
# sec.name source community
com2sec local localhost public
com2sec mynetwork 192.168.2.0/24 public

-- OMS(Manager)와 해당 서버(Agent)가 192.168.2.XXX 대로 연동이 가능하면 “192.168.2.0/24” 로 설정하시면 되고,
-- 외부 망으로만 연동이 가능하다면 “공인IP.0/24” 로 설정하시면 됩니다.

-- (1) 192.168.2.xxx 대역으로 연동 가능 시: com2sec mynetwork 192.168.2.0/24 public
-- (2) 외부 망으로만 연동 가능 시: com2sec mynetwork 공인IP.0/24 public


4. 시스템에 맞게 수정한다
syslocation Seoul Korea
syscontact aaa@bbb.com


5
. 아래 부분을 찾아 관리 대상이 되는 프로세스를 등록한다.
# Process checks.
#
# The following are examples of how to use the agent to check for
# processes running on the host. The syntax looks something like:
#
# proc NAME [MAX=0] [MIN=0]
#
# NAME: the name of the process to check for. It must match
# exactly (ie, http will not find httpd processes).
# MAX: the maximum number allowed to be running. Defaults to 0.
# MIN: the minimum number to be running. Defaults to 0.
proc aaaProck 1 1
proc bbbProc 1 1
proc cccProc 1 1


6. 아래 부분을 찾아 관리 대상이 되는 Disk를 등록한다.
# disk checks
#

# The agent can check the amount of available disk space, and make
# sure it is above a set limit.

# disk PATH [MIN=DEFDISKMINIMUMSPACE]
#
# PATH: mount path to the disk in question.
# MIN: Disks with space below this value will have the Mib's errorFlag set.
# Default value = DEFDISKMINIMUMSPACE.
disk / 10000


7. 자동 실행 스크립트 작성
-- 시스템이 부팅 될때 실행한다.
-- 스크립트 작성 후 한번 실행시킨다.

# cd /etc/rc3.d
# vi S78net-snmp


#!/sbin/sh
#
# /etc/rc3.d/S78net-snmp
#
# pkill has moved over the years so we need to find it
#
LD_LIBRARY_PATH=/usr/lib:/lib:/usr/share/lib:/usr/local/lib:/usr/local/ssl/lib
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH LD_LIBRARY_PATH

X=`which pkill`

case "$1" in
'start')
/usr/local/sbin/snmpd
;;

'stop')
$X -TERM -x -u 0 snmpd
;;

*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0


# chmod +x S78net-snmp


8. 기존에 설치된 snmp 부팅시 로드 되는 부분 제거.
/var/svc/profile/generic_open.xml
enabled='false' 로 수정.

<service name='application/management/sma' version='1' type='service'>
<instance name='default' enabled='false' />
</service>
<service name='application/management/dmi' version='1' type='service'>
<instance name='default' enabled='false' />
</service>
<service name='application/management/snmpdx' version='1' type='service'>
<instance name='default' enabled='false' />
</service>

================================================================
출처 :http://childeye.tistory.com/208

2011/06/08 16:40 2011/06/08 16:40
샤이 이 작성.

당신의 의견을 작성해 주세요.

: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ... 14 :