공룡호가 사는 세상 이야기

수많은 벤더에서, 시스템과 FC/SCSI카드, LTO 등을 만들고 있으며, 이를 사용하게 하는 백업 S/W또한 다양하다.
그만큼 이 장치들간의 접속/호환/운영에 많은 문제점들이 있는데, 작업 순서는 일반적으로 아래와 같다.

1. 서버에 FC/SCSI카드 장착
2. LTO와 물리적으로 연결
3. 서버에서 Drive 및 Changer(Robot) 인식
4. 백업 소프트웨어 설치 및 백업 스케줄링, 백업 실시

여기서, 3번에 주목하자.
Drive는 Tape를 읽어, 실제로 I/O를 일어나게 한다. 여기에서 Drive에 Tape을 자동으로 삽입하게 하는 Robot을 Changer라 하는데,
이 Changer의 인식이 OS에서 불가한 몇몇 장비들이 존재한다. 아니, 일반적으로 Drive만 OS에서 인식하고, Changer는 백업 소프트웨어를 설치하면 Changer를 인식한다.

Drive는 대부분 /dev/rmt 에 device가 생성이 되나, Changer가 여기에 생성되지 않는 장비들이 있다.
퀀X, 오버XX 등의 장비들이 이에 속하는데, 그 이유는 이들이 기본 인터페이스로 SCSI 인터페이스를 가지고 있기 때문이다.
대부분 LTO의 drive module은 st module을 사용하는데, 이러한 장비들은 sgen 이라 하는 모듈을 사용한다.

#modinfo |grep sgen
결과에 아무런 정보가 출력되지 않는다면, sgen driver가 load되지 않은 것이다.

sgen driver를 load한다.
#modload /kernel/drv/sparcv9/sgen

확인한다.
#modinfo |grep sgen
254 7b7e6000   3d90 151   1  sgen (SCSI generic driver 1.11)

/kernel/drv/sgen.conf 파일 내부에 changer에 해당하는 부분을 기술한다.
device-type-config-list="changer";

그 후, 해당 Changer의 target number와 lun number를 /kernel/drv/sgen.conf 파일 내부에 기술한다.
name="sgen" class="scsi" target=0 lun=0;
name="sgen" class="scsi" target=0 lun=1;
name="sgen" class="scsi" target=1 lun=0;
name="sgen" class="scsi" target=1 lun=1;

Changer를 인식시킨다
#touch /reconfigure
#shutdown -g0 -i6 -y
또는,
#update_drv -f sgen

인식 확인은 다음과 같이 한다.
#ls /dev/scsi/changer
(changer는 cxtxdx 명으로 인식된다.)

이후, 백업 소프트웨를 설치하여 해당 Changer(Robot)을 컨트롤 하는 테스트와 함께 백업 테스트를 실시해 본다.

협력사 대상으로 솔라리스 Jumpstart 구성 방법을 강의하고, 필요한 내용을 요약 해 둔다.
강의 내용은 자사 플랫폼만을 대상으로 하였으나, 일부 범용적으로도 사용할 수 있도록 수정.
아래 예제는 서버 1대에 클라이언트 1대를 대상으로 함.

1. 인스톨서버에 디렉토리 작성 후 CD로 부터 OS Image 생성
# mkdir -p /export/install/Sol10
# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /export/install/Sol10
(시간이 꽤 걸림) <- 여기서 생성된 /export/install/Sol10 디렉토리 내용을 iso로 묶어 두면, 재사용 가능

2. 미니루트 작업용 디렉토리 작성 후 복사, unpack중 에러발생할 경우, 가볍게 무시
# mkdir /tmp/work
# /boot/solaris/bin/root_archive unpackmedia /export/install/Sol10 /tmp/work
# rm /tmp/work/tmp/AdDrEm.lck

3. 드라이버 설치
Jumpstart는 네트웍을 통해 설치를 하므로, 해당 네트웍 인터페이스에 대한 드라이버가 없다면, 해당 드라이버를 설치한다.
아래 드라이버는 Fujitsu용 Giga-Ethernet 드라이버와 Ultra-SCSI 드라이버 설치과정이다.

