linux


부팅 시 자동 검사 (Has gone x days without being checked. check forced) 해제 방법


written by HuscarL



 설명


[Linux] 부팅 시 Has gone x days without being checked, check forced. 메시지 원인 및 해지방법


해당 기능은 Linux 파일시스템 자체 보호를 위한 기능으로서, mount 횟수가 특정 수를 넘거나 점검한지 특정 일이 지나면, 재부팅시에 파일시스템을 점검하게 되는 옵션이다.

안전성을 위해 마련된 기능이므로 시간의 여유가 없는 경우가 아니라면 활성화 해두는 것이 권장 사항이다.



파티션 리스트 확인

# df -Th

Filesystem    Type     Size   Used  Avail Use% Mounted on

/dev/sdb5     ext3     180G   7.6G   164G   5% /

/dev/sdb2     ext3     102G   394M    96G   1% /var

/dev/sda1     ext3     295G    51G   229G  19% /srv

/dev/sdb1     ext3     104M    13M    87M  13% /boot

tmpfs        tmpfs     9.5G      0   9.5G   0% /dev/shm



체크 설정을 확인한다.

#tune2fs -l /dev/sda1 | egrep ^"Maximum|Check"

Maximum mount count:      33

Check interval:           15552000 (6 months)


33 번 이상 mount 되거나,  재부팅 6개월이 지나면 재부팅 시 자동으로 검사하는 옵션이 설정되어 있다.

File System이 클 경우,  굉장히 오랜 시간이 걸리므로 필자는 부득이한 경우가 아니면 해지하고 있다.


해지 옵션은 아래와 같다.

tune2fs -c -1 /dev/sda1

tune2fs -i 0 /dev/sda1


해지 후 설정 확인

# tune2fs -l /dev/sda1 | egrep ^"Maximum|Check"

Maximum mount count:      -1

Check interval:           0 (<none>)


이제 시스템 부팅 시 자동 파일시스템 검사 기능이 해지되어 진행되지 않는다.



 정리 및 출처


직접 작성


방문 해주셔서 감사합니다. 로그인 없이 가능한

아래 하트♥공감 버튼을 꾹 눌러주시면 감사하겠습니다! 



linux


sed 및 awk 사용법


written by HuscarL



 설명


[Linux] sed 및 awk 사용법

< SED - a Stream EDitor >

sed [-e script][-f script-file][file...]

기본적인 기능은 ed에서 따 왔으며, 이 기능들은 모두 sed에 적용이 된다. 다만 ed는 대화형 편집기이며,
sed는 스트리밍 편집기이다. 대화형 편집기와 스트리밍 편집기의 차이점은 대화형 편집기는 입력 및 출력이
하나로 이루어지며, 스 트리밍 편집기는 하나의 입력이 하나의 출력을 낸다는 것이다.
\n 을 개행문자로 사용하는 스트리밍 에디터이다. 

찾기(search), 출력(print),
sed -n '/abd/p' list.txt : list.txt 파일을 한줄씩 읽으면서(-n : 읽은 것을 출력하지 않음) abd 문자를 찾으면 그 줄을 출력(p)한다.

치환(substitute),
sed 's/addrass/address/' list.txt : addrass를 address로 바꾼다. 단, 원본파일을 바꾸지 않고 출력을 바꿔서 한다.
sed 's/addrass/address/' list.txt > list2.txt
sed 's/\t/\ /' list.txt : 탭문자를 엔터로 변환
sed 's/□□*/□/' list.txt : ( *표시: □ 는 공백 문자를 표시한다. ) 위의 구문은 한개이상의 공백문자열을 하나의 공백으로 바꾼다.

