Media Log

Crontab

cron등록하는 방법 순서대로 하면 됩니다.

1.whereis php 명령어로 php가 있는 곳의 위치를 확인한다.
2.crontab -e 명령어로 작업을 추가한다.
예)*/5 * * * * /usr/bin/php -q /var/www/html/test.php
5분마다 php를 이용해서 해당 위치의 파일을 실행시키는 거다.
3.test.php의 소스안에서는 include파일같은것은 실제 경로를 써준다.
4./etc/rc.d/init.d/crond restart
5.crontab -l 명령어로 제대로 등록이 되었는지 살펴본다.
6.tail /var/log/cron 명령어로 5분마다 제대로 실행이 되었는지 로그를 검사한다.

___________________________________________________________________________________________
 1. cron이란 :
   일정시간 마다 시스템에서 자동으로 실행 시키는 데몬입니다.

 2. cron 데몬의 실행과 종료
   실행 : /etc/rc.d/init.d/crond start
   종료 : /etc/rc.d/init.d/crond stop

 3. crond 설정
  크론(cron)의 설정은 /etc/crontab에서 합니다.

  옵션

  -e : 설정된 파일을 새롭게 편집

  -d : 등록된 내용을 삭제

  -l  : 현재 등록된 내용을 본다

  4. crontab 파일 형식
 ----------    ----------  ---------------------------------------------------
  필  드                 의  미           범  위
 ----------    ----------  ---------------------------------------------------
 첫 번째                      분              0-59
 두 번째                      시              0-23
 세 번째                      일              0-31
 네 번째                      월              1-12
 다섯 번째                  요일             0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
 여섯 번째                명령어             실행할 명령을 한줄로 쓴다.
 ----------    ----------  ---------------------------------------------------

 - 모든 엔트리 필드는 공백으로 구분된다.
 - 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
 - # 으로 시작하는 줄은 실행하지 않는다.

 - '*'표시는 해당 필드의 모든 시간을 의미한다.
 - 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
 - 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
 - 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까

    지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).

[출처] 주기적인 스크립트 실행을 통한 crontab 설정 문제 |작성자 오팔

crontab이란 예약된 작업을 실행하는 파일이다.
위치 :

/etc/crontab


옵션 :

crontab test1.sh(test1작업을 예약)
crontab -l (현재 걸려 있는 작업 목록 표시)
crontab -r (작업목록을 비움)
crontab -e (새로운 작업 입력,수정,삭제)

그럼 이제 등록할 파일에 대해 알아보자. 일반적으로 shell프로그래밍 한 파일을 넣으면 된다.
형식 :
[분] [시] [일] [월] [요일] [실행명령] [>|>>출력지정]

*/30 * * * * /usr/local/apache/htdocs2/start_cms2.sh > /dev/null
또는
30 * * * * /usr/local/apache/htdocs2/start_cms2.sh
(매 시간 30분마다 작업을 수행하고 결과는 출력하지 않는다)

45 */3 * * 1-5 /usr/local/apache/htdocs2/tart_cms.sh > /dev/console
(월~금요일 매 3시간 45분에 작업을 수행하고 결과는 화면에 출력한다)

* * * 3-5 * /usr/local/apache/htdocs2/tart_cms.sh >> /usr/local/apache/htdocs2/cms.log
(3월~5월까지 매시간 매분에 작업을 수행하고 결과는 cms.log파일에 추가한다)

여기서 주의할 점은 예약된 명령이 하나만 받아들여 지는데 이때문에 명령을 직접 넣지 않고 shell programming을 해주는 것이다.친구의 조언에 따르면 명령 && 명령 && 명령 이런 식도 먹힌다고 한다.

cron 사용법
linux]#vi /etc/crontab

분 시 날짜 달 요일 권한 command 형식으로 입력해줌...

ex) 05 * * * * root /home/html/update.php   -> 매시 5분에 update.php문 실행
ex) 05 15 * * * root /home/html/update.php   -> 매일 오후 3시 5분에 update.php문 실행

update.php

#!/usr/bin/php -q   (이건 리눅스에서 whereis php 해서 나오는 경로를 적어준다.) 
<?
 $conn=mysql_connect("localhost","user","password");
 mysql_select_db("edumeca",$conn);

 mysql_query("update tablename set updatefield=updatefield+1");
?>

update.php 의 실행권한을 준다.
linux]#chmod +x /root/home/html/update.php

이렇게 하면 지정한 시간에 php파일 실행...
php파일이 실행되었는지 볼려면

linux]#vi /var/log/cron

CPU 정보 (uname)

   # uname -p  ;i686은 펜티엄4를 의미
   # uname --help

메모리 정보 (free)

   # free -m  ;MB단위
   # free -k   ;KB단위

프로세스 정보 (ps, pstree)

   # ps auxw | grep httpd
   # pstree

프로세스별 CPU와 메모리 점유율 (top)

   # top          ;시스템이 갑자기 느려졌을 경우 사용

 - 주요 영역별 의미
    PID : 프로세스 ID
    USER : 소유주
    SIZE : 데이터 크기 (단위 KB)
    %CPU : CPU 점유율(%)
    %MEM : 멤리 점유율(%)

 - 종료 : q