3.1. 미니루트에 FJSVgid 설치
# cd /cdrom/cdrom0/FJSVgid_4.0/10
# pkgadd -R /tmp/work -d . FJSVgid.u
# pkgadd -R /tmp/work -d . FJSVgid.v

3.2. 미니루트에 Ultra SCSI 설치
# cd /cdrom/cdrom0/ultra_lvd_driver/10
# pkgadd -R /tmp/work -d . FJSVulsa.u
# pkgadd -R /tmp/work -d . FJSVulsa.v
# patchadd -C /tmp/work 914572-01(?) - 그냥 들어있는 패치하면 됨

4. 미니루트를 재포장 후 적용
# mkdir -p /tmp/media/Solaris_10
# /boot/solaris/bin/root_archive packmedia /tmp/media /tmp/work
# cd /tmp/media
# find boot Solaris_10/Tools/Boot | cpio -pdum /export/install/Sol10
# df -k 확인
# umount -f /dev/lofi/1
# lofiadm -d /dev/lofi/1

5. 커스텀 jumpstart 디렉토리 작성, 드라이버, 샘플 복사
# mkdir /jumpstart
# echo "share -F nfs -o ro,anon=0 /jumpstart" >> /etc/dfs/dfstab
# shareall

(Giga-Ethernet)
# mkdir /jumpstart/fjgi
# cp -p /cdrom/cdrom0/install_v4 /jumpstart/fjgi/.
# cp -p /cdrom/cdrom0/admin /jumpstart/fjgi/.
# cp -pr /cdrom/cdrom0/FJSVgid_4.0/10/* /jumpstart/fjgi/.
(Ultra-SCSI)
# mkdir /jumpstart/fjulsa
# cp -p /cdrom/cdrom0/install /jumpstart/fjulsa/.
# cp -p /cdrom/cdrom0/admin /jumpstart/fjulsa/.
# cp -pr /cdrom/cdrom0/ultra_lvd_driver/10/* /jumpstart/fjulsa/.

# cp -r /export/install/Sol10/Solaris_10/Misc/jumpstart_sample/* /jumpstart

6. nfs서버 가동중 확인, disable이면 enable
# svcs -av | grep nfs
# svcadm enable (기동시킬 서비스)

7. profile 작성 (설치 기본정보를 기록한다-아래 형식에 주의)
# vi /jumpstart/profile
 install_type initial_install
 system_type server
 partitioning explicit
 cluster SUNWCXall
 filesys c0t0d0s0 51200 /
 filesys c0t0d0s1 24576 swap
 geo             Asia
 locale          ko

8. finish 작성
# vi /jumpstart/finish
 #!/bin/sh
 BASE=/a
 JUMPSTART=/a/mnt
 mount -F nfs 인스톨서버IP:/jumpstart ${JUMPSTART}
 ${JUMPSTART}/fjgi/install_v4 -R ${BASE} -d ${JUMPSTART}/fjgi -p sun4u
 ${JUMPSTART}/fjulsa/install -R ${BASE} -d ${JUMPSTART}/fjulsa -p sun4u
 umount ${JUMPSTART}
 exit 0

9. rules 작성
# vi /jumpstart/rules의 가운데 쯤, 클라이언트 호스트 정보 입력
 hostname 클라이언트호스트명 - profile finish

10. rules 체크 (ok가 떨어질 때 까지 위 내용 확인)
# cd /jumpstart
# ./check -p /tmp/media -r rules

11. 인스톨서버에 클라이언트 서버정보 추가
# vi /etc/hosts
클라이언트IP[탭]hostname(클라이언트)[탭]loghost

12. 클라이언트의 맥어드레스 확인
클라이언트 PROM(ok-mode까지 부팅)
{ok} show-nets
jumpstart에 사용될 ethernet-port 선택
{ok} cd ethernet-port 주소
{ok} .properties
mac 부분에서 해당 MAC Address 확인

13. 클라이언트 서버 맥 등록
# vi /etc/ethers
맥어드레스 hostname(클라이언트)

