크론탭은 정해진 시간에 반복적인 작업을 해야할 때 사용할 수 있습니다. 


문제는 php 파일을 설정할 때 간혹 include 파일이 필요해서 상대경로로 설정해주면 include 파일을 찾지 못하게 됩니다.


크론탭 작업을 할 때는 전체 경로(홈 디렉토리)를 설정해 주면 문제를 해결할 수 있습니다. 실제 홈 디렉토리 경로가 "/home/habonyphp/public_html/libs/" 이고, libs 폴더 내 파일을 include 해야한다면 슈퍼전역변수을 이용해 가져올 수 있습니다.


 include ($_SERVER['DOCUMENT_ROOT'] . '/libs/get.php');


 include (dirname($_SERVER['SCRIPT_FILENAME']) . '/libs/get.php');


아니면 set_include_path 함수를 이용해 설정할 수도 있습니다.


 set_include_path("/home/habonyphp/public_html/");

 include ('libs/get.php');


새로운 크론을 등록할 때도 전체 홈 디렉토리 경로를 적어줘야 합니다. 

다음은 매일 새벽 1시에 example.php 파일을 실행하라는 내용입니다.


 0 1 * * * php -q /home/habonyphp/public_html/example.php



관련 : [리눅스] cron 사용방법


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

quota 설치


quota 설정은 사용자의 디스크용량을 제한하기 위해 사용하는 기능으로 사용자의 불필요한 디스크사용량이나 무리한 서버사용을 줄일 수 있는 효과가 있습니다. quota 는 리눅스 설치시 기본적으로 설치가 되며 quota 설정을 적용시키기 위해 재부팅이 필요합니다. 혹시 모르니 패키지가 설치되어있는지 다음과 같은 명령어로 확인을 해봅니다.

 # rpm -qa | grep quota

설치가 필요하다면 다음의 명령어로 설치할 수 있습니다. rpm 설치 및 업그레이드, 삭제 관련 설명은 관련글(2011/07/06 - [웹서버/페도라 리눅스] - rpm과 yum 명령어 사용법)을 참고하세요.


 # yum -y install quota
 또는...
 # rpm -Uvh quota-version.i386.rpm

quota 설정을 추가하기 위해 /etc/fstab 파일에 아래 내용을 추가해 줍니다.


 /dev/hda6 /home ext2 defaults,usrquota 1 2


/dev/hda6 은 파일시스템경로이고, /home 은 사용자의 데이터가 저장되는 홈디렉토리의 예입니다. defaulits 만 기재되는 파티션 정보란에 usrquota 라는 설정정보가 포함되어 있지만 사용자가 아닌 그룹으로 하려면 grpquota 로 설정하면 됩니다.


파티션에 설정에 관한 내용을 기재하였으므로 이제 설정을 마무리하기 위해 최상위 디렉토리 /home 디렉토리에 quota.user 파일을 생성하여야 합니다. 다음과 같은 명령어로 파일을 생성합니다.


 [root@admin] cd /home

 [root@admin /home] touch quota.user
 [root@admin /home] chmod 600 quota.user

 [root@admin /home] ls -l


처음 quota 파일은 아무 내용이 없으며 실행권한은 600 으로 하고, root 사용자만 자료 변경권한을 주도록 합니다. test 는 사용자 아이디입니다. 이제 설정을 완료하였으므로 서버를 재부팅시켜 줍니다.


quota 설정


설정기능은 3가지 명령어로 설정작업을 할 수 있는데, 내용은 다음과 같습니다.


 edquota : 사용자별 디스크 사용공간을 제한하는 기능

 quotacheck : 실제 설정의 내용을 반영시키기위한 명령어

 repquota : 실제 사용자에게 디스크사용제한이 어떻게 제한되고 있는지를 확인하는 명령어


edquote 명령어로 디스크공간을 제한되도록 디스크공간을 설정하여 줍니다. 처음 한 계정에 대한 설정을 등록해주면 다른 계정에 동일한 설정값을 쉽게 설정해 줄 수 있습니다.


 # edquota -u test1


다음 그림은 명령 수행후 사용자 용량 설정 그림입니다. soft 는 실제 디스크 용량의 제한을 나타내는 크기이고, 이 용량을 넘을 경우 일정 기간동안 경고 메시지를 출력합니다. 또한 기간이 경과하면 자료의 손실이 발생하므로 이전에 자료를 정리할 필요가 있습니다. hard 는 시간제한사항이 설정되면 적용되는 제한사항으로 디스크 최대용량이 표시됩니다.  단위는 kb 이므로 2048은 2mb 가 됩니다.


 Quotas for user test1:
 /dev/hda6: blocks in use: 20, limits (soft = 2048, hard = 4096)
 inodes in use: 1887, limits (soft = 100, hard = 200)
 ~
 ~
 "/tmp/EdP.aDI2bkQ" 3 lines, 139 characters written


 blocks in use: 20                     현재사용 디스크량(Kbyte)

 soft = 0 soft limit(block)            최대 디스크용량

 hard = 50000 hard limit(block)   최대 디스크용량의 절대치

 inodes in use: 1887                 현재 inode 사용량

 soft = 0 soft limit(inode)            최대 파일(디렉토리)수

 hard = 0 hard limit(inode)         파일(디렉토리)의 절대치


