[ Login Shell vs Non-login Shell ]

Login Shell : 계정/암호를 입력하여 Shell 실행하는 것. ex) ssh 로그인 / GUI에서 로그인

Non-login Shell : 로그인 없이 실행되는 Shell. ex) ssh 접속 후 bash 를 다시 실행하는 경우, GUI에서 터미널을 띄운 경우 sudo su 로 계정 변경하는 경우

 

[ 파일 로드 순서 ]

1. /etc/profile

: /etc/profile.d 디렉토리 안의 모든 쉘 스크립트 실행시킴. /etc/profile.d 엔 vim, qt, lang 등 다양한 설정이 sh 파일 형태로 존재. 쉘에 로그인하면 일단 이 sh 파일을 모두 실행시키는 것.

2. ~/.bash_profile or ~/.profile

: 계정 디렉토리에 있는 .bash_profile or .profile 로드. 이 파일들은 계정에 종속적이기 때문에 계정 디렉토리에 존재하므로 ~/.bash_profile or ~/.profile 파일을 로드하게 되는 것. PATH 같은 환경변수를 설정할 때 이 파일을 수정하는 이유가 여기에 있다.

3. ~/.bashrc

: 계정 디렉토리에 있는 .bashrc 파일 로드. 이 파일은 로그인과 상관없이 bash 콘솔을 새롭게 열 때 실행됨. 파일 안에는 아래와 같은 구문이 있는데, /etc/bashrc 파일을 실행하라는 뜻.

if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

4. /etc/bashrc

마지막으로 /etc/bashrc 파일 실행. 이 파일도 /etc/profile 과 마찬가지로 계정과 상관없이 전역적으로 영향을 미침.

 

[ /etc/profile , /etc/bashrc ]

이 파일들은 계정과 상관없이 전역적 설정

 

[ ~/.profile, ~/.bashrc ]

계정 디렉터리로 가면 .bashrc와 .bash_profile or .profile이라는 2개이 파일이 있다.

.bash_profile이란 bash로 로그인 할 때만 로드된다.

반면 .profile은 bash와 상관없이 로그인 하면 로드된다.

두 개 중 하나만 로드되며 bash로 로그인하면 .bash_profile만, bash 외 쉘로 로그인하면 .profile만 로드된다.

이 파일들은 공통적으로 환경변수를 세팅할 때 사용하고, 차이점은 실행되는 시점이 다르다는 것이다

 

1) .profile : 로그인 되는 시점에 실행 (Login Shell). bash와 상관 없는 것들을 넣는다.
2) .bash_profile : Bash로 로그인 되는 시점에 실행 (Login Shell).
3) .bashrc : 새로운 콘솔을 열 때 실행 (Non-login Shell). 로그인 없이 Bash가 실행될 때 로드된다. bash 쉘이 아닌 경우 각 쉘에 맞는 cshrc, tcshrc, kshrc 파일 등이 동일한 역할을 한다.

 

 

[ 환경변수 설정 ]

전역 파일 설정 :

환경설정은 /etc/profile에, 기타 함수나 alias 설정은 /etc/bashrc에..

 

/etc/profile : 

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

/etc/bashrc :

# System wide functions and aliases
# Environment stuff goes in /etc/profile

 

[ 사용자 계정 파일 설정 ]

사용자 디렉터리에 있는 .bash_profile 또는 .profile  .bashrc 가 위의 전역 파일들에 대응된다고 볼 수 있다. 다만 로드 순서는 전역 파일이 먼저고 사용자 파일이 그 다음이다. 두 파일에서 중복되지 않는 내용들은 둘 다 적용된다고 볼 수 있다. 하지만 만약 내용이 중복된다면 사용자 계정 파일의 내용이 우선된다.

 

가급적 사용자 계정 디렉터리에 있는 환경설정 파일을 수정하고, 전역 설정을 변경해야 하는 경우에도 직접 전역 파일을 건드리지 말고 사용자 계정의 환경설정 파일 내에서 연속성을 유지할 수 있도록 수정해야 한다.

ex)  PATH를 수정해야 하는 상황에 놓였을 때, /etc/profile 를 직접 수정하는 것이 아니라 ~/.profile을 아래와 같이 전역 설정을 기반으로 연속적으로 수정한다.

