'Study...★/Operationg System'에 해당되는 글 5건

  1. 2010.09.27 cpio 옵션 (1)
  2. 2010.04.27 Linux SSH 접속 초기문구 변경
  3. 2010.04.21 SSH root 접근 제한
  4. 2010.04.20 VM ware Network 설명
  5. 2009.07.07 Crontab 설정

CPIO 옵션
 
i     압축해제하라는 옵션
o    압축 생성 옵션
p    표준입력에서 파일명을 읽는다.
B    5120 bytes블럭단위로 입출력한다.
   아스키 형식으로 헤더정보를 읽고 쓴다.
d    없는디렉토리는 생성한다.
   기존파일과 겹치면 덮어쓰지 않는다.
   파일의 변경시간을 그대로 유지한다.
   파일명 목록을 출력한다.
h    헤더의 형식을 tar와 같이 읽고 쓴다.
   장치파일도 읽고 쓴다.
 
CPIO 파일 만들기
 
cpio 를 이용한 특정 확장자 파일만 압축하기.
# find . -name '*.c' -print | cpio -o > data.cpio
 
# ls | cpio -o > ../test.cpio

 
CPIO 파일 풀기
 
-i cpio로 백업한 data를 restore 한다
-o 출력 - 묶을때
-p 통과모드
 

-d restore중 필요한 디렉토리를 자동으로 생성시킨다
-m 백업 되있는 data들의 날짜, 시간을 그대로 유지한다
-v verbose
 
# cpio -idmv < test.cpio

# cpio -i < data.cpio
# cpio -dmvi < example.cpio
# cpio -dmvi < /root/test.cpio
 
 
gz으로 압축되어 있는것을 풀기
 
예1:
# gunzip targetfile.cpio.gz
# cpio -idmv < targetfile.cpio
 
예 2:
# zcat targetfile.cpio.gz | cpio -idmv
 
 
압축 하여 CPIO 만들기
 
tar 를 이용한 특정 확장자 파일 압축하기 (리눅스)
find . -name "*.c" | xargs tar -cvf soure.tar
xargs 를 파라미터 수가 제한적이어서, 파일수가 많으면 불가능함.
 
cpio로 파일 옮기기

한 디렉토리 또는 파일시스템에서 다른 디렉토리 또는 파일시스템으로 옮겨야 할 대량의 파일이 있을 경우 다음의 명령을 이용

# find /old_directory -depth | cpio -pdmv /new_directory

이 명령은 소유자와 권한, 디렉토리 구조를 유지하면서 지정한 old_directory 밑의 모든 파일을 new_directory로 옮긴다.
 
# cd src_dir_name
# find . -depth -print | cpio -pudm target_dir_name

'Study...★ > Operationg System' 카테고리의 다른 글

cpio 옵션  (1) 2010.09.27
Linux SSH 접속 초기문구 변경  (0) 2010.04.27
SSH root 접근 제한  (0) 2010.04.21
VM ware Network 설명  (0) 2010.04.20
Posted by 달콤한녀석

댓글을 달아 주세요

  1. mug896

    find . -name "*.c" -print0 | tar -cvf source.tar --null -T -

    2015.06.08 08:19 [ ADDR : EDIT/ DEL : REPLY ]


SSH 접속이 잘 되지 않아서 다른 내용을 찾다가 발견한 사항이다.

SSH에 접속하면 초기에 뭐라고 주저리 주저리 뜨는걸 볼 수 있다..
그 부분을 내가 작성하고 싶은 문구대로 작성을 해보도록 하자..

핵심은  /etc/motd  파일을 수정하는것이다...

$ >  vi /etc/motd

=====================================

  ** Rad Hat Enterprise Linux 4 **

=====================================

이렇게 설정하고 저장한 후 새롭게 SSH을 실행하니 정상적으로 반영된 사항이 보여지는것을 볼 수 있다 ^ㅡ^*

'Study...★ > Operationg System' 카테고리의 다른 글

cpio 옵션  (1) 2010.09.27
Linux SSH 접속 초기문구 변경  (0) 2010.04.27
SSH root 접근 제한  (0) 2010.04.21
VM ware Network 설명  (0) 2010.04.20
Posted by 달콤한녀석

댓글을 달아 주세요

ssh 접근시  root권한은 보안상 문제로  슈퍼 user이므로  local계정 접근 후 su 명령을 통하여 접근하다록 한다.
어느 계정을 통해 root계정으로 접근했는지 확인하기 위해서라고 한다..
추후 문제 발생시 히스토리를 추적하기 위하여..

그럼 어떻게 설정하여야 하는가에 대해서 살펴보도록 하자

$ vi /etc/ssh/sshd_config

# Authentication:
# LoginGraceTime 2m
PermitRootLogin no
# StrictModes yes
# MaxAuthTries 6

PermitRootLogin 옵션을 no로 설정하게 되면 ssh로 접근시 root권한으로 접근이 되지 않는것을 확인 가능하다

Default값은 PermitRootLogin yes이고 주석으로 처리되어 있다

위와 같이 변경 후 ssh 데몬을 재구동 하면 root권한으로 접근이 제한된다.

$ service sshd restart



'Study...★ > Operationg System' 카테고리의 다른 글