다음 quota -t 옵션은 시간제한 설정을 할 수 있으며 soft, hard 제한을 구분하여 적용 가능하도록 이용됩니다. 설정은 sec(onds), min(utes), hour(s), week(s), month 단위로 표기하여 초, 분 시, 주, 달을 나타냅니다. 시간에 대한 설정 및 변경은 다음의 명령어를 사용할 수 있으며 초기 설정은 7days 입니다.


 # edquota –t
 Grace period before enforcing soft limits for users:
 /dev/hda6:  Block grace period:  7days,  file grace period:  7days


quotacheck 명령어는 설정을 반영하는 명령어입니다. 옵션은 다음과 같습니다.


 -a 옵션: 파일 시스템 사용자의 디스크사용정보를 추가하는 옵션

 -v 옵션: 정보를 표시

 -u 옵션: 사용자정보를 바탕으로 파일 및 디렉토리를 찾는 옵션

 -g 옵션: 그룹정보를 바탕으로 파일 및 디렉토리를 찾는 옵션


quotacheck -avug 옵션을 많이 사용하는데, 이 옵션으로 다음의 결과를 얻을 수 있습니다.


 # quotacheck -avug

 Scanning /home [/home] done

 Checked 6 directories and 17files

 Using quotafile /home/quota.user

 Updating in-core user quotas


위 명령어는 주기적으로 변화하는 사용자의 디스크사용량을 체크하도록 하는 명령어로 디스크정보를 반영하기 위해서는 cron 데몬에 추가하여, 주기적으로 실행하도록 하여야 합니다. 다음은 repquota -a 명령어입니다.


 # repquota -a
 *** Report for user quotas on device /dev/hda6 
 Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
 User            used    soft    hard  grace    used  soft  hard  grace
 ----------------------------------------------------------------------
 root      -- 2126544       0       0           6538     0     0       
 daemon    --  182004       0       0            248     0     0       
 nobody    --  767976       0       0           1496     0     0       
 #200      --  962324       0       0           6831     0     0       
 #502      -- 109895212       0       0         796706     0     0       
 #503      --  277896       0       0            661     0     0       
 #504      --  747108       0       0           4597     0     0       
 #505      --   73168       0       0            383     0     0       
 #506      --   46352       0       0           1255     0     0 


실제 사용자에게 디스크 사용제한이 어떻게 제한되고 있는지를 보여주는 것이며 혹 동일한 조건의 용량제한을 할 경우 계속적 반복작업을 하는 것은 번거로운 것이므로 edquota -p test1 test2 test3 test4 와 같은 형식의 명령어을 사용하면 편리합니다.


 # edquota -p test1 test2 test3 test4
 # repquota -a

  *** Report for user quotas on device /dev/hda6 
 Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
 User        used       soft        hard      grace    used        soft          hard      grace
 ------------------------------------------------------------------------------
 test1    --    16           0             0                       3            0              0       
 test2    --    10     10000       10240                       7      10000         10240       
 test3    --     9      10000       10240                      6      10000         10240    


다음은 quota 에 v 옵션의 결과입니다.


 # quota -v test1
 Disk quotas for user test1 (uid 502):
 Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/hda6 109895212       0       0          796706       0       0


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

리눅스로 시스템을 이용하다보면 시스템이 반드시 안정적으로 운영되지는 않습니다. 외부 침입 공격으로 파일이 삭제될 수 있고, 관리자의 실수로 인해 오작업으로 시스템에 오류가 발생하기도 하고, 다수의 사용자에 의해 실행권한에 따라 파일이 삭제되거나 시스템오류가 생길 수도 있고, 하드웨어 고장으로 문제를 일으키기도 합니다. 그러므로 이러한 문제가 발생하기 전에 미리미리 백업을 받아두어 후일을 준비할 필요가 있습니다.

자료의 양에 따라 주기적으로 준비를 해야 하며 자료의 양이 많을 경우 rsync 데몬으로 백업을 하도록 하고, 방문자수가 적은 시간대, 즉 새벽시간에 백업을 받는것도 중요 포인트라 할 수 있겠습니다. 하지만, 시스템설정파일 및 사용자 정보와 각종 시스템운영과 관련된 파일은 따로 보관하는 습성을 가져야 합니다.

tar를 이용한 백업


아래는 tar 명령어를 이용하여 백업된 파일내용입니다.

 bak01.tar.gz            bak02.tar.gz    bak03.tar.gz    data.12.04.02.tzr.gz data.12.05.05.tzr.gz
 data.12.06.02.tzr.gz  etc.tar.gz        home01.tar.gz home02.tar.gz         home03.tar.gz
 home04.tar.gz          home05.tar.gz home06.tar.gz home07.tar.gz         home08.tar.gz

tar를 이용한 백업방법이나 명령어는 관련글(2011/07/05 - [웹서버/리눅스] - 리눅스 파일 압축명령어)를 참고하시면 되겠습니다.

아파치 웹서버를 백업하는 경우는 파일시스템 오류나 데몬이 정상적으로 작동하지 않을 경우를 대비하기 위함입니다. 아무리 좋은 시스템이라도 장애는 생길 수 있으므로 백업은 받아 두는 습관을 가져야 할 것 같습니다.

백업된 파일만 보관하고 있다면 다시 복구해서 사용가능하지만 경우에따라서 다른 방법을 이용하여 복구할 때도 있을 것입니다. 예를 들자면, 선로의 장비나 속도, 시간대, 서비스 개선사항 등 안전하면서도 빠르게 복구할 수 있는 방법으로 복구하여야 합니다.