14. bootparams 생성
# /export/install/Sol10/Solaris_10/Tools/add_install_client -c 서버호스트명:/jumpstart 클라이언트호스트명 sun4u  <== 호스트명은 꼭 /etc/hosts에 들어가 있어야하며(IP안됨) 서버호스트명은 loghost명 이어야 됨
# cat /etc/bootparams 확인하여 올바로 값이 입력되었는지 확인

15. 인스톨
{ok} boot net - install
위 방법이 안될경우, net의 alias 를 확인하거나
{ok} boot 자신의 네트웍 물리주소 - install

#mkisofs -o /tmp/test.iso -V cies -R /test

-o : Output Option
/tmp/cies.iso : Image file이 생성되는 디렉토리
-V : Volume 이름 Option
cies : Volume 이름
-R : Sub dir. Option
/test : Image를 만들고자 하는 디렉토리(Source)

종종 어플리케이션들은 시작할때 솔라리스의 버전을 체크 합니다. 필자는 최근에 그러한 어플리케이션을 설치 하였습니다. 어플리케이션이 솔라리스의 구버전에서만 인증되었는지에 대해서는 알 수 없었습니다. 또한, 어플리케이션의 인스톨러는 OS 의 버전을 확인할 만큼 훌륭하지 않았었습니다!

그러므로 결국 저는 제 시간을 낭비한 걸까요? 아닙니다! 'dtrace' 가 저를 구원해 주었습니다. 필자는 dtrace 스크립트를 이용하였습니다.

1.실행 파일을 'fubar' 라고 가정해 봅시다. fubar 가 어떻게 솔라리스 버전을 가져오는지를 살펴 봅시다. 결과를 통해서 uname() 시스템 콜임을 알았습니다.

$ truss ./fubar 2>&1 | grep uname
uname(0xFFBFF898)                               = 1

2.'fubar' 가 기대하고 있는 솔라리스 버전을 살펴 봅시다.
$ strings fubar | grep 'SunOS '
SunOS 5.5.1
SunOS 5.6
SunOS 5.7
SunOS 5.8
SunOS 5.7 Generic_106541-05 sun4u

필자가 이것을 이전에 알았다면 아마 솔라리스8 마이그레이션 지원 환경에 설치하였을 것입니다.

3.아래가 'fubar' 를 속이기 위한 dtrace 스크립트 입니다. 'fubar' 는 오직 "SunOS" 와 "5.5.1" 만을 신경 씁니다. 그러므로 솔라리스가 1986년도에 8086에서 돌아가는 것이라도 상관 없습니다.
$ cat unameSol8.d
#!/usr/sbin/dtrace -s
#pragma D option destructive
syscall::uname:entry
/execname == "fubar"/
{
        self->addr = arg0;
}

syscall::uname:return
/execname == "fubar"/
{
        copyoutstr("SunOS", self->addr, 257);
        copyoutstr("PowerPC", self->addr+257, 257);
        copyoutstr("5.5.1", self->addr+(257*2), 257);
        copyoutstr("gate:1996-12-01", self->addr+(257*3), 257);
        copyoutstr("PPC", self->addr+(257*4), 257);
}


필자:
Katsumi Inoue

이 글의 영문 원본은
Spoofing Solaris version using dtrace
에서 보실 수 있습니다.

accounting은 크게 connection, process, disk, fee accounting으로 분류되어진다.
일단 SUNWaccr SUNWaccu 패키지가 있어야 한다. <- 시스템을 Entire 로 깔았으면  깔려있음.
- 시스템 재원의 상태 정보를 모니터링 함 (분석 가능)
- 기본적으로 세팅되어 있지 않음. 사용할 경우 시스템 I/O에 영향을 줄 가능성
- Job Schedule을 설정할 경우 time interval을 길게 한다. (I/O 최소화)

확인 #pkginfo SUNWaccu SUNWaccr

#ln -s  /etc/init.d/acct  /etc/rc2.d/S22acct
#ln -s /etc/init.d/acct /etc/rc0.d/K22acct

Enable : #touch /var/adm/pacct

