acct(5) - wariua/manpages-ko GitHub Wiki

NAME

acct - ν”„λ‘œμ„ΈμŠ€ 톡계 파일

SYNOPSIS

#include <sys/acct.h>

DESCRIPTION

ν”„λ‘œμ„ΈμŠ€ 톡계 μ˜΅μ…˜(CONFIG_BSD_PROCESS_ACCT)을 μΌœμ„œ 컀널을 λΉŒλ“œ ν•œ κ²½μš°μ— λ‹€μŒκ³Ό 같이 acct(2)λ₯Ό ν˜ΈμΆœν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€ 톡계 μˆ˜μ§‘μ„ μ‹œμž‘ν•œλ‹€.

acct("/var/log/pacct");

ν”„λ‘œμ„ΈμŠ€ 톡계λ₯Ό 켜면 μ‹œμŠ€ν…œμ˜ 각 ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œν•  λ•Œλ§ˆλ‹€ 컀널이 톡계 νŒŒμΌμ— λ ˆμ½”λ“œλ₯Ό κΈ°λ‘ν•œλ‹€. κ·Έ λ ˆμ½”λ“œλŠ” μ’…λ£Œ ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό λ‹΄κ³  있으며 <sys/acct.h>에 λ‹€μŒκ³Ό 같이 μ •μ˜λΌ μžˆλ‹€.

#define ACCT_COMM 16

typedef u_int16_t comp_t;

struct acct {
    char ac_flag;           /* 톡계 ν”Œλž˜κ·Έ */
    u_int16_t ac_uid;       /* μ‚¬μš©μž ID */
    u_int16_t ac_gid;       /* κ·Έλ£Ή ID */
    u_int16_t ac_tty;       /* μ œμ–΄ 터미널 */
    u_int32_t ac_btime;     /* ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œκ°
                               (에포크 이후 초) */
    comp_t    ac_utime;     /* μ‚¬μš©μž CPU μ‹œκ°„ */
    comp_t    ac_stime;     /* μ‹œμŠ€ν…œ CPU μ‹œκ°„ */
    comp_t    ac_etime;     /* κ²½κ³Ό μ‹œκ°„ */
    comp_t    ac_mem;       /* 평균 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ (kB) */
    comp_t    ac_io;        /* μ „μ†‘ν•œ 문자 수 (μ‚¬μš© μ•ˆ 함) */
    comp_t    ac_rw;        /* μ½κ±°λ‚˜ μ“΄ 블둝 수 (μ‚¬μš© μ•ˆ 함) */
    comp_t    ac_minflt;    /* λ§ˆμ΄λ„ˆ νŽ˜μ΄μ§€ 폴트 */
    comp_t    ac_majflt;    /* 메이저 νŽ˜μ΄μ§€ 폴트 */
    comp_t    ac_swaps;     /* μŠ€μ™‘ 개수 (μ‚¬μš© μ•ˆ 함) */
    u_int32_t ac_exitcode;  /* ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ μƒνƒœ
                               (wait(2) μ°Έκ³ ) */
    char      ac_comm[ACCT_COMM+1];
                            /* λͺ…λ Ή 이름 (λ§ˆμ§€λ§‰ μ‹€ν–‰ λͺ…λ Ήμ˜
                               basename. 널 μ’…λ£Œ) */
    char      ac_pad[X];    /* νŒ¨λ”© λ°”μ΄νŠΈ */
};

enum {          /* ac_flag ν•„λ“œμ— 섀정될 수 μžˆλŠ” λΉ„νŠΈλ“€ */
    AFORK = 0x01,           /* forkλŠ” μ‹€ν–‰ν•˜κ³  execλŠ” μ‹€ν–‰ν•˜μ§€ μ•Šμ•˜μŒ */
    ASU   = 0x02,           /* μˆ˜νΌμœ μ € 특ꢌ μ‚¬μš©ν–ˆμŒ */
    ACORE = 0x08,           /* μ½”μ–΄ 덀프 ν–ˆμŒ */
    AXSIG = 0x10            /* μ‹œκ·Έλ„λ‘œ μ£½μ—ˆμŒ */
};

데이터 νƒ€μž… comp_tλŠ” 3λΉ„νŠΈ 8μ§„μˆ˜ μ§€μˆ˜μ™€ 13λΉ„νŠΈ κ°€μˆ˜λ‘œ 이뀄진 λΆ€λ™μ†Œμˆ˜μ  값이닀. λ‹€μŒκ³Ό 같이 ν•΄μ„œ 이 νƒ€μž…μ˜ κ°’ cλ₯Ό (long ν˜•) μ •μˆ˜λ‘œ λ³€ν™˜ν•  수 μžˆλ‹€.

v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3);

ac_utime, ac_stime, ac_etime ν•„λ“œλŠ” "클럭 ν‹±" λ‹¨μœ„λ‘œ μΈ‘μ •ν•œ μ‹œκ°„μ΄λ‹€. κ·Έ 값을 sysconf(_SC_CLK_TCK)으둜 λ‚˜λˆ„λ©΄ 초 λ‹¨μœ„λ‘œ λ°”κΏ€ 수 μžˆλ‹€.

버전 3 톡계 파일 ν˜•μ‹