/etc/profile

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

~/.profile

PATH="$PATH:/usr/home/test"

 

 

https://projooni.tistory.com/entry/bashrc-%EC%99%80-profile-%EC%B0%A8%EC%9D%B4%EC%99%80-%EC%9E%91%EB%8F%99%EC%9B%90%EB%A6%AC

 

반응형

[ # Bash ]

Bash 는 Bourne Again Shell 의 약어.

Bash 쉘은 리눅스 쉘이며 리눅스에서 가장널리 사용되는 쉘.

쉘이란 사용자와 커널 사이의 매개체 역할을 하는 프로그램으로 사용자로부터 명령을 받아서 그것을 프로세싱하기 위해 커널에게 넘겨주는 일을 하는 프로그램.

 

[ # 쉘 설정 파일 ]

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

~/.bash_logout

전역 설정 파일과 지역 설정 파일로 구분할 수 있다.

전역 설정 파일은 /etc 디렉토리에 위치.

지역 설정 파일은 보통 사용자의 홈 디렉토리에서 찾아 볼 수 있는 숨김 파일로 .bashrc 와 같이 '.'으로 시작한다

 

1. /etc/profile

환경 변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 전역 시스템 설정과 관련된 파일.

모든 사용자에게 영향을 주며 ~/.bash_profile 은 오직 bash를 실행하는 사용자에게만 영향을 줌.

전역 설정 파일인 /etc/profile이 수행된 다음 수행됨

 

2. ~/.bashrc

별칭(alias)과 bash가 수행될 때 실행되는 함수를 제어하는 지역적인 시스템 설정과 관련된 파일.

별칭과 함수들은 오직 그 사용자에게만 영향을 줌.

이 파일은 전역 설정 파일인 /etc/bashrc가 수행된 다음 수행됨

 

3. ~/.bash_logout

사용자가 로그아웃하기 바로 직전에 실행되는 프로그램에 관한 bash의 지역적인 시스템 설정과 관련된 파일.

오직 사용자에게만 영향을 줌.

 

 

 

참고: 

m.blog.naver.com/PostView.nhn?blogId=writer0713&logNo=220702559704&proxyReferer=https:%2F%2Fwww.google.com%2F

 

hippogrammer.tistory.com/57

 

계정 추가

useradd -u {uid} {계정}

 

계정 패스워드 설정

passwd {계정}

 

계정 uid:gid 확인

cat /etc/passwd

 

uid 변경

usermod -u {uid} {계정}

 

gid 변경

groupmod -g {gid} {그룹명}

 

절대경로 / 밑에 uid 가 500인 모든 파일/디렉토리를 tomcat 으로 변경

find / -user {uid} -exec chown -h {계정} {} \;

 

절대경로 / 밑에 gid 가 500인 모든 파일/디렉토리를 tomcat 으로 변경

find / -group {gid} -exec chgrp -h {그룹명} {} \;

 

* mount 된 nas 내 파일까지 바뀔 수 있으니 주의

 

 

 

 

 

 

 

sm-code.tistory.com/10

 

https://m.blog.naver.com/koromoon/220577110840

반응형

1. 

stdin 0

stdout 1

stderr 2

linuxhint.com/bash_stdin_stderr_stdout/

 

2.

> 파일이 없을 경우 생성 후 쓰기

>> 파일이 없을 경우 생성 후 append 하기

 

 

3.

2>&1 

stderr 를 stdout 으로 같이 찍기

stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean

 

 

*

wget -S http://testapi.com 2>&1 | grep "HTTP/" | awk '{print $2}'

jason-heo.github.io/sys/admin/2016/09/11/curl-http-code.html

 

 

/dev/null

linuxhint.com/what_is_dev_null/

 

 

 

 

반응형

1. 패스워드 바꾸기 (현재 계정의 패스워드 수정)

> passwd 

 

2. 특정 사용자 패스워드 바꾸기

> passwd [username]

 

3. 최소기한이 되지 않아 암호를 바꿀 수 없는 경우 아래와 같은 메시지 발생

You must wait longer to change your password

 

4. 위와 같은 메시지 발생시 암호변경에 필요한 최소한의 경과 일수 확인하기

> chage -l [username]

* 아래는 암호를 바꾸면 7일 뒤 암호를 다시 설정할 수 있는 경우

Minimum number of days between password change : 7

 

5. 기한 설정 바꾸기(root 권한):

case1) 0일 기한 : chage -M0 [username]

case2) 7일 기한 : chage -M7 [username]

 