백업장치는 근래에 들어서 하드 디스크가 저렴하면서 고용량을 지원하게 되었으므로 IDE 나 SATA 를 이용한 백업도 괜찮다 생각됩니다. 물론 백업파일의 보유기간이 단기일때의 예입니다. 최근의 자료만을 유지할때의 백업이나 이동식 랙을 서버에 장착 후 정비시간에만 시스템을 정지하고, 하드를 추가하면 백업이 가능합니다. 자료가 대용량일 경우 문제가 되지만 이동식 랙 잠금 장치를 잘만 이용하면 서버에서 제거하지 않고 백업 자료의  업데이트가 가능합니다.

주의점이라면 한개의 백업 파일이 2기가를 넘지 않아야 하는데, 만약 2기가를 넘게 될 경우 파일 생성이 되지 않는다는 것이며 또한 안전한 운영을 위해 파일 시스템도 reiserfs 나 ext3을 이용하는 것을 권장할만합니다.

rsync 데몬을 이용한 백업


rsync 데몬은 백업 서버를 따로 구축하여 원격으로 현재 서비스 중인 서버의 자료를 받아 백업하는 방법을 말합니다. 신뢰된 서버에 자료를 전송하도록 허가하는 방식으로 이용되며, 주로 거대한 서비스를 여러대의 서버로 부하를 분산하는 클러스터링에 이용하기 위해 많이 이용하는 방법입니다.

따라서 rsync 는 필요한 디렉토리 및 필요한 파일을 지정하여 자료를 백업할 수 있으며, 서비스 이용에 따라 변화하는 자료를 실시간으로 계속 백업을 가능하게 할 수 있으므로 무엇보다도 서비스에 많은 영향을 주지 않으면서도 환경을 원활하게 유지할 수 있는 장점을 가질 수 있겠습니다.

rpm 명령어를 이용하면 rsync 패키지가 설치되어 있는지를 확인할 수 있는데 설치가 되어 있지 않다면 http://pkgs.org/download/rsync 링크에서 환경에 맞는 버전을 다운받아 설치 하도록 합니다. rpm 명령어는 관련글(2011/07/06 - [웹서버/리눅스] - rpm과 yum 명령어 사용법)을 참고해 주시면 됩니다.

rsync 를 rpm으로 설치하였다면 rsync 설정파일을 완료해줄 필요가 있습니다. 정상적으로 서비스가 가능한지 먼저 /etc/services 파일을 열어 첫 머리 rsync 부분에 주석이 있을 경우 주석을 제거해 주도록 합니다. 참고로 rsync 는 873 포트를 사용합니다.

 phonebook 767/tcp      # network phonebook
 phonebook 767/udp   
 rsync 873/tcp             # rsync
 rsync 873/udp

다음으로 rsyncd.conf 파일을 열어 설정해둘 필요가 있습니다. 다음의 명령어로 파일의 위치를  찾을 수 있습니다.

 rpm -ql rsync

보통 설정파일이 위치하는 디렉토리는 etc/rsyncd.conf 에 위치하지만 처음 설치시 rsyncd.conf 파일은 존재하지 않습니다. 따라서 etc/ 폴더에 rsyncd.conf 파일을 생성하여야 하고, 내용을 다음과 같은 방식으로 작성합니다.

 [web]
 path = /home/www
 comment = web
 uid = nobody
 gid = nobody
 use chroot = yes
 read only = yes
 hosts allow = xxx.xxxx.xxx
 max connections = 3
 timeout 600

 위 설정 참조는 아래를 참고하시면 됩니다.

 [web] 항목: rsync 서버의 자료 목록의 이름표를 의미
 path 항목: 홈디렉토리 경로
 comment 항목: 서비스 제공에 대한 설명
 uid 항목: 파일의 사용자 권한, 기본값 nobody
 gid 항목: 그룹권한, 기본값 nobody
 use chroot 항목: 상위 디렉토리이 액세스를 제한하는 설정, 보안상 yes
 read only 항목: 읽기만 가능하게 설정, 자료의 변경을 방지
 hosts allow 항목: 자료를 원격으로 수신할 서버 도메인이름이나 ip를 입력
 max connections 항목: 동시접속 최대 접속허가 수
 timeout 항목: 자료수신이 600초동안 응답이 없으면 연결해제

이제 설정항목을 완료했으면 자료를 수신가능하도록 rsync 데몬을 수행해야 합니다. /etc/xinet.d 디렉토리에 rsync 파일이 존재하는지 확인하고, 없다면 다음과 같이 설정 파일을 생성합니다. xinet 데몬에 운영되기 위한 /etc/xinet.d 디렉토리의 rsync 파일을 설정하는 것입니다.

 # default: off
 # description The rsync server is a good addition to am ftp server . as it \
 # allows crc checksumming etc.
 service rsync 
 {
            disable           = no
            socket_type     = no
            wait                = no
            user               = root
            server             = /usr/bin/rsync
            server_args     = --daemon
            log_on_failure += USERID
 }

만약 초기파일이 존재한다면 disable 항목이 yes로 되어 있다면 위와 같이 no로 바꾸어 주어야 합니다. 설정을 완료하면 "service xinetd restart" 로 서비스를 재시작해줍니다. 이제 다음의  명령어로 설정이 정상적인지 확인을 해봅니다.

 # rsync -avz 182.210.87.146::home .