컀널 2.6.8λΆ€ν„°λŠ” 컀널을 λΉŒλ“œ ν•  λ•Œ CONFIG_BSD_PROCESS_ACCT_V3 μ˜΅μ…˜μ„ μ„€μ •ν•˜λ©΄ λ‹€λ₯Έ λ²„μ „μœΌλ‘œ 톡계 νŒŒμΌμ„ λ§Œλ“€μ–΄ λ‚Ό 수 μžˆλ‹€. 이 μ˜΅μ…˜μ΄ 섀정돼 있으면 톡계 νŒŒμΌμ— κΈ°λ‘λ˜λŠ” λ ˆμ½”λ“œμ— λͺ‡ κ°€μ§€ ν•„λ“œκ°€ μΆ”κ°€λ˜λ©° ac_uid 및 ac_gid ν•„λ“œκ°€ (λ¦¬λˆ…μŠ€ 2.4 및 μ΄ν›„μ—μ„œμ˜ UID 및 GID 크기 증가에 맞좰) 16λΉ„νŠΈμ—μ„œ 32λΉ„νŠΈλ‘œ 컀진닀. λ ˆμ½”λ“œκ°€ λ‹€μŒκ³Ό 같이 μ •μ˜λΌ μžˆλ‹€.

struct acct_v3 {
    char      ac_flag;      /* ν”Œλž˜κ·Έ */
    char      ac_version;   /* 항상 ACCT_VERSION(3)으둜 μ„€μ • */
    u_int16_t ac_tty;       /* μ œμ–΄ 터미널 */
    u_int32_t ac_exitcode;  /* ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ μƒνƒœ */
    u_int32_t ac_uid;       /* μ‹€μ œ μ‚¬μš©μž ID */
    u_int32_t ac_gid;       /* μ‹€μ œ κ·Έλ£Ή ID */
    u_int32_t ac_pid;       /* ν”„λ‘œμ„ΈμŠ€ ID */
    u_int32_t ac_ppid;      /* λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€ ID */
    u_int32_t ac_btime;     /* ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œκ° */
    float     ac_etime;     /* κ²½κ³Ό μ‹œκ°„ */
    comp_t    ac_utime;     /* μ‚¬μš©μž CPU μ‹œκ°„ */
    comp_t    ac_stime;     /* μ‹œμŠ€ν…œ μ‹œκ°„ */
    comp_t    ac_mem;       /* 평균 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ (kB) */
    comp_t    ac_io;        /* μ „μ†‘ν•œ 문자 수 (μ‚¬μš© μ•ˆ 함) */
    comp_t    ac_rw;        /* μ½κ±°λ‚˜ μ“΄ 블둝 수 (μ‚¬μš© μ•ˆ 함) */
    comp_t    ac_minflt;    /* λ§ˆμ΄λ„ˆ νŽ˜μ΄μ§€ 폴트 */
    comp_t    ac_majflt;    /* 메이저 νŽ˜μ΄μ§€ 폴트 */
    comp_t    ac_swaps;     /* μŠ€μ™‘ 개수 (μ‚¬μš© μ•ˆ 함) */
    char      ac_comm[ACCT_COMM]; /* λͺ…λ Ή 이름 */
};

VERSIONS

acct_v3 κ΅¬μ‘°μ²΄λŠ” glibc 버전 2.6λΆ€ν„° μ •μ˜λΌ μžˆλ‹€.

CONFORMING TO

ν”„λ‘œμ„ΈμŠ€ ν†΅κ³„λŠ” BSDμ—μ„œ μœ λž˜ν•œ 것이닀. λŒ€λ‹€μˆ˜ μ‹œμŠ€ν…œμ— μžˆκΈ°λŠ” ν•˜μ§€λ§Œ ν‘œμ€€ν™”λŠ” λ˜μ–΄ μžˆμ§€ μ•Šμ•„μ„œ μ‹œμŠ€ν…œλ§ˆλ‹€ μ„ΈλΆ€ λ‚΄μš©μ΄ λ‹€μ†Œ λ‹€λ₯΄λ‹€.

NOTES

톡계 파일의 λ ˆμ½”λ“œλ“€μ€ ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ μ‹œκ°„ μˆœμ„œλ‘œ λ“€μ–΄κ°€ μžˆλ‹€.

컀널 2.6.9κΉŒμ§€μ—μ„œλŠ” NPTL μŠ€λ ˆλ“œ 라이브러리둜 μƒμ„±λœ μŠ€λ ˆλ“œλ§ˆλ‹€ λ”°λ‘œ 톡계 λ ˆμ½”λ“œκ°€ κΈ°λ‘λœλ‹€. λ¦¬λˆ…μŠ€ 2.6.10λΆ€ν„°λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ λ§ˆμ§€λ§‰ μŠ€λ ˆλ“œ μ’…λ£Œ λ•Œ ν”„λ‘œμ„ΈμŠ€ 전체에 λŒ€ν•œ 톡계 λ ˆμ½”λ“œ ν•˜λ‚˜λ§Œ κΈ°λ‘ν•œλ‹€.

proc(5)μ—μ„œ μ„€λͺ…ν•˜λŠ” /proc/sys/kernel/acct νŒŒμΌμ—λŠ” λ””μŠ€ν¬ 곡간이 λͺ¨μžλž„ λ•Œ ν”„λ‘œμ„ΈμŠ€ 톡계 κΈ°λŠ₯의 λ™μž‘ 방식을 μ œμ–΄ν•˜λŠ” 섀정듀이 μžˆλ‹€.

SEE ALSO

lastcomm(1), acct(2), accton(8), sa(8)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️