콘쉘이라면
#export EDITOR=vi
#crontab -e
30 22 * *  4 /usr/lib/acct/dodisk
#crontab  -e adm
0 * * * * /usr/lib/acct/ckpacct
#위프로그램은 /var/adm 디렉토리가 500kbyte밖에 안남으면 accounting을 멈춘다.
30 2 * * * /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log
#여러 프로세스 사용, 디스크사용등을 리포트한다.
30 7 1 * * /usr/lib/acct/monacct
#위프로그램은 월별 리포트를 만든다.

위사항은 오전 2시 30분에 일별 리포트를 ,  매월 1일 오전 7:30분에 월별 리포트를 만드니까 필요시 변경
#/etc/init.d/acct start    #accounting 시작

#즉시 결과를 보고 싶다면 아래를 하면 즉시 daily report를 볼 수 있다.
#su - adm
#nohup /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log &
#각종 에러메시지는 /var/adm/acct/nite/fd2log에 기록된다
#runacct 프로그램이 수행되면 또다른 runacct의 수행을 방지 하기 위해서 lock와 lock1을 만든다  그래서 다시 시작하려면
# cd /var/adm/acct/nite;rm lastdate lock* 을 먼저 수행하고
#runacct 월일 2> /var/adm/acct/nite/fd2log & 을 하면 된다.


#잠시 정시 / 시작 하려면
위의 crontab 설정을 커멘트 처리하고 ,
#/etc/init.d/acct stop  #정지
#/etc/init.d/acct start #다시 시작

#리포트확인
#cat /var/adm/acct/sum/rprt월일
    
#나중에 각달의 2일쯤에 /var/adm/acct/fiscal/fiscrpt월 의 파일을 보고서로 활용하면 됨.


           %%%%%%%%%%%%%%%%%%%% Daily Report

#cat /var/adm/acct/sum/rprt월일  (예제)
Jun 11 02:30:02 1998  DAILY REPORT FOR mercury Page 1
 
 
from Wed Jun 10 02:30:02 1998
to   Thu Jun 11 02:30:02 1998
1       system boot
1       run-level 3
1       acctg on
1       runacct
1       acctcon
 
TOTAL DURATION IS 1384 MINUTES
LINE         MINUTES  PERCENT  # SESS  # ON  # OFF
/dev/pts/5   0        0        0       0     0  
/dev/pts/6   0        0        0       0     1  
/dev/pts/7   0        0        0       0     0  
console      1337     97       1       1     1  
pts/3        0        0        0       0     1  
pts/4        0        0        0       0     1  
pts/5        3        0        2       2     3  
pts/6        232      17       5       5     5  
pts/7        54       4        1       1     2  
pts/8        0        0        0       0     1  
pts/9        0        0        0       0     1  
TOTALS       1625     --       9       9     16
-----------------------------------------------------------------


위에서
Column                                     Description
  LINE                        터미널라인 이나 Access 포트
  MINUTES                 accounting 동안 해당라인이 사용된 분 
  PERCENT                 TOTAL DURATION을 MINUTES으로 나눈 율
  # SESS                    로그인 세션에 이 포트가 어세스된 수 
  # ON                       더이상 의미없음
  # OFF                      유저의 로그아웃회수나 cable,modem등의 문제로 인터럽트가 걸린 회수

 

Jun 11 02:30:02 1998  DAILY USAGE REPORT FOR mercury Page 1
      LOGIN    CPU (MINS) KCORE-MINS  CONNECT (MINS) DISK  # OF  # OF # DISK FEE
UID   NAME   PRIME NPRIME PRIME NPRIME PRIME NPRIME  BLOCKS PROCS SESS SAMPLES
0     TOTAL  1     1      2017  717    785   840    660361  1067  9     7    20
0     root   1     1      1833  499    550   840    400443  408   2     1    0
1     daemon 0     0      0     0      0     0      400     0     0     1    0
2     bin    0     0      0     0      0     0      253942  0     0     1    0
3     sys    0     0      0     0      0     0      2       0     0     1    0
4     adm    0     0      46    83     0     0      104     280   0     1    0
5     uucp   0     0      74    133    0     0      1672    316   0     1    0
71    lp     0     0      0     2      0     0      3798    1     0     1    0
8198  ksm    0     0      8     0      0     0      0       6     1     0    0
52171 pjm    0     0      56    0      234   0      0       56    6     0    20