참고1

참고2

 

반응형

alias (별칭) 생성/조회/수정/삭제

긴 명령어를 매번 치기 힘들 때, 별칭(alias)을 만들어 사용할 수 있다.

서버를 시작하기 위해 cd ~/domains/api/bin/start.sh 를 사용하는 경우 아래와 같이 alias 를 CRUD 할 수 있다.

 

alias 생성
> alias api_start='cd ~/domains/api/bin/; ./start.sh'

alias 목록 조회
> alias

alias 수정
생성과 동일. alias 중복시 덮어써진다.

alias 삭제
> unalias api_start

 

 

반응형

드래그앤드롭 설정을 양방향으로 했음에도 불구하고

호스트<>게스트간 복사붙여넣기가 되지 않을 경우

 

1. 저장소>컨트롤러:IDE >iso 이미지를 VBoxGuestAdditions.iso 로 변경

2. 우분투 실행 후 VBox_GAs_~ 클릭 후 폴더창 우측 상단의 프로그램 실행 버튼 클릭

3. 현재상태 저장 후 재시작

 

참고:

https://3dmpengines.tistory.com/1943

반응형

text 형태가 아닌 파일을 grep 했을 때 발생하는 에러.

> cat engine.log | grep 502

> Binary file (standard input) matches 

 

파일 형식은 아래와 같이 확인이 가능

> file engine.log

> engine.log: ASCII English text, with very long lines

출처 : https://unix.stackexchange.com/questions/335716/grep-returns-binary-file-standard-input-matches-when-trying-to-find-a-string

 

 

-a 옵션을 붙여주어 해결

> cat engine.log | grep 502 -a

> 결과생략

 

출처 : https://bbs.archlinux.org/viewtopic.php?id=32328

반응형

보통 서버 로그를 분석하는 툴(awstats 등)을 서버내에 설치하거나

로그를 다운받은 후 로그 분석 툴을 돌려 로그를 분석하는 걸로 알고있다.

 

하지만 분석을 excel 로 할 테니, 서버 로그를 row 데이터로 뽑아 달라는 갑의 요구사항이 있었다..

(운영은 자기네들이 하면서 왜 이걸 나한테 하라고.....)

 

 

1. 로그에서 필요한 부분들만 발췌하여 row 데이터로 만들어 주는 shell script 를 짠다.

[로그 형식]

2019-04-15 18:50:37,511 INFO  [stdout] (default task-40) INFO : com.test.sample.interceptor.ControllerAOP - # RESPONSE | CONTROLLER = ApiController | METHOD = /mobile/api/getvoddata | RESULT = success | REMOTEADDR = 127.0.0.1 | PORT = 8082 | TIME = 9 ms | IN_PARAMS = {key1=value1, key2=value2, key3=value3} | OUT_PARAMS = {key1=value1, key2=value2}

서버 로그가 위와 같이 쌓이고 있다.

서버 로그에서 불필요한 부분들(검은색 폰트)은 제거하고 남길 데이터들(빨강색 폰트)만 row데이터로 남겨, txt 파일을 생성하는 shell script를 만들어보자.

 

makelowdata.sh 파일 생성

> touch makelowdata.sh 

makelowdata.sh 파일 vi 모드로 편집

> vi makelowdata.sh

 

쉘스크립트 실행시

첫번째 매개변수를 분석대상로그파일,

두번째 매개변수를 추출할 row 데이터의 시작기준시각,

세번째 매개변수를 추출할 row 데이터의 종료기준시각

으로 가정하고 작성

 

[작성 완료한 makelowdata.sh 쉘스크립트]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/sh
LOG_FILE=$1
FROM_TIME=$2
END_TIME=$3
 