Linux SSH 접속 초기문구 변경  (0) 2010.04.27
SSH root 접근 제한  (0) 2010.04.21
VM ware Network 설명  (0) 2010.04.20
Crontab 설정  (0) 2009.07.07
Posted by 달콤한녀석

댓글을 달아 주세요


vm ware 를 셋팅하면서 network에 대해 너무나도 무지하다는 생각이 들었다.
과연 network의 NAT, Bridged, Host-only 는 무엇을 의미하는 것일까?

한번 찾아본 녀석들을 나열해본다..

VMWare Network 설정

Network 모드 상세 설명
Birdge
  • 가상 머신이 호스트를 브리지로 사용하여 직접 네트워크에 접속하는 형태
  • 가상 머신은 호스트와 무관하게 자신만의 독립적인 네트워크를 구성함
  • 가상 머신은 자신만의 IP를 받아 외부 네트워크와 연결 가능
Host-only
  • 외부와 단절된 네트워크로 호스트와 다른 게스트 머신만 접속이 가능 하다.
  • 호스트에 등록된 "VirtualBox Host-Only Network"를 사용하여 통신 한다.
  • "VirtualBox Host-Only Network"에 연결 브리지를 설정하여 외부와 통신이 가능 하다.
NAT
  • 네크워크 주소 변환, Network Address Translation
  • 하나의 IP를 다른 IP로 변환하는 방법
  • 비공인 IP 주소를 공인 IP 주소로 변환하는 등에 사용 된다.
  • 비공인 IP 주소 공간 (RFC 1918)
  • 네트워크 크기 8 : 10.0.0.0 ~ 10.255.255.255.255
  • 네트워크 크기 12 : 172.16.0.0 ~ 172.31.255.255
  • 네트워크 크기 16 : 192.168.0.0 ~ 192.168.255.255
  • 가상 머신에 사설 IP를 할당하고 인터넷 접속시에는 호스트의 IP를 사용하여 통신 한다.
  • 기본으로 DHCP 서버를 제공하여 DHCP를 사용하지 않을 경우 수동으로 IP를 설정 한다.
  • 가상 머신을 외부와 직접 연결하기 위해서는 연결 브리지, 포트 포워딩(Port Forwarding)을 사용 한다.

'Study...★ > Operationg System' 카테고리의 다른 글

Linux SSH 접속 초기문구 변경  (0) 2010.04.27
SSH root 접근 제한  (0) 2010.04.21
VM ware Network 설명  (0) 2010.04.20
Crontab 설정  (0) 2009.07.07
Posted by 달콤한녀석

댓글을 달아 주세요

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이란 예약된 작업을 실행하는 파일이다.
위치 :
/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
 



* root 이외의 사용자에게 crontab 명령어를 이용할 수 있게 하는 방법
  - /etc/cron.allow 파일에 사용자의 id를 등록

* 일반사용자의 crontab 명령어사용을 제안하고자 한다면
  - /etc/cron.deny 파일에 사용자의 id 를 등록

* root 계정으로 crontab을 실행시키되 다른계정으로 실행되도록 하는 법
  - ex) 05 * * * * su - weblogic -c /home/html/update.php  


아래는 웹로직의 로그파일을 Daily Log로 백업하기 위해 사용하였던 crontab이다.

## crontab -e

# minute   hour   day     month   weekday               command
# 0-59     0-23   0-31    1-12    0-7(ex 7=sunday)      shell script

# WebLogic Server Log Backup
00 00 * * * /weblogic/domains/1033_domain/sh/daily_log_rotate.sh >> /weblogic/domains/1033_domain/logs/crontab.log

## daily_log_rotate.sh
#!/bin/sh

##### User Setting #####
DOMAIN_HOME="/weblogic/domains/1033_domain"
LOG_DIR="${DOMAIN_HOME}/logs"
SVR_NAME="AdminServer"
SVR_NAME1="svr1"
########################

prefix=`date +%Y%m%d_%H%M%S`

# AdminServer
cp ${DOMAIN_HOME}/${SVR_NAME}.out ${LOG_DIR}/${SVR_NAME}_$prefix.log
cp ${DOMAIN_HOME}/gc_${SVR_NAME}.out ${LOG_DIR}/gc_${SVR_NAME}_$prefix.log
> ${DOMAIN_HOME}/${SVR_NAME}.out
> ${DOMAIN_HOME}/gc_${SVR_NAME}.out

# ManagedServer
cp ${DOMAIN_HOME}/${SVR_NAME1}.out ${LOG_DIR}/${SVR_NAME1}_$prefix.log
cp ${DOMAIN_HOME}/gc_${SVR_NAME1}.out ${LOG_DIR}/gc_${SVR_NAME1}_$prefix.log
> ${DOMAIN_HOME}/${SVR_NAME1}.out
> ${DOMAIN_HOME}/gc_${SVR_NAME1}.out

'Study...★ > Operationg System' 카테고리의 다른 글

Linux SSH 접속 초기문구 변경  (0) 2010.04.27
SSH root 접근 제한  (0) 2010.04.21
VM ware Network 설명  (0) 2010.04.20
Crontab 설정  (0) 2009.07.07
Posted by 달콤한녀석

댓글을 달아 주세요