--------------------------------------------------------------------------------


위에서
Column                             Description
  UID                          유저아이디
  LOGIN NAME            유저이름
  CPU-MINS                유저프로세스가 CPU를 사용한 시간 PRIME 과 NPRIME(non-prime)으로 구분 되어있

                                  는데 이것은 /etc/acct/holidays 파일에서 변경 가능하다 .
  KCORE-MINS            유저프로세스 활동중에 메모리를 kbyte단위로 사용한 축적양
  CONNECT-MINS        유저가 로그인한 실제시간 
  DISK BLOCKS           dodisk가 동작해서 출력한  512 bytes단위의 디스크블럭 수 
  # OF PROCS             유저가 띄운 프로세스의 수
  # OF SESS                유저의 로그인 회수 
  # DISK SAMPLES  dodisk가 동작해서 가지고온 샘플의 회수 

  FEE                         잘 안쓰지만 , chargefee명령으로 수집된 fee                       


Jun 11 02:30:02 1998  DAILY COMMAND SUMMARY Page 1
 
                                   TOTAL COMMAND SUMMARY
COMMAND NUMBER    TOTAL    TOTAL    TOTAL   MEAN    MEAN    HOG    CHARS  BLOCKS
NAME     CMDS  KCOREMIN  CPU-MIN  REAL-MIN  SIZE-K  CPU-MIN FACTOR TRNSFD   READ
 
TOTALS   1067   2730.99    2.01    1649.38 1361.41   0.00  0.00    6253571  2305
 
sendmail   28   1085.87    0.05      0.24  23865.20  0.00  0.19     101544    39
admintoo    3    397.68    0.12   1132.96  3443.12   0.04  0.00     680220    83
sh        166    204.78    0.31    161.13  651.80    0.00  0.00     598158    20
nroff      12    167.17    0.14      0.24  1205.55   0.01  0.59     709048    22
find       10    151.27    0.27      2.72  563.40    0.03  0.10     877971  1580
acctdusg    3     87.40    0.13      2.74  698.29    0.04  0.05     883845   203
lp         10     74.29    0.05      0.22  1397.38   0.01  0.24     136460    57
expr       20     67.48    0.02      0.06  3213.24   0.00  0.34       6380     1
mail.loc    3     65.83    0.01      0.04  11285.60  0.00  0.15      24709    15
cmdtool     1     37.65    0.02     20.13  2091.56   0.02  0.00     151296     1
uudemon.  105     37.38    0.09      0.32  435.46    0.00  0.27      62130    17
csh         6     35.17    0.05     57.28  756.30    0.01  0.00     209560    13
col        12     31.12    0.06      0.26  523.00    0.00  0.23     309932     0
ntpdate    22     27.55    0.05     11.18  599.00    0.00  0.00      22419     0
uuxqt      44     18.66    0.04      0.06  417.79    0.00  0.74      32604     3
man        12     15.11    0.03      7.05  503.67    0.00  0.00      85266    47
__________________________________________________________________________________


위에서
  Column                                     Description
  COMMAND NAME                  명령어 이름(쉘프로그램인 경우 프로그램 이름만 나옴 )
                                              accton 명령으로 유저를 판단 할 수 있다
  NUMBER CMNDS                   prime time동안 명령어 사용회수 .
  TOTAL KCOREMIN                수행시간 동안 프로세스가 분당, 메모리를 차지한 총 Kbyte segments
  TOTAL CPU-MIN:                   prime time동안 수행한 총 프로세싱시간 .
  TOTAL REAL-MIN                  총 real-time minutes
  MEAN SIZE-K                        평균 메모리 요구량
  MEAN CPU-MIN                     평균 CPU시간
  HOG FACTOR                        The ratio of CPU time to actual elapased time.
  CHARS TRNSFD                     read and write system calls에 의해 전달된 character의 수
  BLOCKS READ                       프로그램에 의해 읽거나 쓴 디스크 블럭 수

 

Last Login report
Jun  9 02:30:03 1998  LAST LOGIN Page 1 
.