if [ $LOG_FILE ] ;
        then
        echo "LOG_FILE is null"
fi
 
if [ $FROM_TIME ] ;
        then
        echo "FROM_TIME is null"
fi
 
if [ $END_TIME ] ;
        then
        echo "END_TIME is null"
fi
 
 
echo "---------------------------------------"
echo "analysing logging starts... "
echo "target log file : $1"
 
if [ -f logrowdata_$2_$3.txt ] ;
       then
           echo "logrowdata_$2_$3 exists"
           exit
        else
           touch logrowdata_$2_$3.txt
fi
 
 
 
var1=`awk -v frd="$FROM_TIME" -v et="$END_TIME" 'frd <= $2 && $2 <= et' $LOG_FILE | grep -'success|fail' | sed 's/IN_PARAMS = //' | sed 's/OUT_PARAMS = //' | awk '{print $1 "\t" $2 "\t" $9 "\t" $16 "\t" $20 "\t" $24 "\t" $28 "\t" $32 "\t" $36}'`
var2=`awk -v frd="$FROM_TIME" -v et="$END_TIME" 'frd <= $2 && $2 <= et' $LOG_FILE | grep -'success|fail' | sed 's/IN_PARAMS = //' | sed 's/OUT_PARAMS = //' | cut -d'|' -f8-9 | sed 's/|/\t/'`
 
 
if [ -f var1.txt ] ;
     then
         rm ./var1.txt
fi
 
if [ -f var2.txt ] ;
     then
         rm ./var2.txt
fi
 
 
echo "$var1" > var1.txt
echo "$var2" > var2.txt
 
 
paste -"\t" var1.txt var2.txt > logrowdata_$2_$3.txt
 
 
 
 
 
 
rm var1.txt var2.txt
 
 
echo "analysing logging has been finished... "
echo "---------------------------------------"
 
cs

 

 

[해석]

6~9 line : 매개변수 1 유효성검사

11~14 line : 매개변수 2 유효성검사 (시간 형식 체크는 굳이 하지 않음..)

16~19 line : 매개변수 2 유효성검사 (시간 형식 체크는 굳이 하지 않음..)

26~32 line : 결과물인 logrowdata_시작시각_종료시각.txt 파일 존재여부 확인 후, 존재할 경우 해당 파일 삭제, 존재하지 않을 경우 파일 생성

-f filename : 파일 존재할 시 true 리턴

36 line : 로그 파일(매개변수 1)에서 필요부분 추출 후 var1 변수에 선언

[한 줄 씩 해석]

1) var1=

>> var1 변수 선언 및 저장

2) `awk -v frd="$FROM_TIME" -v et="$END_TIME" 'frd <= $2 && $2 <= et' $LOG_FILE | 

awk -v 변수="값" -v 변수="값" '정규식' 파일

>> 전역변수 $LOG_FILE 의 파일 중 2번째 필드($2) 가 frd 보다 크거나 같고 et 보다 작거나 같은 row만 뽑는다. 

>> 전역변수 $FROM_TIME, $END_TIME을 각각 frd, et 변수에 저장, awk 정규식 내에서 변수로 사용 (awk -v 옵션 사용)

3) grep -E 'success|fail' | 

grep -E '문자열 조건 문자열'

>>  2)번으로 부터 전달받은 문자열 중, success 혹은 fail 문자열이 포함된 row만 뽑는다. (grep -E 옵션 사용)

4) sed 's/IN_PARAMS = //' | 

sed 's/치환대상문자열/대체문자열/'

>> 3)번으로 부터 전달받은 문자열에서 "IN_PARAMS = " 값을 ""로 치환한다. (sed 's~' 사용)

sed 's/OUT_PARAMS = //' | 

>> 위와 동일

5) awk '{print $1 "\t" $2 "\t" $9 "\t" $16 "\t" $20 "\t" $24 "\t" $28 "\t" $32 "\t" $36}'`

>> 4) 단계 까지 처리한 row 에서 1,2,9,16,20,24,28,32,36 번째 필드를 중간중간 탭("\t") 구분자를 두어 출력 

 

37 line : 로그 파일(매개변수 1)에서 필요부분 추출 후 var2 변수에 선언

