sed - 라인단위 편집
sed [-n] [-e script[ [ -f script_file] [file1 [file2...]]

awk - 필드 단위 패턴 처리
awk [-f program_file] [-F c] ['pattern {action}'] [file_name]

** 각 옵션의 설명은 man page 참고하거나 검색엔진 검색을 통해 알아보길 바람

2007/10/03 00:41 2007/10/03 00:41
hp-ux /etc/passwd 파일을 ":" 를 기준으로 필드별로 나누어 파일에 저장하기

#!/usr/bin/ksh
i=1
while [ $i -lt 8 ]
do
    awk -F: '{print $'"${i}"'}' /etc/passwd >>Field${i}.txt
    echo $i 번째 필드완료
    let i=${i}+1
done

CentOS 4.5 버전
#!/bin/sh
i=1
while [ $i -lt 8 ]
do
    awk -F: '{print $'"${i}"'}' /etc/passwd >>Field${i}.txt
    echo $i 번째 필드완료
    let i=${i}+1
done
2007/08/20 09:36 2007/08/20 09:36
표현방식 참이 되는 경우
[ $A -eq $B ] A와 B의 값이 같은 경우
[ $A -ne $B ] A와 B의 값이 다른 경우
[ $A -gt $B ] A가 B보다 값이 큰 경우
[ $A -lt $B ] A가 B보다 값이 작은 경우
[ $A -ge $B ] A가 B보다 값이 크거나 같은 경우
[ $A -le $B ] A가 B보다 값이 작거나 같은 경우
소숫점 이하의 숫자는 무시되므로 유의하여야 합니다

http://www.unix.co.kr 에서 가져옴
2007/05/04 10:06 2007/05/04 10:06
이곳에 있는걸 가져다가 놨습니다

1. /etc/httpd/conf/httpd.conf 에서 캐릭터셋 수정
/*------------
AddDefaultCharset UTF-8

2. /etc/php.ini 에서 캐릭터셋 수정
/*------------
;default_charset = "iso-8859-1"
default_charset = "utf-8"

3. /etc/my.cnf 에서 캐릭터셋 수정
/*------------
[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8
2006/11/30 15:58 2006/11/30 15:58
telnet relay-test.mail-abuse.org

어떻게 사용하는건지 확실히는 모르고
단계가 길게가면 좋다는것만 알고 있음

2006/08/28 21:01 2006/08/28 21:01
Danzy 님 블로그에서 거의 100퍼센트 가져왔음
# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section "Files"
   FontPath    "/usr/share/X11/fonts/misc"
   FontPath    "/usr/share/X11/fonts/cyrillic"
   FontPath    "/usr/share/X11/fonts/100dpi/:unscaled"
   FontPath    "/usr/share/X11/fonts/75dpi/:unscaled"
   FontPath    "/usr/share/X11/fonts/Type1"
   FontPath    "/usr/share/X11/fonts/100dpi"
   FontPath    "/usr/share/X11/fonts/75dpi"
   # path to defoma fonts
   FontPath    "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
   Load    "bitmap"
   Load    "ddc"
   Load    "dri"
   Load    "extmod"
   Load    "freetype"
   Load    "glx"
   Load    "int10"
   Load    "type1"
   Load    "vbe"
EndSection

Section "InputDevice"
   Identifier    "Generic Keyboard"
   Driver        "kbd"
   Option        "CoreKeyboard"
   Option        "XkbRules"    "xorg"
   Option        "XkbModel"    "pc105"
   Option        "XkbLayout"    "kr"
EndSection

Section "InputDevice"
   Identifier    "Configured Mouse"
   Driver        "mouse"
   Option        "CorePointer"
   Option        "Device"        "/dev/input/mice"
   Option        "Protocol"        "ExplorerPS/2"
   Option        "ZAxisMapping"        "4 5"
EndSection

Section "Device"
   Identifier    "NVIDIA Corporation NV17 [GeForce4 MX 440]"
   Driver        "nvidia"
   BusID        "PCI:1:0:0"
   VideoRam    65536
   Option          "TwinView"    "on"
   Option          "MetaModes"    "1280x1024, 1280x1024; 1152x864,1152x864; 1152x768,1152x768; 1024x768,1024x768"
   Option          "SecondMonitorHorizSync"    "30-70"
   Option          "SecondMonitorVertRefresh"    "50-160"
   Option          "TwinViewOrientation"        "LeftOf"
   Option        "UseFBDev"        "true"
EndSection

Section "Monitor"
   Identifier    "S/M 750ST(T)"
   Option        "DPMS"
   HorizSync    30-70
   VertRefresh    50-160
EndSection

Section "Screen"
   Identifier    "Default Screen"
   Device        "NVIDIA Corporation NV17 [GeForce4 MX 440]
   Monitor        "S/M 750ST(T)"
   DefaultDepth    24

   SubSection "Display"
       Depth        16
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        24
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
EndSection

Section "Device"
   Identifier    "MX440_0"
   Driver        "nvidia"
   BusID        "PCI:1:0:0"
   Option        "UseFBDev"        "true"
   Screen        0
EndSection

Section "Device"
   Identifier    "MX440_1"
   Driver        "nvidia"
   BusID        "PCI:1:0:0"
   Option        "UseFBDev"        "true"
   Screen        1
EndSection

Section "Monitor"
   Identifier    "Monitor0"
   Option        "DPMS"
   HorizSync    30-70
   VertRefresh    50-160
EndSection

Section "Monitor"
   Identifier    "Monitor1"
   Option        "DPMS"
   HorizSync    30-70
   VertRefresh    50-160
EndSection

Section "Screen"
   Identifier    "Screen0"
   Device        "MX440_0"
   Monitor        "Monitor0"
   DefaultDepth    16
   SubSection "Display"
       Depth        1
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        4
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        8
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        15
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        16
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        24
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
EndSection

Section "Screen"
   Identifier    "Screen1"
   Device        "MX440_1"
   Monitor        "Monitor1"
   DefaultDepth    16
   SubSection "Display"
       Depth        1
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        4
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        8
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        15
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        16
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
       Depth        24
       Modes        "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
   EndSubSection
EndSection

Section "ServerLayout"
   Identifier    "Default Layout"
   Screen        "Default Screen"
   InputDevice    "Generic Keyboard"
   InputDevice    "Configured Mouse"
EndSection

Section "ServerLayout"
   Identifier    "Layout1"
   Screen    0    "Screen0"
   Screen  1    "Screen1" leftof "Screen0"
   InputDevice    "Generic Keyboard"
   InputDevice    "Configured Mouse"
EndSection

Section "DRI"
   Mode    0666
EndSection
2006/08/06 03:31 2006/08/06 03:31
<?
  $users = array('123','456','789');       // 백업할 데이터베이스명를 배열에 넣음
  $users_count = sizeof($users)-1;    // 유저배열의 크기를 구해옴

  $backup_dir = "/blah/mysql/dump/";  // 백업파일(.sql)이 들어갈 디렉토리
  $backup_tardir = "/blah/mysql/archives/";    // 1주일 단위로 백업할 .tar.gz 파일이 들어갈 디렉토리
  $admin_id = "root";         // 관리자 ID
  $adminpass = "blah";      // 관리자 패스워드
  $backup_date = date("Ymd"); // 백업날자 구해옴
  $tar_date = "Tue";          // tar.gz 로 압축할 요일 (Sun, Mon, Tue, Wed, Thu, Fri, Sat) 기입

  $cp_user = "blahuser";        // 백업 파일 복사시킬 유저명 (한 유저만 접근 가능하게 고치기 위해 필요)
  $cp_user_dir = "/home/blahuser/backup";       // 외부 전송 편의를 위한 복사할 일반 유저 디렉토리

  for ($i=0; $i<=$users_count; $i++) {
       exec("mysqldump -u".$admin_id." -p".$adminpass." ".$users[$i]."> ".$backup_dir.$users[$i]."-".$backup_date.".sql");
  }

  if (date("D") == $tar_date) {       // 요일이 tar.gz 로 백업할 요일과 일치할 경우
       exec("cp ".$backup_dir."*".$backup_date.".sql ".$cp_user_dir);
       exec("tar cvfz ".$backup_tardir.$backup_date.".tar.gz ".$backup_dir."*.sql");
           // 일주일치가 백업되어 YYYYMMDD.tar.gz 형식으로 파일이 나옴
           // $tar_date 가 "Mon"일 경우 지난주 화요일부터 월요일까지가 .tar.gz 에 들어감
           // for 문과 위치를 바꿀 경우에는 지난주 월요일부터 일요일까지 .tar.gz 에 들어감
       exec("rm -rf ".$backup_dir."*.sql");    // YYYYMMDD.tar.gz 에 들어간 sql 파일 지움

       exec("cp ".$backup_tardir.$backup_date.".tar.gz ".$cp_user_dir);
  }

  exec("chmod 400 ".$backup_dir." -R");       // 백업 디렉토리 부터 하위까지 400 으로 바꿈
  exec("chmod 400 ".$backup_tardir." -R");    // .tar.gz 파일이 들어갈 디렉토리 부터 하위까지 400 으로 바꿈

  if(date("D") != $tar_date)
       exec("cp ".$backup_dir."*".$backup_date.".sql ".$cp_user_dir);

  exec("chown ".$cp_user." ".$cp_user_dir." -R");     // 백업파일을 정해진 유저에게 복사하고 소유권을 정해진 유저로 바꿈
  exec("chmod 700 ".$cp_user_dir." -R");      // 백업파일 복사한 유저 디렉토리 하위까지 700 으로 바꿈
?>
2006/06/19 22:53 2006/06/19 22:53
apt-get update && apt-get upgrade 를 통해서 업데이트를 하다보면
새로 올라온 패키지가 문제가 있음에도 불구하고
안정적으로 돌아가는 패키지도 업데이트가 되면서 동작에 문제가 생기는 경우가 있는데
업데이트 하지 않을 패키지를 잠금으로 해서 그 패키지를 업데이트를 하지 않을수가 있는데
그 명령어가
echo "패키지이름 hold" | dpkg --set-selections 이다
이렇게 해두면 패키지 이름은 잠기게 되며 apt-get update && apt-get upgrade 시에
새로운 버전이 있어도 업데이트가 되지 않는다

잠궈놓은 패키지는 풀때는
echo "패키지이름 install" | dpkg --set-selections 이렇게 명령어를 실행하여
apt-get update && apt-get upgrade 시에 업데이트가 되도록 할수가 있다

2006/05/07 10:17 2006/05/07 10:17
백업
그거 참 중요한거지
그런데 희안한것이 뭔가 하나 꼭 빠뜨리거나
설치된 프로그램이 버전업이 된다거나 한다는게 문제인거다

몇가지 예를 들자면
윈도우를 설치하고 여러가지 필수 프로그램들을 설치하고
조각모음도 하고 스파이웨어 검사&치료, 바이러스 검사&치료 해서
설정을 웬만큼 잡아놓고 고스트로 백업을 했다
그런데 그다음날 저녁에 스파이웨어 검사&치료 프로그램의
정보파일이 업데이트 된다는거다

또 한가지 서버의 백업을 참 잘해왔다
물론 리눅스의 크론이나 그런거에 등록이 되어 있어서 정해진 시간에 자동백업은 된다
그런데 사람이 살다보니 급한일도 생기고 하여 2일정도 백업 파일 복사를 못한거다
희안한게 그런날에 잘 돌아가던 하드디스크가 뻑이 난다거나 일이 생긴다는거다

그렇다고 서버에 죽빵을 날릴수도 없는거고 환장할 노릇인거지..
그냥 집에서 공부하고 별거 아닌 자료 날렸는데도 미칠라고 하는데
실무에서 그런일이 발생하고 좌절하는거지 뭐
그런일이 발생하지 않게, 아니 발생하더라도 빨리 처리를 할수 있도록
수련을 하여 아직은 학생이지만 미래에 대응이 빠른 관리자가 되야겠다
2006/04/25 00:26 2006/04/25 00:26