.
00-00-00  arimmer       00-00-00  lister        97-02-27  pjm
00-00-00  reception     00-00-00  smithey       97-02-27  ksm
00-00-00  release       00-00-00  smsc          97-02-27  root
00-00-00  resch         00-00-00  datab
년-월-일 유저이름 순으로 표시

 

 %%%%%%%%%%%%%%%%%%%Monthly Report


#cat /var/adm/acct/fiscal/ficrpt월
Jun  9 02:30:03 1998  MONTHLY TOTAL COMMAND SUMMARY Page 1
 
                                     TOTAL COMMAND SUMMARY
COMMAND NUMBER     TOTAL    TOTAL     TOTAL   MEAN   MEAN   HOG    CHARS  BLOCKS
NAME      CMDS  KCOREMIN   CPU-MIN REAL-MIN SIZE-K CPU-MIN FACTOR TRNSFD   READ
 
TOTALS     771    483.70   0.94    8984.09  515.12   0.00  0.00   2248299   179
 
sh         105    155.41   0.23     429.58  667.94   0.00  0.00    491870     1
uudemon.    85     29.39   0.07       0.29  434.28   0.00  0.23     49630    14
acctcms      5     27.21   0.04       0.04  752.41   0.01  0.90    218880     1
ntpdate     17     21.30   0.04      14.10  605.73   0.00  0.00     18192     0
dtpad        1     19.69   0.01      10.87 2072.70   0.01  0.00     46992     8
sendmail    17     16.75   0.02       0.02  859.04   0.00  0.91     1965      0
acctprc      1     14.92   0.03       0.03  552.69   0.03  0.95    115584     0
uuxqt       34     14.78   0.03       0.04  426.29   0.00  0.92     25194     0
uusched     34     10.96   0.03       0.03  363.25   0.00  0.91     25194     0
sed         40     10.15   0.03       0.09  315.50   0.00  0.36     64162     2
man          5     10.08   0.02      57.58  555.05   0.00  0.00     25773     2
getent       1      7.68   0.01       0.02  921.60   0.01  0.40     20136     0

 

대부분의 월별 리포트는 일별 리포트와 비슷하다 .

%%%%%%%%%%%%%%%%%%Last Login report
#cat /var/adm/acct/sum/loginlog
Jun  9 02:30:03 1998  LAST LOGIN Page 1 
.

.
00-00-00  arimmer       00-00-00  lister        97-02-27  pjm
00-00-00  reception     00-00-00  smithey       97-02-27  ksm
00-00-00  release       00-00-00  smsc          97-02-27  root
00-00-00  resch         00-00-00  datab
년-월-일 유저이름 순으로 표시

 

#모아지는 데이터 파일 정리
/var/adm/디렉토리 밑

  File             Description
  dtmp             Output from the acctdusg program
  fee       Output from the chargefee program, ASCII tacct records
  pacct             Active process accounting file
  pacctn              Process accounting files switched using turnacct
  Spacctn.MMDD                         Process accounting files for MMDD during execution of runacct


/var/adm/acct/nite 디렉토리 밑

  File                                     Description
  active             Used by runacct to record progress and print warning and error messages
  activeMMDD             Same as active after runacct detects an error
  cms                         ASCII total command summary used by prdaily
  ctacct.MMDD             Connect accounting records in tacct.h format
  ctmp                         Output of acctcon1 program, connect session records in ctmp.h format (acctcon1 and acctcon2 are provided for compatibility purposes)
  daycms                         ASCII daily command summary used by prdaily
  daytacct             Total accounting records for one day in tacct.h format
  disktacct             Disk accounting records in tacct.h format, created by the dodisk procedure
  fd2log                         Diagnostic output during execution of runacct
  lastdate             Last day runacct executed (in date +%m%d format)
  lock                         Used to control serial use of runacct
  lineuse                         tty line usage report used by prdaily
  log                         Diagnostic output from acctcon
  log.MMDD             Same as log after runacct detects an error
  owtmp                         Previous day's wtmp file
  reboots                         Beginning and ending dates from wtmp and a listing of reboots
  statefile             Used to record current state during execution of runacct
  tmpwtmp                         wtmp file corrected by wtmpfix
  wtmperror             Place for wtmpfix error messages
  wtmperror.MMDD Same as wtmperror after runacct detects an error
  wtmp.MMDD runacct's copy of the wtmp file