위의 명령어와 옵션은 #rsync 서버의 home으로 지정된 자료를  . 에 저장하라는 지시로 자세한 옵션과 설명은 다음 표를 참고하면 되겠습니다.

 rsync -avz [접속호스틈명]::[자료명] [자료받을 디렉토리명]

 -v 옵션: verbose 자세한 설명을 출력하는 옵션
 -a 옵션: archive mode 옵션 -rlpfg 의 의미와 동일하게 사용됨
 -z 옵션: compress 자료를 전송 시 압축하여 전송
 -r 옵션: recursive 하위 디렉토리까지 포함하여 자료를 수신
 -l 옵션: 심볼릭 링크를 다시 생성함
 -p 옵션: 실행권한을 클라이언트 서버로 전송시 최신정보로 갱신함
 -t 옵션: 파일, 디렉토리의 변경시간을 전송, 옵션 생략시 현재 시간으로 파일이 생성됨
 -g 옵션: 현재 수신한 사용자의 그룹으로 그룹 변경함
 -delete 옵션: 클라이언트가 수신할 때 서버에 존재하지 않는 파일이 클라이언트에 존재하면 삭제합니다.
                    이 옵션을 사용할 경우 서버의 자료와 동일하게 클라이언트에 유지됩니다. cron 데몬에 명령
                    어를 사용할 경우 불필요하게 하드디스크공간이 낭비하는것을 방지할 수 있게 됩니다.


cron 데몬의 설명은 관련글(2011/06/30 - [웹서버/리눅스] - 리눅스 / cron 사용방법)을 참고하면 됩니다.

 #rsync -avz 192.168.0.2::www /backup
 [www 으로 지정된 자료를 /backup에 저장합니다.]

 # rsync -avz habonyphp.com::home/uid /backup/myid
 [home/uid 로 지정된 자료를 /backup/myid 에 저장합니다.]

여기서 주의할 점은 home/uid 와 home/uid/ 의 차이입니다. 끝에 /가 있으면 uid 디렉토리 내부의 자료만을 수신하고, 끝에 / 없이 home/uid로 지정하면 uid 디렉토리를 포함하여 자료를 수신하는 차이를 가집니다.


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

  • 손남일 2015.07.30 14:50  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 글 보고 많이 배웁니다~ 질문이 있습니다.
    rsync를 사용한 백업은 실시간으로 이루어지는 것인가요? 마치 드랍박스나 구글 드라이브 처럼요. 아니면 특정한 때에 동기화를 시키나요? 만약 실시간으로 동기화를 시킨다면, 메모리에 부담은 안가나요?

이 파일은 서로 다른 두 운영체제의 멀티 부트가 가능하도록 해줍니다. lilo.conf 파일을 열어 보면 보통 다음과 같습니다.

 boot=/dev/hda
 map=/boot/map
 install=/boot/boot.b
 prompt
 timeout=50
 message=/boot/message
 lba32
 default=linux
 image=/boot/vmlinuz-2.2.17-8wl2
           label=linux
           read-only
           root=/dev/hda2
 other=/dev/hda1
           label=win
           table=/dev/hda

boot 항목은 부팅시 현재의 시스템에 리눅스가 설치된 하드 디스크 장치 명을 작성한 곳입니다. hda의 a는 첫번째 하드 디스크이고, hdb의 b는 두번째 하드 디스크입니다. hda1은 첫번째 하드 디스크의 파티션 1, hda2는 파티션 2를 말합니다.

timeout은 부팅시 대기 시간을 설정합니다. 5초동안 아무런 작업을 하지 않으면 자동으로 default 항목 리눅스로 부팅하게 됩니다. default 항목은 초기 부팅시 키보드 조작이 없으면, 부팅되는 운영체제를 지정하는 항목입니다.

관련글: 2011/07/03 - 리눅스 / GRUB 부트로더
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

현재 메모리에 있는 데이터를 하드디스크에 저장하는 명령어입니다.