마운트한 파일시스템의 정보 ( df)

 - 마운트한 파일시스템의 전체크기,사용한 공간, 여유공간 등의 정보
   # df -u

디렉토리별 용량 (du)

 - 각 디렉토리별 용량 확인
   # du --max-depth=1 -h /home  ;사용자별 디스크 사용현황

사용중인 장치정보(lsdev)

 - 시스템에서 인식하고 있는 장치(DMA, IRQ, I/O 포트 등)의 정보
   # lsdev

 - 세부적인 정보확인   ;/etc/sysconfig/hwconf 파일
 

현재 시스템 자용자 정보 (w)

 - 사용자명, 사용중인 터미널 사용중인 명령어 등의 현황
   # w

시스템에 설정된 시간 (date, rdate)

   # date                      ;현재 시간
   # rdate -s time.bora.net    ;표준 시간을 가져옴
   # clock                     ;CMOS의 시간
   # clock -w                  ;현재시간을 CMOS에 덮어 씀

   ※ 부팅시마다 rdate 로 정확한 시간을 가져와서 CMOS에 덮어쓰기 위해서는 /etc/rc.local을 편집

       # rdate -s time.bora.net
       # clock -w

       을 추가한다.

시스템에 연결된 소켓 정보

   # netstat

최근 시스템 접속자 정보

   # last

네트워크 장치 설정 정보

   # ifconfig

IP 주소 변경 방법 1 , 임시변경

   # ifconfig eth0 down == # ifdown eth0
   # ifconfig eth0 inet <new-ip> netmask <netmask>
   # ifconfig eth0 up == #ifup eth0
   # ifconfig eth0

 

IP 주소 변경 방법 2

   #redhat-config-network      ;에서 설정을 변경한 후 네트웍 서비스 재시작 ( # service network restart) 을 해줘야 한다.

 

IP 주소 변경 방법 3

   /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 vi로 편집     ; 네트웍 서비스 재시작

[출처] 리눅스 시스템 설정과 자원사용 현황|작성자 테슬라

 

이번에는 NFS(Network File System)의 설정에 대해 간단히 정리만 하겠습니다;;

처음 설정 하시는 분들에게는 별로 적합하지 않은 메뉴얼이 될것 같네요.

HOST 서버 설정 ----------------------------------------------------------------------------------------------------
/etc/exports 설정

/home/nfs 192.168.0.0/24(rw,all_squash,insecure,sync,anonuid=99,anongid=99)

첫번째 /home/nfs는 외부에 마운트를 허용할 디렉토리임
두번째 네트워크 주소는 접근을 허용할 호스트 범위임

/etc/sysconfig/nfs 설정
STATD_PORT=4001
LOCKD_TCPPORT
=4002
LOCKD_UDPPORT
=4002
MOUNTD_PORT
=4003


데몬 실행 (ntsysv등에서 기본 실행으로 등록할 것)
[root@Theeye /]# service portmap start
[root@Theeye /]# service nfs start
[root@Theeye /]# service nfslock start


방화벽을 사용시 다음의 포트를 열어준다.
111:tcp 111:udp 2049:tcp 2049:udp 4001-4003:tcp 4001-4003:udp


다음의 명령어로 데몬이 제대로 실행중인지 확인한다.
[root@Theeye /]# rpcinfo -p
   
프로그램 버전 원형   포트
   
100000    2   tcp    111  portmapper
   
100000    2   udp    111  portmapper
   
100011    1   udp    847  rquotad
   
100011    2   udp    847  rquotad
   
100011    1   tcp    850  rquotad
   
100011    2   tcp    850  rquotad
   
100003    2   udp   2049  nfs
   
100003    3   udp   2049  nfs
   
100003    4   udp   2049  nfs
   
100021    1   udp   4002  nlockmgr
   
100021    3   udp   4002  nlockmgr
   
100021    4   udp   4002  nlockmgr
   
100021    1   tcp   4002  nlockmgr
   
100021    3   tcp   4002  nlockmgr
   
100021    4   tcp   4002  nlockmgr
   
100003    2   tcp   2049  nfs
   
100003    3   tcp   2049  nfs
   
100003    4   tcp   2049  nfs
   
100005    1   udp   4003  mountd
   
100005    1   tcp   4003  mountd
   
100005    2   udp   4003  mountd
   
100005    2   tcp   4003  mountd
   
100005    3   udp   4003  mountd
   
100005    3   tcp   4003  mountd
   
100024    1   udp   4001  status
   
100024    1   tcp   4001  status



REMOTE 서버 설정
------------------------------------------------------------------------------------------------
데몬 실행 (ntsysv등에서 기본 실행으로 등록할 것)
[root@Remote /]# service portmap start
[root@Remote /]# service nfs start


다음과 같은 명령어로 마운트 한다.
mount -t nfs -o nolock,tcp 192.168.0.100:/home/nfs /home/nfs

192.168.0.100:/home/nfs는 마운트를 할 원격지 서버아이피와 디렉토리를 정의한다.
마지막 /home/nfs는 마운트를 할 로컬 디렉토리이다.
호스트 서버의 /home/nfs를 현재 호스트의 /home/nfs에 마운트를 하겠다는 뜻이다.