/var/adm/acct/sum 디렉토리 밑

           File                                     Description
  cms                         Total command summary file for current fiscal period in internal summary format
  cmsprev                         Command summary file without latest update
  daycms                         Command summary file for the day's usage in internal summary format
  loginlog             Record of last date each user logged on; created by lastlogin and used in the prdaily program
  rprt.MMDD             Saved output of prdaily program
  tacct                         Cumulative total accounting file for current fiscal period
  tacctprev             Same as tacct without latest update
  tacct.MMDD             Total accounting file for MMDD


/var/adm/acct/fiscal 디렉토리 밑

           File                         Description
  cmsn              Total command summary file for fiscal period n in internal summary format
  fiscrptn  Report similar to rprtn for fiscal period n
  tacctn    Total accounting file for fiscal period n


#runacct 프로그램에 의해서 만들어 지는 파일

                       File                                     Description
  nite/lineuse                         runacct calls acctcon to gather data on terminal line usage from /var/adm/acct/nite/tmpwtmp and writes the data to /var/adm/acct/nite/lineuse.  prdaily uses this data to report line usage. This report is especially useful for detecting bad lines. If the ratio between the number of logouts to logins is greater than about three to one, there is a good possibility that the line is failing.
  nite/daytacct             This file is the total accounting file for the day in tacct.h format.
  sum/tacct                         This file is the accumulation of each day's nite/daytacct and can be used for billing purposes. It is restarted each month or fiscal period by the monacct procedure.
  sum/daycms                         runacct calls acctcms to process the data about the commands used during the day. This information is stored in /var/adm/acct/sum/daycms. It contains the daily command summary. The ASCII version of this file is /var/adm/acct/nite/daycms.
  sum/cms                                     This file is the accumulation of each day's command summaries. It is restarted by the execution of monacct. The ASCII version is nite/cms.
  sum/loginlog                         runacct calls lastlogin to update the last date logged in for the logins in /var/adm/acct/sum/loginlog. lastlogin also removes from this file logins that are no longer valid.
  sum/rprt.MMDD             Each execution of runacct saves a copy of the daily report that was printed by prdaily.

 

#만일 다중 사용자 레벨에서 date 가 변경되었다면 /var/adm/wtmp 에 변경 사항이 기록되는데이 변경 사항이 리포트에 문제를 일으킬 수 있다 . 그래서 wtmpfix 명령어가 wtmp의 레코드를 수정하는데 쓰일 수 있다.


#/usr/lib/acct/wtmpfix /var/adm/acct/nite/wtmp.월일 xwtmp
#xwtmp의 충돌하는 내용을 삭제하거나 변경한다.
#fwtmp -ic xwtmp /var/adm/acct/nite/wtmp.월일 # xwtmp binary로 고친다.

 

#주의 -- daily accounting 리포트가 만들어지면 raw data 들이 지워지고
monthly accounting리포트가 만들어지면 daily report 가 지워진다.


Validating patches...
 
Loading patches installed on the system...
 
Done!
 
Loading patches requested to install.
 
Unable to install patch. Not enough space in /var/run to copy overlay objects.
 73MB needed, 21MB available.
패치가 돌아가지 않고 그냥 떨어진다. /var/run 용량이 부족하단다. 하지만, df 명령어로 확인 해 보면..
swap 24G 20K 24G 1% /var/run
1% 밖에 쓰지 않고 있는데, 이해할 수 없다. 검색을 좀 해보니, 기존 kernel version과 관계가 있는 것 같은데,
sun solve에서 동일한 case의 120011-14 kernel patch issue 가 있었으나, 분명한 대답은 없다.
일단 용량이 부족하다고 말하니, 용량을 늘리는 것으로 해결하긴 했다만. 아시는 분이 계시면 이유라도.
조과장님이 아실까..? @_@

일단은 임시 해결책.
# mkfile 3g /var/crash/temp_swap_file
# swap -a /var/crash/temp_swap_file
# swap -l