추가(insert)
scriptfile - s/
삭제(delete)
sed '/TD/d' 1.html : TD 문자가 포함된 줄을 삭제하여 출력한다.
sed '/Src/!d' 1.html : Src 문자가 있는 줄만 지우지 않는다.
sed '1,2d' 1.html : 처음 1줄, 2줄을 지운다.
sed '/^$/d 1.html : 공백라인을 삭제하는 명령이다
파 일 이름만을 뽑아내는 정규식
s/^.*\/\([a-zA-Z0-9.]*\)".*$/\1/ : ^는 라인의 맨 처음, .* 아무문자열, \(, \)은 정규표현식을 그룹화, $ 는 라인의 맨 끝.
( s;^.*\/\([a-zA-Z0-9.]*\)".*$;\1;) \1는 그룹화된 첫번째 요소를 말한다.
[a-zA-Z0-9.] 는 알파벳과 숫자 및 .(콤마)를 표현하는 문자(character)를 말한다.
즉 GF02.jpg와 같은 문자열을 첫번째 그룹화하고 난 다음 라인 전체를 그룹화된 내용으로 바꾸는 것이다. 

/g : global을 의미 한줄에 대상문자가 여러개일 때도 처리하도록 한다.

who | sed -e 's; .*$;;' : 각 라인의 첫 번째 공백에서부터 마지막까지 삭제하라.

who | sed -e 's;^.* ;;' : 각 라인의 처음부터 맨 마지막 공백까지 삭제하라.

who | sed -e 's;^.*:;;' : 각 라인의 처음부터 : 문자가 있는 곳(:문자포함)까지 삭제하라. 

-n 옵션
sed는 항상 표준 출력에서 입력 받은 각 라인을 나타낸다는 것을 알아냈다. 그러나 때때로 한 파일로부터 몇 개의 라인들을 추출해 내기 위해 sed를 사용하기를 원할 때도 있다. 이러한 경우에 -n옵션을 사용한다. 이 옵션은 사용자가 만약 해야 할 일을 정확히 말해 주지 않는다면 임의의 라인을 프린트하는 것을 원하지 않는다고 sed에게 말한다. 따라서 p명령이 같이 쓰인다. 라인 번호와 라인 번호의 범위를 나타냄으로써 sed를 사용하여 텍스트의 라인들을 선택적으로 프린트할 수 있게 한다. 다음에서 볼 수 있는 바와 같이, 한 파일로부터 첫 번째 두 라인이 프린트되었다.

$ sed -n '1,2p' intro Just print the first 2 lines from intro file.

만약 라인 번호 대신에 슬래시로 에워 싸인 문자열과 함께 p명령이 쓰인다면 sed는 이들 문자들이 포함하고 있는 표준 입력을 통해서 라인들을 프린트하게 된다. 따라서 하나의 파일로부터 처음의 두 라인을 프린트하기 위하여 다음과 같이 사용될 수 있다.

$ sed -n '/UNIX/p' intro Just print lines containing UNIX
sed '5d' : 라인 5를 삭제
sed '/[Tt]est/d' : Test 또는 test를 포함하는 모든 라인들을 삭제
sed -n '20,25p' text : text로부터 20에서 25까지의 라인들만 프린트
sed '1,10s/unix/UNIX/g' intro : intro의 처음 10개의 라인들의 unix를 UNIX로 변경
sed '/jan/s/-1/-5' : jan을 포함하는 모든 라인들 위의 첫 번째 -1을 -5로 변경
sed 's/...//' data : 각 data라인으로부터 처음 세 개의 문자들을 삭제
sed 's/...$//' data : 각 데이터 라인으로부터 마지막 3문자들을 삭제
sed -n '1' text : 비 프린트 문자들을 \nn으로 (여기서 nn은 그 문자의 8진수 값임),
그 리고 탭 문자들을 > 로 나타내는 각 텍스트로부터의 모든 라인들을 프린트

awk 명령어

awk '/west/' datafile : west 라는 글이 있는 줄 출력
awk '/^north/' datafile : north로 시작하는 줄 출력
awk '/^(no | so)/' datafile : no 또는 so 로 시작하는 줄 출력
awk '{ print $3, $2 }' datafile : datafile 리스트의 세 번째 와 두 번째 필드를 스페이스로 띄어서 출력
awk '{ print $3 $2 }' datafile : datafile 리스트의 세 번째 와 두 번째 필드를 그냥 붙여서 출력 
awk '{ print "Number of fields : " NF} ' datafile : datafile의 각 줄마다의 필드수를 리턴한다.
awk '$5 ~ /\.[7-9]+/' datafile : 다섯 번째 필드가 마침표 다음엣 7과 9사이 숫자가 하나 이상 나오는 레코드 출력
awk '$2 !~ /E/ { print $1, $2 }' datafile : 두 번째 필드에 E 패턴이 없는 레코드의 첫 번째와 두 번째 필드 출력
awk '$3 ~ /^Joel/{ print $3 " is a nice guy."} ' datafile : 세 번째 필드가 Joel로 시작하면 " is a nice guy"와 함께 출력
awk '$8 ~ /[0-9][0-9]$/ { print $8 }' datafile : 여덟 번째 필드가 두 개의 숫자이면 그 필드가 출력
awk '$4 ~ /Chin$/ { print "The price is $" $8 "." }' datafile : 네 번째 필드가 Chine으로 끝나면 "The price is $" 8번 필드 및 마침표가 출력
awk -F: '{ print $1 } ' datafile : -F 옵션은 입력 필드를 ':'로 구별.
awk -F"[ :]" '{ print $1, $2 } ' datafile : 입력 필드로 스페이스와 ':'를 필드 구별자로 사용
awk -f awk_script.file datafile : -f 옵션은 awk 스크립트 파일 사용할 때 씀.


awk '$7 == 5' datafile : 7번 필드가 5와 같다면 출력
awk '$2 == "CT" { print $1, $2 }' datafile : 2번 필드가 "CT" 문자와 같으면 1, 2 번 필드 출력
awk '$7 < 5 { print $4, $7}' datafile : 7번 필드가 5보다 작다면 4번, 7번 필드 출력
awk '$6 > .9 { print $1, $6}' datafile : 6번 필드가 .9 보다 크다면 1번, 6번 출력
awk '$8 > 10 && $8 < 17 ' datafile 
awk '$2 == "NW" || $1 ~ /south/ { print $1, $2 }' datafile



 정리 및 출처




방문 해주셔서 감사합니다. 로그인 없이 가능한

아래 하트♥공감 버튼을 꾹 눌러주시면 감사하겠습니다! 



linux



sar로 일자별 하드웨어 사용량 확인


written by HuscarL



 설명


[Linux] sar로 일자별 하드웨어 사용량 확인하기



리눅스는 최근 30일에 해당하는 하드웨어 사용량 정보를 /var/log/sa 아래에 보관한다. 

sa01,sa02,sa03,sa04. . . . . . . . . .


sar -r -f /var/log/sa/sa04

: 이번달 4일에 해당하는 정보 확인


06:00:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty

06:10:01 PM    244344  15170888     98.41       100  13766076   3807512     11.78   7710300   6600556       696

06:20:01 PM    182160  15233072     98.82       100  13826040   3808744     11.79   7770524   6601320      1600

06:30:02 PM    670180  14745052     95.65       100  13332372   3808400     11.79   7207612   6669880       344

06:40:01 PM    607100  14808132     96.06       100  13392108   3808436     11.79   7268644   6670388       404

06:50:01 PM    547724  14867508     96.45       100  13452116   3807988     11.79   7327304   6671260       728



[root@server-2 sa]# cd /var/log/sa

[root@server-2 sa]# ll -h

total 71M

-rw-r--r-- 1 root root 1.4M Jul  1 23:50 sa01

-rw-r--r-- 1 root root 1.4M Jul  2 23:50 sa02

-rw-r--r-- 1 root root 1.4M Jul  3 23:50 sa03

-rw-r--r-- 1 root root 1.4M Jul  4 23:50 sa04

-rw-r--r-- 1 root root 1.4M Jul  5 23:50 sa05

-rw-r--r-- 1 root root 1.4M Jul  6 23:50 sa06

-rw-r--r-- 1 root root 1.4M Jul  7 23:50 sa07

-rw-r--r-- 1 root root 1.4M Jul  8 23:50 sa08

-rw-r--r-- 1 root root 1.4M Jul  9 23:50 sa09

-rw-r--r-- 1 root root 1.4M Jul 10 23:50 sa10

-rw-r--r-- 1 root root 1.4M Jul 11 23:50 sa11

-rw-r--r-- 1 root root 1.4M Jul 12 23:50 sa12

-rw-r--r-- 1 root root 1.4M Jul 13 23:50 sa13

-rw-r--r-- 1 root root 1.4M Jul 14 23:50 sa14

-rw-r--r-- 1 root root 683K Jul 15 11:30 sa15

-rw-r--r-- 1 root root 1.4M Jun 16 23:50 sa16

-rw-r--r-- 1 root root 1.4M Jun 17 23:50 sa17

-rw-r--r-- 1 root root 1.4M Jun 18 23:50 sa18

-rw-r--r-- 1 root root 1.4M Jun 19 23:50 sa19

-rw-r--r-- 1 root root 1.4M Jun 20 23:50 sa20

-rw-r--r-- 1 root root 1.4M Jun 21 23:50 sa21

-rw-r--r-- 1 root root 1.4M Jun 22 23:50 sa22

-rw-r--r-- 1 root root 1.4M Jun 23 23:50 sa23

-rw-r--r-- 1 root root 1.4M Jun 24 23:50 sa24

-rw-r--r-- 1 root root 1.4M Jun 25 23:50 sa25

-rw-r--r-- 1 root root 1.4M Jun 26 23:50 sa26

-rw-r--r-- 1 root root 1.4M Jun 27 23:50 sa27

-rw-r--r-- 1 root root 1.4M Jun 28 23:50 sa28

-rw-r--r-- 1 root root 1.4M Jun 29 23:50 sa29

-rw-r--r-- 1 root root 1.4M Jun 30 23:50 sa30

-rw-r--r-- 1 root root 1.1M Jul  1 23:53 sar01

-rw-r--r-- 1 root root 1.1M Jul  2 23:53 sar02




정확한 시간대 확인을 위해서는 ls 명령어로 생성된 시각을 확인해보면 된다.



 정리 및 출처


직접 작성


방문 해주셔서 감사합니다. 로그인 없이 가능한

아래 하트♥공감 버튼을 꾹 눌러주시면 감사하겠습니다! 



+ Recent posts