예제 (ex #1
 sync
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

특정  ip, 서버의 위치경로를 추적하는 명령어로 현재 접속경로를 보여줍니다.

 traceroute [ip 또는 도메인 명]
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

df 명령어는 시스템의 파일정보와 사용량을 백분율로 표기합니다.

 # 기본 명령어로 출력합니다.
 df

 # -T 옵션은 파일 시스템 유형을 출력합니다.
 # -a 옵션은 fstab 에 등록된 모든 파티션 정보를 출력합니다.
 df -Ta
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

리눅스의 파일시스템(포맷)을 만드는 명령어로 파일 시스템을 따로 지정할 수 있습니다.

 # mkfs -t [파일 시스템 타입] [장치명]
 # -t 옵션은 type 입니다.
 mkfs -t ext2 /dev/hda3

파일 시스템을 만들기 전에 파티션 정보를 확인해야 합니다. 하드디스크를 추가할 때는 반드시 파티션 정보를 생성한 다음 파일 시스템을 생성하고, 마운트작업을 거쳐 사용하여야 합니다.

리눅스에서는 하드디스크를 파일명으로 인식하고, 때문에 하드디스크를 추가할 경우 /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd 순으로 약 4개의 디스크를 추가할 수 있습니다.
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

DU 명령어는 현재 디렉토리의 사용량을 Kbyte 로 표기합니다. 기본 단위는 Kbyte 단위입니다.

 # /home 디렉토리의 사용량을 kbyte 단위로 보여줍니다.
 du /home

 #  디스크 사용량의 전체 리스트를 보여줍니다.
 du -a
 du --a

 # 디스크의 용량을 Mbyte 단위로 보여 줍니다.
 du -m
 du --megabyte

 # 현재 디렉토리(/home)의 용량을 사용자마다 Mbyte 단위로 표시합니다.
 du -skm *
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

rpm은 redhat package maneger 의 약어로 간단히 패키지를 말합니다. "패키지명-버전-릴리즈.아키텍쳐.rpm"의 파일이며 아키텍쳐는 CPU 계열을 의미합니다. 레드핫 패키지관리자로 프로그램의 설치, 삭제, 업그레이드 작업을 해줍니다.

 # 설치모드 -i 
 rpm -ivh mc-4.5.54-3w1.i386.rpm

 # 업그레이드 모드 -U
 rpm -Uvh mc-4.5.42-10az3 

 # 삭제모드 -e

 # ex #1
 rpm -e mc

 # ex #2
 # 의존성 문제로 삭제가 안될때 쓰는 옵션입니다.
 rpm -e --nodeps mc

 # 질의 모드 -q
 # 설치된 패키지 전체목록을 페이지당 출력.

 # ex #1
 rpm -qa | less

 # ex #2
 # 패키지 이름중 mc가 들어간 패키지이름을 모두 출력합니다.
 rpm -qa | grep mc

 # 현제의 패키지가 의존하는 패키지, 라이브러리 목록을 출력합니다.
 rpm -qR 패키지명

 # rpm 패키지 관리 데이터베이스를 다시 생성합니다.
 rpm --rebuilddb 

 # 패키지에 대한 정보를 표시합니다.
 rpm -qi 패키지명

 # 현재 패키지에 포함된 모든 파일명을 출력합니다.
 rpm -ql 패키지명

 # 검증옵션. rpm 데이터베이스와 원본 패키지의 내용을 비교합니다.
 rpm -Va

관련글: 2011/07/06 - rpm과 yum 명령어 사용법
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요


netstat 명령어는 네트윅 연결상태를 확인합니다. 현제 접속된 포트, 서비스 상황, ip나 아이디를 확인합니다.

 netstat [옵션]

사용할 수 있는 옵션은 다음 표와 같습니다.

 옵션  설명
 r  라우팅 테이블 정보를 출력합니다.
 a  연결된 소켓의 정보를 출력합니다.
 c  리스트를 출력합니다.
 p  프로세스 id와 데몬명을 출력합니다.
 s  프로토콜의 네트워크 통계를 출력합니다.
 i  인터페이스 테이블을 출력합니다.

예제 (ex #1
 netstat -rac
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

 mount 명령어


시스템에 플로피 디스크나 하드디스크
, 시디룸을 mount, 즉 시스템이 인식하게 하는 명령어입니다. 옵션은 다음 표를 사용할 수 있습니다.

 -t [파일시스템 유형]   # 마운트할 파일시스템 유형을 선택합니다.
                                  # ex. Msdos, ext, ext2, vfat, iso9660, ntfs, reiserfs

 -v    #
마운트된 상태를 출력합니다.
 -f    # 마운트 할수있는지만 체크합니다.
 -r    # 읽기만 가능하게 마운트합니다.
 -w   # 읽기, 쓰기가 가능하게 마운트합니다. 이 옵션을 생략시 읽기, 쓰기를 허용합니다.

예제 (ex #1
 # ex. mount -t type [장치명] [대상 디렉토리]
 mount -t ext2 /dev/hdc1 /home/habony
 mount /dev/hda1
 mount -t ntfs /dev/hda1 /mnt/winNT
 mount -t fat32 /dev/hda2 /mnt/win98

umount 명령어


시스템에서 mount 명령으로 인식된 장치들, 플로피디스크, 시디룸, 하드디스크를 인식하지 못하게 해줍니다. 옵션은 다음 표를 사용할 수 있습니다.


 -v   # 자세한 설명을 출력합니다.
 -t [파일 시스템 타입]   # 지정 파일 시스템에 적용합니다.
 -n   # /etc/mtab 파일을 갱신하지 않도록 합니다.

예제 (ex #2
 umount /mnt/cdrom
 umount /mnt/floppy

 # habony
사용자 디렉토리를 언마운트 시킵니다.
 umount /home/habony

 #
마운트된 /user 디렉토리를 언마운트 시킵니다.
 umount /user

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

리눅스 파일시스템을 점검하는데, 주로 슈퍼블록 및 파일 시스템의 오류를 수정합니다. 옵션은 다음 표와 같습니다.


-t # 점검할 파일 시스템을 점검합니다.

-a # 자동복구 기능, 사용시 자료 손실 우려가 있습니다.


이 명령어를 사용하기 전에 umount를 권장하는데, 가능하면, / 파티션을 제외한 파티션 점검시 umount 해 둡니다.


시스템을 운영할 경우, 다수의 사용자에 의해 쓰기, 삭제 작업이 빈번히 이뤄지므로 주기적으로 블록에 오류가 없는지 점검하길 권합니다.


예제 (ex #1

fsck /


fsck /dev/hda0


fsck /home



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

이 명령어는 시스템을 종료할 때 사용되며, 옵션은 다음 표를 사용할 수 있습니다.


-k # 로그인 사용자에게 shutdown메시지를 보내지만, 실제 종료하지는 않습니다

-r # shutdown 후 리부트합니다.

-f # 리부트하나, 빠른 재부팅합니다.

-h # shutdown후 시스템을 종료합니다.


예제 (ex #1

# 즉시 시스템을 종료합니다.

shutdown -h now


# m 분 뒤에 시스템을 종료합니다.

# ex. Shutdown -h +10, 10분뒤에 종료합니다.

shutdown -h +m


# hhmm분 뒤에 시스템을 종료합니다.

shutdown -h hh:mm


예제 (ex #2

# 시스템을 종료합니다.

halt


# 시스템을 재부팅합니다.

reboot

 

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

리눅스설치시 다양한 디렉토리가 설치될 것인데, 각각 분류되는 디렉토리의 용도에 대해 알아 둘 필요가 있습니다

 # 리눅스 기본 명령어들이 들어 있는 디렉토리
 /bin

 #
용량이 없는 파일로 구성된 가상의 디렉토리
 /dev

 #
리눅스 커널이 위치하는 디렉토리, 부팅시 필요한 시스템지원 파일이 있습니다.
 /boot

 #
시스템의 설정파일이 위치하며, 실은 모든 응용프로그램의 설정파일이 포함됩니다.
 /etc
 
 #
 사용자 홈 디렉토리, 일반 사용자 계정 생성시 홈 디렉토리가 만들어지는 곳입니다.
 /home

 #
시스템 라이브러리가 위치하는 디렉토리입니다.
 /lib

 #
시디룸이나 USB장치를 인식시키기 위한 디렉토리, mount명령시 이용됩니다.
 /mnt

 #
상용프로그램을 설치하기 위해 설정되어 있는 디렉토리입니다.
 /opt

 #
시스템의 하드웨어 정보가 위치하는 디렉토리로서
 # 현재 수행중인 프로세서의 정보를 담게 되며,
 # 현재 메모리에서 처리중인 프로그램에 대한 정보가 담겨지게 됩니다.
 /proc

 #
시스템관리자 root 홈 디렉토리, 보안상 따로 분류됩니다.
 /root

 #
시스템관리자 root 가 사용하는 관리 명령어가 들어 있습니다.
 /sbin

 #
임시 폴더
 /tmp

 #
프로그램 추가시 설치되는 디렉토리로 보통 /usr/local 밑으로 많이 설치됩니다.
 # 이곳에 추가 설치 프로그램 및 라이브러리 등이 포함됩니다,
 /usr

 #
응용 프로그램 설치시 일반 사용자 명령어가 추가 되는 디렉토리
 /usr/bin

 #
응용프로그램 설치시 관리자가 사용하는 명령어가 추가되는 디렉토리
 /usr/sbin

 #
시스템 관련 스풀, 메일등이 위치하는 디렉토리로 자료의 변동이 많은 디렉토리입니다.
 /var

 #
시스템 로그 파일이 생성되는 디렉토리입니다.
 /var/log

 #
서버의 메일 사용자에게 메일을 전달하기 위해 사용되는 임시 메일 보관장소입니다.
 /var/spool/mail
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

이 명령어는 사용자를 변경합니다. root 시스템 관리자나 일반 계정사용자로 변경하여 작업할 수 있도록 해 줍니다.

 # 시스템 관리자(root)로 로그인합니다.
 # 관리자 패스워드를 만들지 않다면, 새로 만들 것을 묻는 메시지가 나옵니다.
 su -
 su admin

 #
일반 계정 변경
 su 일반계정

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

rpm 사용방법:

 

rpm은 패키지라고 부르며, 윈도우의 setup.exe 와 비교해도 되는데, 이는 새로운 프로그램을 설치하는 자동 설치프로그램이라 할 수 있습니다.

 rpmdb-redhat.9.20030313.i386.rpm

 패키지이름.버전.릴리즈번호.아키텍쳐.rpm 으로 해석을 하면 다음과 같습니다.
 #############
 rpmdb-redhat 은 패키지 이름
 9 는 버전
 20030313 은 릴리즈 번호
 i386 은 아키텍쳐


일반적인 설치방법은 다음과 같습니다.

 rpm -Uvh 패키지 파일
 rpm -Uvh rpmdb-redhat.9.20030313.i386.rpm


 U: 패키지가 설치되어 있지 않다면, 일반적인 설치를 하고, 아니면 업그레이드 진행.
 v: 설치과정을 화면에 보여줌.
 h: 설치진행과정을 # 표시로 화면에 보여줌.


아키텍쳐에 올 수 있는 것은 다음 표와 같습니다

 i386, i486, i586, i686 인 인텔 또는 AMD계열
 alpha/sparc/ia64 인 해당 CPU
 src 소스파일 패키지, 설치후 별도로 컴파일 해야합니다.
 noarch 모든 CPU에 설치가능.


rpm 삭제

 rpm -e 패키지 파일


rpm 질의

 # 시스템에 패키지가 설치되어 있는지 확인.
 rpm -qa 패키지 이름 

 # 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인.
 # (ex. rpm -qf /usr/bin/ftp
 rpm -qf
파일의 절대경로 

 # 해당 패키지에 어떤 파일들이 포함되었는지 확인.
 rpm -ql
패키지 이름 

 # 설치된 패키지의 상세 정보를 보여줌.

 rpm -qi
패키지 이름


yum 사용방법:

 

yum은 인공지능적인 툴로 인터넷을 통하여 자동적으로 설치해주는 기능으로 분명 rpm이 수동적인 반면 보다 편리한 yum을 사용하길 권장됩니다.

저장소의
URL/etc/yum.repos.d/ 디렉토리의 파일에 저장됩니다.

 # 설치하기
 yum install 패키지 이름

 # y
옵션은 설치시 묻지 않고 설치 진행함.
 yum -y install 패키지 이름

 #
업데이트 가능 목록 확인
 yum check-update

 #
패키지 업데이트
 yum update 패키지 이름

 #
패키지 삭제
 yum remove 패키지 이름

 #
패키지 정보확인
 yum info 패키지 이름

 #
로컬 파일로 설치
 yum localinstall 패키지 이름

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

파일 압축:

gzip 명령

 # 파일 압축
 gzip 파일명

 #
압축 파일 해제
 gzip -d 파일명.gz
 gunzip 파일명.gz

bzip2
명령

 # 파일 압축
 bzip2 파일명

 #
압축 파일 해제
 bzip2 -d 파일명.bz2
 bunzip2 파일명.bz2

 

파일 묶기:


윈도우의 압축파일은 aaa, bbb, ccc, ddd 파일을 묶어서 eee.zip 이라는 파일 1개로 압축이 됩니다. 다시말해 zip 압축파일은 파일묶고, 파일 압축하는 과정을 한꺼번에 해주는 것인 반해, 리눅스는 파일 묶는 옵션이 따로, 파일 압축하는 옵션이 따로 있어서 조금 불편할 수도 있습니다. 그래서 만들어진 tar 명령어 추가 옵션입니다.

tar
은 파일을 묶어 주거나 파일을 풀어 줍니다. 자주 사용 되는 명령어이므로 필히 숙지할 필요가 있으니 꼭 암기할 필요가 있습니다. tar옵션은 다음 표와 같습니다.

 c: 새로 묶음
 x: 묶인 파일을 풀어줌.
 t: 묶음을 풀기 전에 묶인 경로를 보여줌.
 f: 필수 옵션으로 묶음 파일명 지정.
 v: 파일을 묶거나 풀리는 과정을 보여줌.
 z: tar+gzip, 파일 묶어 gzip으로 압축하기
 j: tar+bzip2, 파일 묶어 bzip2로 압축하기


예제
(ex #1
 # /home/userid내 파일을 묶어줌.
 
tar cvf test.tar /home/userid 

 # /home/userid내 파일을 묶어 gzip으로 압축하기
 tar cvfz test.tar /home/userid 

 # 파일 확인하기.
 tar tvf test.tar 


 # 파일 풀기
 tar xvf test.tar 


 # gzip압축파일 해제, tar묶인 파일 풀기.
 tar xvfz test.tar 

 # bzip2압축파일 해제, tar묶인 파일 풀기.
 tar xvfj test.tar 


다음은 백업시 많이 사용되는 명령어입니다.

 tar pcvzf [압축 파일명] [디렉토리 또는 파일명]

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

파이프(pipe)

| 문자를 사용하여, 두 프로그램을 연결해주는 기능입니다.

예제(ex #1
 ls -l /etc | more
 # more명령은 페이지가 많을 경우 페이지를 하나씩 출력하라는 뜻입니다.


필터(filter)


필요한 것만 걸러주는 명령어로 grep, tail, wc, sort, awk, sed 이 있습니다.

예제(ex #2

 # ps는 현재 프로세서의 상태를 확인하는 명령.
 ps -ef | grep <프로세스이름>
 pa -ef | grep bash
 # bash 글자가 들어간 프로세스만 출력.


kill 명령어는 프로세스를 강제로 종료하는 명령어로 "-9"옵션을 사용합니다.

예제(ex #3

 kill -9 <프로세스이름>

atree 명령어는 부모프로세서와 자식프로세서의 관계를 트리로 보여 줍니다.

리다이렉션(redirection)

표준 입출력의 방향을 바꿔 줍니다.

>는 파일에 작성, >>는 파일에 이어서 작성, <는 화면에 프린터합니다.

예제(ex #4
 # 결과물를 화면에 프린터하지 않고, test.txt파일로 저장합니다,
 ls -l > test.txt

 # 결과물을 화면에 프린터하지 않고, test.txt파일에 내용을 이어서 작성합니다.
 ls -l >> test.txt 

 # 파일을 정렬해서 화면에 출력합니다.
 sort < test.txt 

 # 파일을 정렬해서 test2.txt 파일에 작성합니다.
 sort < test.txt > test2.txt

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

리눅스를 사용하기 위해 익혀야할 기본명령어가 있습니다. 다음 명령어는 자주 사용되는 것으로 필히 익혀야할 명령어인데, ls, cd, pwd, rm, cp, touch, mv, mkdir, rmdir, cat 가 그것입니다.

ls
는 도스 dir과 같은 기능으로 디렉토리의 목록을 볼 수 있습니다.

예제 (ex #1

 # 현재 디렉토리의 목록을 보여줌
 ls                                               

 # 현재 디렉토리의 목록과 숨김파일을 보여줌
 ls -a                                           


 # 현재 디렉토리의 목록을 잣하게 보여줌
 ls -l                                            


 # 현재 디렉토리의 확장자 txt파일인 목록을 보여줌
 ls *.txt                                       


 # /root 디렉토리의 a로 시작하는 목록을 보여줌
 ls -l /root/a*                              


cd
는 디렉토리 이동명령어입니다.

예제 (ex #2

 # 현재 사용자의 홈 디렉토리로 이동
 cd                                               

 # 상위 디렉토리로 이동
 cd ..                                            


 # root 디렉토리로 이동
 cd ~root                                     


 # 절대경로인 /home/myid 로 이동
 cd /home/myid                            


 # 상대경로로 이동 
 cd ../home/myid                          


pwd
는 현재 절대경로를 출력합니다.

예제 (ex #3

 pwd


rm
은 파일이나 디렉토리의 삭제명령어입니다. 삭제시 디렉토리나 파일인 삭제 권한이 있어야 합니다.

예제 (ex #4

 # abc.txt 파일삭제
 rm abc.txt               
               

  # -i 옵션은 삭제시 확인함
 rm -i abc.txt                           


  # 디렉토리 삭제
 rm -r abc                               


  # 디렉토리와 하위 디렉토리, 파일을 강제로 삭제
 rm -rf abc                              


cp
는 파일이나 디렉토리를 복사합니다. 그리고 복사 성공시 사용자의 소유가 됩니다.

예제 (ex #5

 # abc.txt파일을 abc.bak파일로 복사
 cp abc.txt abc.bak                  

 # abc 디렉토리를 habony 디렉토리로 복사
 cp -r abc habony                   


touch
는 파일 수정 시간을 강제로 현재 시간으로 수정합니다. 파일이 없으면 빈 파일을 만듭니다.

예제 (ex #6

 # 파일의 수정 시간을 현재 시간으로 수정합니다.
 touch abc.txt                        


mv
는 파일이나 디레토리의 이름변경, 이동 명령어입니다.

예제 (ex #7

 # aaa, bbb, ccc 파일을 ddd디렉토리로 이동
 mv aaa bbb ccc ddd             

 # 이름변경
 mv abc.txt habony.txt           


mkdir
새로운 디렉토리 생성 명령어 입니다.

예제 (ex #8

 # abc 디렉토리를 만듭니다.
 mkdir abc                           

 # abc디렉토리, 그 아래 하위 디렉토리 def를 만듭니다
 mkdir -p abc/def                 
.


rmdir
은 디렉토리 삭제명령어 입니다.

예제 (ex #9

 # abc 디렉토리를 삭제합니다.
 rmdir abc                         


cat
는 텍스트로 작성된 파일을 화면에 출력합니다.

예제 (ex #10

 cat abc.txt

 

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

부트로더의 역할은 부트 정보를 사용자가 임의로 변경하여 부팅할 수 있고, 부트정보가 올바르지 않더라도 수정이 가능하여, 다른 운영체제와 멀티부팅이 가능한 특징을 가지고 있습니다.

이는 커널의 경로와 파일명만 알고 있으면 부팅이 가능합니다.

GRUB의 설정파일은 /boot/grub/grub.conf 이며, /etc/grub.conf 는 링크파일입니다. 페도라 서버파일의 다음과 같이 설정이 가능합니다,

 default=0
 timeout=5
 splashimage=(hd0,0)/boot/grub/splash.xpm.gz
 hiddenmenu
 title Fedora Core (2.6.11-1.1369_FC4)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.11-1.1369_FC4.img
 title Windows XP
        rootnoverify (hd0,2)
        chainloader +1

default=0 # 기본적으로 부팅되는 엔트리 번호로 0이 페도라, 1이 윈도우 순번입니다.

timeout=5 # 5초동안 어떤 작업을 하지 않으면, "default=0"순으로 부팅이 됩니다.

splashimage=(hd0,0)/boot/grub/splash.xpm.gz # GRUB 메뉴 부팅이미지 파일을 지정한 부분입니다.

hiddenmenu # 기본적으로 부트로더를 숨김, 삭제하면 GRUB 부트로더 화면 처음에 보입니다.

"root (hd0,0)" # 하드 장치 파티션 0첫번째인 "/boot" 파티션이 저장된 장치를 의미합니다.

"root=LABEL=/"은 레이블 이름을 사용한 것으로, "root=/dev/had1"으로 작성해도 동일합니다.

"rhgb"는 "RedHat Graphic Booting"의 약어이며, "quiet"는 부팅시 메시지를 화면에 출력하지 않도록 설정합니다.

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

주기적 반복적 작업이 필요할때 사용하는 기능이 cron입니다.


관련된 데몬은 crond으로 /etc/crontab 파일입니다.


crontab파일을 열어 보면 다음과 같습니다.


 분 시 일 월 요일 권한  실행         디렉토리
 01  *   *   *    *   root  run-parts /etc/cron.hourly
 02  4   *   *    *   root  run-parts /etc/cron.daily
 03  4   *   *    0   root  run-parts /etc/cron.weekly
 04  4   1   *    *   root  run-parts /etc/cron.monthly


hourly은 매 시간마다, dally는 매 일마다, weekly는 매 주마다, monthly는 매 월마다, 파일을 실행하라는 뜻으로 hourly 디렉토리에 실행가능한 파일을 넣어 놓는다면 매 1분마다 모든 시에, 모든 일에, 모든 월에, 모든 요일에, root 권한으로 hourly디렉토리의 파일을 실행하게 합니다.

요일의 0은 일요일이란 뜻으로 0~6 까지 일요일~토요일까지를 말합니다.

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요