[한 줄 씩 해석]

1) var2=

>> var2 변수 선언 및 저장

2) `awk -v frd="$FROM_TIME" -v et="$END_TIME" 'frd <= $2 && $2 <= et' $LOG_FILE | 

awk -v 변수="값" -v 변수="값" '정규식' 파일

>> 전역변수 $LOG_FILE 의 파일 중 2번째 필드($2) 가 frd 보다 크거나 같고 et 보다 작거나 같은 row만 뽑는다. 

>> 전역변수 $FROM_TIME, $END_TIME을 각각 frd, et 변수에 저장, awk 정규식 내에서 변수로 사용 (awk -v 옵션 사용)

3) grep -E 'success|fail' | 

grep -E '문자열 조건 문자열'

>>  2)번으로 부터 전달받은 문자열 중, success 혹은 fail 문자열이 포함된 row만 뽑는다. (grep -E 옵션 사용)

4) sed 's/IN_PARAMS = //' | 

sed 's/치환대상문자열/대체문자열/'

>> 3)번으로 부터 전달받은 문자열에서 "IN_PARAMS = " 값을 ""로 치환한다. (sed 's~' 사용)

sed 's/OUT_PARAMS = //' | 

>> 위와 동일

5) cut -d'|' -f8-9 | 

cut -d'구분문자' -f추출할인덱스

>> 4) 단계 까지 처리한 row 에서 "|" 문자 기준으로 문자열을 분류하여(java split 함수와 비슷) 8~9 번째 문자열만 뽑는다. (cut -d -f 옵션 사용)

6) sed 's/|/\t/'` 

>> 5) 단계 까지 처리한 row 에서 "|" 문자열을 탭("\t")으로 치환

 

40~43 line : var1.txt 파일 존재시 삭제

45~48 line : var2.txt 파일 존재시 삭제

51 line : var1 변수를 var1.txt 파일로 생성

52 line : var2 변수를 var2.txt 파일로 생성

55 line : 탭("\t")을 구분으로 하여 var1.txt, var2.txt 파일을 합친 후(각각의 로우 기준으로 append), logrowdata_매개변수2_매개변수3.txt 파일로 저장

>> paste -d "\t" 파일1 파일2 > 결과파일 : -d 옵션을 사용하여 특정 문자를 구분자로 사용하여 두 문자열을 합친 후 결과파일로 생성

62 line : 임시 파일로 생성했던 var1.txt, var2.txt 를 삭제

 

 

2. 1번 쉘스크립트를 돌려 row 파일 생성

위에서 작성한 쉘스크립트 실행

> ./makelowdata.sh server.log 18:00 19:00

( server.log 로그파일에서 18:00 ~ 19:00시 사이의 로그만 추출 ) 

[쉘스크립트로 추출한 로그]

2019-04-15 18:30:37,511  com.test.sample.interceptor.ControllerAOP  ApiController  

/mobile/api/getvoddata  success  127.0.0.1  8082  9  {key1=value1, key2=value2, key3=value3}  {key1=value1, key2=value2}

 

3. 2번에서 생성한 row 파일을 엑셀 파일로 변환

1) 쉘스크립트로 생성한 txt 파일을 엑셀 파일로 연다.

2) "구분 기호로 분리됨" 선택, char encoding "949 : 한국어" 선택

3) 구분 기호 "탭" 선택

4) 열 데이터 서식 "텍스트" 선택

4. 필터등을 적용하여 분석한다.

분석은 알아서.

 

 

awk 로 로그 뽑을 줄 알았다면 로그 찍을 때 스페이스바 난사를 하지 않았을텐데.. 다음엔 이러지 말아야지.

책 사서 리눅스 공부도 해야겠다..

 

반응형

[기본 명령어]

1. OS 확인

