15. hdparm(하드 디스크 정보보기/설정) |
1) 경로 : /sbin/hdparm
2) 요약 : 하드 디스크, CD-ROM 등의 디바이스의 설정을 보여주거나 설정
3) 사용 방법 : hdparm [옵션] [장치명]
4) 옵션
-a [sectcount] : 파일 시스템의 미리 읽기(read-ahead)를 설정하거나 출력
-A[0 또는 1] : 드라이브의 미리 읽기(read-lookahead)의 설정을 on/off
-c [chipset_mode] : IDE나 확장 IDE 32비트 I/O를 설정하거나 정보를 출력
-C : IDE의 전원 모드 상태를 검사
-d [0 또는 1] : DMA 기능을 on/off
-E : CD-ROM의 속도를 설정
-f : 디바이스를 제거하기 위해 버퍼 캐시를 동기화
-g : 드라이브의 지오메티르(geometry) 정보를 출력
-h : 사용법 출력
-i : 부팅 시에 볼 수 있는 드라이브의 정보를 출력
-l(엘) : 드라이브로부터 직접 드라이브의 정보를 출력
-k [0 또는 1] : keep_settings_over_reset 정보를 설정하거나 출력
-K [0 또는 1] : 드라이브의 keep_features_over_reset 정보를 설정
-L [0 또는 1] : 드라이브의 락을 설정
-m [sectcount] : 드라이브의 다중 섹터 정보를 설정하거나 출력
-p [0~5 중 하나] : 드라이브의 프리패치(prefetch) 수를 설정
-P [sectcount] : 장치의 내부적인 프리패치 구조를 위한 최대 섹터 수를 설정
-q : 옵션을 화면에 출력하지 않음. -i, -v, -t, -T 옵션에는 적용되지 않음
-r [0 또는 1] : 읽기 전용 모드로 설정하거나 정보를 출력
-R : IDE 인터페이스를 등록
-S [timeout] : 드라이브의 대기(스핀다운, spindown) 시간을 설정
-T : 캐시 읽기 시간을 출력
-t : 장치 읽기 시간을 출력
-u [0 또는 1] : 장치의 interrupt-unmask를 설정하거나 정보를 출력
-U : IDE 인터페이스를 제거
-v : -i 옵션을 제외하고, 모든 설정을 출력
-W [0 또는 1] : IDE 드라이브의 쓰기 캐시(write-caching) 기능을 on/off
-X [xfermode] : 새로운 IDE/ATA2 드라이브를 위해 IDE 전송 모드를 설정
-y : IDE 드라이브를 대기 모드로 전환
-Y : IDE 드라이브를 슬립 모드로 전환
-Z : 오토 파워세이브(auto-powersaving) 모드를 비활성화
5) 추가 설명
하드 디스크의 정보를 봅시다. 아래 예제에서 드라이브는 16비트 I/O를 지원하고 있습니다.
# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry =9727/255/63, wectors - 156301488, w5q45 = 0
CD-ROM의 DMA 기능을 봅시다. using-dma 설정이 활성화되어 있습니다.
# hdparm -d /dev/hdd
/dev/hdd:
using_dma = 1 (on)
DMA 기능을 off로 설정하려면, -d 0 옵션을 사용합니다.
# hdparm -d 0 /dev/hdd
/dev/hdd:
settingusing_dma to 0 (off)
using_dma = 0 (off)
CD-ROM이 CD를 인식하지 못하거나 다운되는 현상이 있다면 이는 DMA 기능에 문제가 있을 수 있습니다. 아래 예제에서는 hdparm 명령어로 DMA를 off 시키고, IO_support를 32비트로 설정합니다.
# hdparm -c1 -d0 /dev/CD-ROM
/dev/CD-ROM:
setting 32-bit IO_support flag to 1
settingusing_dma to 0 (off)
HDIO_SET_DMA failed : Operation not permitted
IO_support = 1 (32bit)
using_dma = 0 (off)
하드 디스크 정지 시키기 |
시스템이 5분 이상 아무것도 하지 않을 때 하드 디스크를 대기(Standby) 상태로 만들 수 있습니다.
# hdparm -S 60 /dev/sda
/dev/sda: setting standy to 60 (5 minutes) |
16. logger(시스템 로그 기록) |
1) 경로 : /usr/bin/logger
2) 요약 : 주어진 메시지를 /var/log/messages 파일에 기록
3) 사용 방법 : logger [옵션] [메시지...]
4) 옵션
-f file : 파일(file)에 로그를 기록
-i : 각각의 라인마다 logger의 프로세스 ID를 기록
-p pri : 우선순위(pri)를 메시지와 같이 기록. 기본값은 user.notice
-s : 시스템 로그 뿐만 아니라 표준 출력으로도 메시지를 기록
-t tag : 태그(tag)를 각각의 라인마다 기록
5) 추가 설명
logger 명령어는 주어진 메시지를 보내 /var/log/messages 파일에 로그 정보를 저장합니다.
예를 들어 아래 메시지를 로그 파일에 저장해 봅시다.
# logger System Logger Testing
/var/log/messages 파일의 최근 로그에서 logger 명령어로 저장한 메시지를 볼 수 있습니다.
# tail -3 /var/log/messages
Mar 11 14:20:22 localhost dhclient: DHCPACK from 129.168.1.1
Mar 11 14:22:10 localhost dhclient: bound to 192.168.1.105 -- renewal in 40513 seconds.
Mar 11 15:00:10 localhost root: System Logger Testing
17. logrotate(로그 파일 관리) |
1) 경로 : /usr/sbin/logrotate
2) 요약 : 로그 파일을 주기적으로 압축하고 이름을 바꾸어 관리
3) 사용 방법 : logrotate [옵션] <설정파일>
4) 옵션
-d : 디버거 모드
-f, --force : 새로운 목록이 추가되었거나 오래된 로그 파일을 수동으로 삭제할 경우 강제로 실행
-s, --state [statefile] : 지정한 정책 파일(statefile)로 logrotate를 실행
--usage : 사용법 출력
5) 추가 설명
logrotate 명령어는 log 파일들으르 주기적으로 관리합니다. 지정된 주기에 맞춰 로그 파일의 이름을 변경 또는 압축, 삭제합니다. 보통 /etc/cron.daily 파일에 logrotate라는 스크립트를 생성하여 매일 정기적으로 실행합니다.
/etc/cron.daily/logrotate 파일을 한번 살펴 봅시다.
# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [$EXITVALUE != 0]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
/usr/sbin/logrotate 명령은 /etc/logrotate.conf 파일을 참조하여 매일 실행합니다.
/etc/logrotate.conf의 파일은 아래의 내용들을 포함합니다.
구분 | 설명 |
weekly | 1주일에 한 번씩 로그 파일이 순환 |
rotate 4 | 최대 4개까지의 백업 로그 파일을 남김 |
create | 오래된 ㄹㅗ그 파일의 순환 후 새로운 로그 파일을 생성 |
compress | 압축으로 로그 파일을 보관 |
include /etc/logrotated.d | rpm 등의 패키지 매니저로 설치되는 프로그램들은 logrotate 설정 파일을 이 위치에 저장 |
/var/logwtmp { monthly minsize 1M create 0664 root utmp root 1 } |
wtmp의 logrotate 설정 정보는 다음과 같이 표현 - 한 달에 한 번씩 로그 파일 순환 - 로그 파일 크기가 1M가 넘으면 순환 - 새로운 로그 파일의 정보(권한, 사용자명, 그룹) - 단일 파일을 사용. 백업 파일이 없음 |
logrotate 설정 파일이 있는 /etc/logrotate.d/ 디렉터리를 살펴봅니다.
# ls /etc/logrotate.d/
acpid conman cups httpd kdm libvirtd mgetty named ppp psacct radiusd rpm samba sa-update setroubleshoot squid syslog tux vsftpd.log wpa_supplicant yum
위의 파일 중 rpm의 logrotate 설정을 살펴봅니다. 아래 내용 중 notifempty는 log 파일이 비어 있을 경우 교체하지 말라는 뜻입니다. 또한 missingok는 순환하는 로그 파일을 찾을 수 없다면 무시하고 다음 파일을 사용하라는 의미입니다.
# cat /etc/logrotate.d/rpm
/var/log/rpmpkgs {
weekly
notifempty
missingok
}
18. losetup(루프 장치 설정) |
1) 경로 : /sbin/losetup
2) 요약 : 루프 장치를 설정/제어
3) 사용 방법 : losetup [옵션] 루프장치
4) 옵션
-a, all : 모든 루프 디바이스 상태를 출력
-c, --set-capacity loopdev : 루프 디바이스에 속한 파일의 크기를 다시 지정
-d, --detach loopdev : 루프 디바이스에 속한 파일이나 디바이스를 분리
-e, -E, --encryption encryption_type : 지정한 이름이나 숫자의 데이터를 암호화
NONE : 암호화 하지 않음(기본값)
XOR : XOR 암호화
DES : DES 암호화
-f, --find : 사용 가능한 처 번째 루프 디바이스를 찾음
-h, --help : 사용법 출력
-o, --offset offset: 파일이나 디바이스의 오프셋 바이트를 지정
5) 추가 설명
losetup 명령어는 루프 디바이스를 파일 또는 블록 장치와 연결하거나 루프 디바이스의 상태를 확인할 수 있습니다. losetup 명령어는 loop 모듈이 로딩ㄷ외어야만 사용할 수 있습니다.
# modprobe loop
만인 모듈이 없다면 커널 이미지 설정 파일에 CONFIG_BLK_DEV_LOOP 값이 y로 설정되어 있기 때문입니다.
# cat /boot/config-2.6.32-23-generic | grep LOOP
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_AUFS_BDEV_LOOP=y
먼저 -f 옵션으로 사용할 수 있는 루프 디아비스를 확인합니다.
# losetup -f
/dev/loop0
현재 디렉터리에 루프 디바이스에 연결할 losetup.file 파일을 하나 생성합니다.
# dd if=/dev/zero of=./losetup.file bs=1k count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.000416833 s, 246 MB/s
생성한 파일을 /dev/loop0 디바이스에 연결할 수 있습니다.
# losetup /dev/loop0 ./losetup.file
# losetup -a
/dev/loop0: [0801]:1048696 (/root/losetup.file)
루프 디바이스에 연결한 파일을 ext3 포맷으로 생성하고 마운트 할 수 있습니다.
# mkfs -t ext3 /dev/loop0
# mount -t ext3 /dev/loop0 /mnt
모든 작업이 끝난 후에는 -d 옵션으로 루프 디바이스에서 연결을 해제합니다.
# losetup -d /dev/loop0
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 시스템 관리 명령어 6탄(shutdown, ulimit, uname, uptime, vmstat) (0) | 2020.03.11 |
---|---|
[RHEL6] 시스템 관리 명령어 5탄(poweroff, reboot, runlevel, setup) (0) | 2020.03.11 |
[RHEL6] 시스템 관리 명령어 3탄(chkconfig, crontab, dmesg, free, halt) (0) | 2020.03.05 |
[RHEL6] 시스템 관리 명령어 2탄(basename, batch, cfgamd, chage) (0) | 2020.03.04 |
[RHEL6] 시스템 관리 명령어 1탄(alias, at, atq, atrm, badblocks) (0) | 2020.02.20 |
댓글