install patch.

'유닉스' 카테고리의 다른 글

Dtrace 를 이용하여 솔라리스 버전 속이기  (0) 2009.08.11
Solaris System Accounting  (0) 2009.03.19
Linux, bonding.  (0) 2009.02.13
쉘 스크립트를 사용하면 안되는 경우  (0) 2009.02.08
ZFS manual  (0) 2009.01.05

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

리소스에 민감한 작업들, 특히 속도가 중요한 요소일 때(정렬, 해쉬 등등)
강력한 산술 연산 작업들, 특히 임의의 정밀도 연산(arbitrary precision)이나 복소수를 써야 할 때(C++이나 포트란을 쓰자.)
플랫폼간 이식성이 필요할 때(C를 쓰자)
구조적 프로그래밍이 필요한 복잡한 어플리케이션(변수의 타입체크나 함수 프로토타입등이 필요할 때)

업무에 아주 중요하거나 회사의 미래가 걸렸다는 확신이 드는 어플리케이션
보안상 중요해서, 여러분 시스템의 무결성을 보장하기 위해 외부의 침입이나 크래킹, 파괴등을 막아야 할 필요가 있을 때
서로 의존적인 관계에 있는 여러 콤포넌트로 이루어진 프로젝트
과도한 파일 연산이 필요할 때(Bash는 제한적인 직렬적 파일 접근을 하고 , 특히나 불편하고 불충분한 줄단위 접근만 가능)
다차원 배열이 필요할 때

링크드 리스트나 트리같은 데이타 구조가 필요할 때
그래픽이나 GUI를 만들고 변경하는 등의 일이 필요할 때
시스템 하드웨어에 직접 접근해야 할 때
포트나 소켓 I/O가 필요할 때
예전에 쓰던 코드를 사용하는 라이브러리나 인터페이스를 써야 할 필요가 있을 때
독점적이고 소스 공개를 안 하는 어플리케이션을 짜야 할 때(쉘 스크립트는 필연적으로 오픈 소스이다.)

출처 : Mendel Cooper 님의 Script Guide

ZFS manual

유닉스2009. 1. 5. 06:50
말그대로,
ZFS manual




은근히 모르시는 분들이 많다. 간단하게- 포스팅!

1. METADB 만들기
#metadb -a -f -c3 c2t0d0s4 c2t1d0s4 c2t2d0s4 c2t3d0s4    <--- metadb file을 만들어 준다.
#metadb

2. RAID 0 : Concatenated 구성
#metainit d0 1 1 c2todos1
#metattach d0 c2tld0s1
#metastat  <--- raid 구성확인하기
#newfs /dev/md/dsk/d0   <--- file system 만들기

3. RAID 0 : Striped 구성
#metainit d1 1 2 c2t0d0s0 c2t1d0s0
#newfs /dev/md/dsk/d1

4. RAID 1
#metainit d10 1 1 /dev/dsk/c2t2d0s0     <---concat으로 일단 만듬
#metainit d20 1 1 /dev/dsk/c2t3d0s0     <---concat으로 일단 만듬
#merainit d12 -m d10     <----- 묶기
#metattach d12 d20       <----- d12 묶기
#newfs /dev/md/dsk/d12

5. RAID 0 + 1
#metainit d30 1 2 c2t0d0s6 c2t1d0s6
#metainit d40 1 2 c2t2d0s6 c2t3d0s6
#metainit d34 -m d30
#metattach d34 d40
#newfs /dev/md/dsk/d34

6. RAID 5
#metainit d5 -r c2t0d0s5 c2t1d0s5 c2t2d0s5  <----반드시 장치이름을 3개로 줄것
#newfs /dev/md/dsk/d5

'유닉스' 카테고리의 다른 글

쉘 스크립트를 사용하면 안되는 경우  (0) 2009.02.08
ZFS manual  (0) 2009.01.05
pkgadd 오류: admin 파일 <default>를 열 수 없습니다.  (0) 2008.11.11
SSH setting for solaris8  (0) 2008.08.26
Fixing read-only file system error  (0) 2008.08.13