grep . /etc/*-release

 

2. ip 확인

ifconfig

 

3. 계정생성

useradd 계정명

 

4. 계정패스워드변경

passwd 계정명

 

5. 파일 및 폴더에 권한 부여

chmod 755 파일명

 

유저(user)   : read 읽기(4) write 쓰기(2) execute 실행(1) = 4 + 2 + 1 = 7

그룹(group) : read 읽기(4) write 쓰기(2) execute 실행(1) = 4      + 1 = 5

기타(other)  : read 읽기(4) write 쓰기(2) execute 실행(1) = 4      + 1 = 5

Ex]
> chmod 755 start.sh

start.sh 파일에 대해
유저는 읽기(4) 쓰기(2) 실행(1),
그룹은 읽기(4) 실행(1),
기타는 읽기(4) 실행(1) 권한을 부여

 

6. 파일 및 폴더의 소유자 변경

chown 소유계정:소유그룹 파일명

 

ex) chown jboss:jboss start.sh

start.sh 파일에 대한 소유권을 jboss 계정, jboss 그룹으로 바꾼다.

 

7. 파일 읽기

cat 파일명;

 

8. 파일 찾기

find -name '*log*'

: 현재 디렉토리 하위에서 log 문자열이 포함된 파일명 기준으로 찾기

 

* grep

: 보통 grep 만 사용하는 경우는 드물고 파이프(|)와 같이 사용함.

Ex]
grep '기준이되는문자열'
grep -v '제외시킬 문자열'
grep -e '기준문자열1||기준문자열2'
grep -A 3 -B 1 '기준이되는문자열' : -A(after) 기준문자열 뒤로 3줄 -B(before) 이전 1줄까지 출력
cat '파일' | grep '파일내에 찾을 문자열'

9. 삭제

파일 제거

rm 파일명

디렉토리제거

rmdir 디렉토리명

파일 및 디렉토리 전부삭제

rm -rf 디렉토리명

 

프로그램설치

yum : CentOS

apt : Ubuntu

 

10. 압축

.zip 파일 현재위치에 풀기

> unzip file.zip -d .

 

11. 복사 관련

1) directory 통째로 복사

cp -r ./directory .

(omitting ~ 관련 에러가 날 경우 -r 옵션주기)

 

 

<mysql 관련>

1. mysql 접속

mysql -u mysql아이디 -p

 

2. 데이터베이스(스키마) 보기

show databases;

 

3. use 데이터베이스명(스키마);

 

4. 테이블목록 보기

show tables;

 

 

[vi (linux visual editor) 관련]

1. vi 실행

vi 파일명

 

* 좌측 line number 보기

:set number

 

2. 문서 끝으로 이동

G (입력모드아닌 상태에서)

:$

 

2-1. 문서 첫 부분으로 이동

gg (입력모드아닌 상태에서)

 

3. 특정 문자를 찾아 해당 문자 위치로 이동

3-1. 순차검색

:/ 찾을문자열

3-2. 역순검색 

:? 찾을문자열 

 

3-1. 문자 찾기 커서 이동(이전/다음 문자로 이동)

방향대로 이동: n

역방향으로 이동: N

Ex] server.log 파일에서 exception 이 들어간 문자열을 vi 모드에서 찾고싶은 경우

1. 문서의 끝에서 부터 찾기(backward 방향으로 서칭하기)
> vi server.log
> :$
>:?exception
n (현재 탐색 방향(backward)으로 이동하며 exception 문자열이 포함된 부분으로 커서 이동 
N (현재 탐색 방향과 반대방향(forward)으로 이동하며 exception 문자열이 포함된 부분으로 커서 이동

2. 문서의 시작점부터 찾기(forward 방향으로 서칭하기)
>vi server.log
(입력모드 아닌 상태에서) gg 
>:/exception
n (현재 탐색 방향(forward)으로 이동하며 exception 문자열이 포함된 부분으로 커서 이동
N (현재 탐색 방향과 반대방향(backward)으로 이동하며 exception 문자열이 포함된 부분으로 커서 이동

 

4. 문자 지우기

delete 키

한줄 지우기 : 입력모드아닌 상태에서 dd

 

5. 문자열 치환 

%s/대상문자열/치환할문자열/g (전역치환)

%s/대상문자열/치환할문자열/i (대소문자구분없이 치환)

 

6. 문자 입력 (INSERT 모드로 전환)

i 입력

INSERT 모드 종료는 ctrl + c 혹은 esc

 

7. 종료

6-1. 저장 후 종료

:wq

6-2. 저장

:w

6-3. 저장 없이 종료

:q!

 

[crontab 관련]

crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)

1. crontab -l

목록보기

 

2. crontab -e

edit 모드

 

3. crontab -r 

전체 제거

*사용 자체를 하지말 것

 

 

[네트워크 관련]

1. 네트워크 상태 보기 

netstat

 

2. 방화벽 확인

2-1. telnet ip port

현재 서버에서 ip port 에 대한 방화벽 확인

telnet 종료키 : ctrl + ]

 

2-2. ping domain or ip

현재 서버에서 domain 에 대한 ping 확인, ip 알아내기

ex]

> ping naver.com

> Ping naver.com [210.89.164.90] 32바이트 데이터 사용:

> telnet 210.89.164.90 80

> ctrl + ]

 

2-3. netstat -tnlp

열려있는 포트 확인

 

<프로세스 관련>

1. 프로세스 확인

ps -ef

 

2. 프로세스 중 특정 프로세스만 확인

ps -ef | grep 프로그램명

파이프(|) 사용

 

3. 프로세스 죽이기

kill -9 프로세스번호

*프로세스 번호는 ps -ef | grep 프로그램명 으로 확인

 

4. 서버 상태 확인(CPU, RAM 등)

top

 

<방화벽 관련>

firewalld : CentOS

ufw : Ubuntu

서버 ftp 설정 (vsftpd): 참고

 

[bash 관련]

which/whereis/locate 참고

1. which

명령어의 위치 찾기

which find

which -a find

 

2. whereis

명령어의 실행파일위치, 소스위치, man 파일위치

whereis find

 

3. locate

패턴 사용하여 파일 위치 찾기

locate *.sh

locate -n 10 *.sh 패턴에 속한 파일 중에 지정한 개수만큼만 검색

 

 

반응형

맥주소 MAC ADDRESS 확인하기

 

1. 윈도우키+r

2. cmd 입력

3. ipconfig /all 입력 (아래 참고)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
C:\Users\user>ipconfig /all
 
Windows IP 구성
 
   호스트 이름 . . . . . . . . : JP
   주 DNS 접미사 . . . . . . . :
   노드 유형 . . . . . . . . . : 혼성
   IP 라우팅 사용. . . . . . . : 아니요
   WINS 프록시 사용. . . . . . : 아니요
 
이더넷 어댑터 이더넷:
 
   미디어 상태 . . . . . . . . : 미디어 연결 끊김
   연결별 DNS 접미사. . . . :
   설명. . . . . . . . . . . . : Qualcomm Atheros AR8161 PCI-E Gigabit Ethernet Controller (NDIS 6.30)
   물리적 주소 . . . . . . . . : 99-99-99-99-99-99
   DHCP 사용 . . . . . . . . . : 아니요
   자동 구성 사용. . . . . . . : 예
 
 
무선 LAN 어댑터 Wi-Fi:
 
   연결별 DNS 접미사. . . . :
   설명. . . . . . . . . . . . : Realtek RTL8723AE Wireless LAN 802.11n PCI-E NIC
   물리적 주소 . . . . . . . . : 99-99-99-99-99-99
   DHCP 사용 . . . . . . . . . : 예
   자동 구성 사용. . . . . . . : 예
   링크-로컬 IPv6 주소 . . . . : 
   IPv4 주소 . . . . . . . . . : ...
   서브넷 마스크 . . . . . . . : ...
   임대 시작 날짜. . . . . . . : 
   임대 만료 날짜. . . . . . . : 
   기본 게이트웨이 . . . . . . : 
   DHCP 서버 . . . . . . . . . : 
   DHCPv6 IAID . . . . . . . . : 
   DHCPv6 클라이언트 DUID. . . : 
   DNS 서버. . . . . . . . . . : 
                                 
   Tcpip를 통한 NetBIOS. . . . : 사용
 
cs

유선으로 인터넷을 사용하는 경우 : 이더넷 영역의 물리적 주소가 맥어드레스

와이파이로 인터넷을 사용하는 경우 : 무선 LAN 어댑터 영역의 물리적 주소가 맥어드레스

 

반응형

+ Recent posts