• 지정한 속성대로 정해진 위치에 파일을 복사하는 명령어
  • install 명령어 사용하여 파일 복사하면, 복사된 파일이 기존 파일과 동일한 권한을 상속함
  • 복사된 파일은 복사를 수행한 사용자 및 그룹에 대한 권한을 가짐

  • install 명령어 경로
    /usr/bin/install
     
  • install 명령어 사용법
    install [옵션] [파일] 디렉토리 
     
  • install 명령은 파일의 권한 속성들, 소유주, 그룹을 지정해서 복사
  • cp 명령과 비슷하지만, 필요하면 파일이 복사될 경로를 만들고, 다른 소유자나 그룹을 지정하는 등의 다양한 기능을 제공
  • install 명령어는 컴파일 된 프로그램을 정확한 위치에 설치하는 데 사용 → Makefile에서 사용

 

install 명령어 옵션

short 옵션 long 옵션 설명
-d --directory 대상 디렉터리를 지정
지정한 디렉터리가 없다면 대상 디렉토리 생성함
-g group --group group 새로운 파일의 그룹 권한을 지정한 group ID 혹은 group 이름으로 설정
-m mode --mode mode 새로운 파일의 퍼미션을 지정한 mode 값으로 설정
기본값은 0755
-o [owner] --owner [owner] 파일의 소유자(owner)를 설정
만약 root 계정에서 지정하지 않으면, root 소유권 설정
-s --strip 심볼 테이블을 제거
  --help 사용법 출력
  --version 버전 정보 출

 

install 명령어 예시

### test.txt 파일 권한 및 퍼미션 확인
$ ls -al ./test.txt
-rw-r--r-- 1 hippo hippo 5 Mar 13 01:02 ./test.txt

### install 명령어로 test.txt 파일 /tmp로 복사
$ install -m 777 test.txt /tmp

### /tmp/test.txt 파일 복사 및 권한, 퍼미션 확인
$ ls -al /tmp/test.txt
-rwxrwxrwx 1 root root 5 Mar 13 01:04 /tmp/test.txt

 

 

 

  • pwconv 명령어는 리눅스 시스템에 패스워드 정책을 shadow 패스워드 방식으로 적용하는 명령어
  • pwconv 명령어가 수행
    1. /etc/passwd 파일의 두번째 필드에 있는 암호화된 패스워드를 모두 x로 표시
    2. /etc/shadow 파일의 두번째 필드에 암호화된 패스워드를 저장

  • 현재 리눅스 서버들은 대부분 shadow 패스워드 정책을 이미 적용하고 있으므로 pwconv는 리눅스 버전에서는 거의 필요하지 않는 명령어
  • pwconv명령어와 반대로 패스워드정책을 shadow 패스워드정책에서 일반 패스워드정책으로 변경하는 pwunconv 명령어도 함께 알아 두면 좋음

 

명령어위치

/usr/sbin/pwconv



사용 형식

pwconv



예시

  1. pwconv 명령어을 사용한 후 /etc/passwd 파일 확인 → 사용자 계정의 비밀번호 부분 x 표시
  1. pwconv 명령을 통해 /etc/passwd, /etc/shadow 파일이 생성된 것을 확인 가능



/etc/passwd 파일과 /etc/shadow 파일이란

1. /etc/passwd 파일

  • /etc/passwd 파일에는 Linux 시스템에 등록된 사용자 계정마다 정보가 담겨있음
  • /etc/passwd 파일은 일반사용자들이 내용 확인 가능



2. /etc/shadow 파일

  • 은 root만이 확인 가능(root만 읽을 수 있도록 400이라는 퍼미션을 가짐)
  • /etc/shadow 파일에서 패스워드 사용 문자 수, 사용 기간 설정 등 설정 가능

 

  • DIG(Domain Information Groper)는 DNS 이름 서버를 쿼리하는 강력한 명령줄 도구
  • dig 명령어를 사용하면 호스트 주소, 메일 교환 및 이름 서버를 비롯한 다양한 DNS 레코드에 대한 정보를 쿼리 가능
  • dig 명령어는 유연성과 사용 편의성 때문에 DNS 문제를 해결하는 데 시스템 관리자 중 가장 많이 사용되는 도구
  • DNS 조회 웹 페이지 : https://ko.rakko.tools/tools/18/

1. dig 설치

  • 시스템 유형에서 dig 명령을 사용할 수 있는지 확인

    $ dig -v
    DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3

  • CentOS 및 Fedora에 dig 명령어 설치

    $ yum install -y bind-utils


2. Dig 출력 이해

  • 간단한 형식으로 추가 옵션 없이 단일 호스트(도메인)를 쿼리

  • dig 명령은 매우 상세하게 도메인의 내용을 출력

  • www.baidu.com 도메인으로 테스트

    $ dig www.baidu.com
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25980
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      A
    
    ;; ANSWER SECTION:
    www.baidu.com.          356     IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       83      IN      CNAME   www.wshifen.com.
    www.wshifen.com.        296     IN      A       119.63.197.151
    www.wshifen.com.        296     IN      A       119.63.197.139
    
    ;; Query time: 34 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 00:13:05 2022
    ;; MSG SIZE  rcvd: 116


3. ANSWER SECTION의 내용 확인

  • dig 쿼리에 대한 특정 내용만 답변으로 추출

3.1. ANSWER SECTION의 짧은 내용 얻기

  • 쿼리에 대한 짧은 대답을 얻으려면 +short 옵션을 사용
  • 질의한 도메인 ANSWER SECTION의 답만 출력
  • 출력에는 CNAME과 A 레코드의 IP 주소를 포함
    $ dig www.baidu.com +short
    www.a.shifen.com.
    www.wshifen.com.
    119.63.197.139
    119.63.197.151

3.2. ANSWER SECTION 자세한 내용 얻기

  • ANSWER SECTION의 자세한 응답 확인을 보려면 +noall 옵션을 사용한 후, +answer 옵션을 사용하여 ANSWER SECTION만 출력
    $ dig www.baidu.com +noall +answer
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com +noall +answer
    ;; global options: +cmd
    www.baidu.com.          234     IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       7       IN      CNAME   www.wshifen.com.
    www.wshifen.com.        118     IN      A       119.63.197.139
    www.wshifen.com.        118     IN      A       119.63.197.151


4. 특정 DNS에서 도메인 쿼리

  • 기본적으로 DNS를 지정되지 않은 경우 도메인에 대한 질의 불가

  • DNS 명령어에 @DNS을 추가하지 않으면, /etc/resolv.conf 파일에 나열된 DNS 서버를 사용

  • 쿼리를 실행할 DNS를 지정하려면 @ 기호 뒤에 DNS IP 주소 또는 호스트 이름을 사용

  • 예시로는 AWS의 DNS 서버(1.1.1.1)에서 www.baidu.com 도메인에 대한 정보를 쿼리함

    $ dig www.baidu.com @1.1.1.1
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com @1.1.1.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5787
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      A
    
    ;; ANSWER SECTION:
    www.baidu.com.          1183    IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       283     IN      CNAME   www.wshifen.com.
    www.wshifen.com.        283     IN      A       119.63.197.151
    www.wshifen.com.        283     IN      A       119.63.197.139
    
    ;; Query time: 3 msec
    ;; SERVER: 1.1.1.1#53(1.1.1.1)
    ;; WHEN: Wed Jun 22 01:05:52 2022
    ;; MSG SIZE  rcvd: 116


5. 레코드 유형 쿼리

  • dig 명령어를 사용하면 쿼리 끝에 레코드 유형을 추가하여 유효한 DNS 쿼리를 수행 가능
  • 아래 섹션은 A(IP 주소), CNAME(도메인 별칭), TXT(텍스트 레코드), MX(메일 교환기) 및 NS(DNS 서버)와 같은 가장 일반적인 레코드를 검색하는 방법 정리

5.1. A 레코드 쿼리

  • 도메인 이름에 대한 모든 주소 목록을 가져오려면 아래 옵션을 사용

  • DNS 레코드 유형이 지정되지 않은 경우 dig에서 A 레코드를 요청 → 옵션을 지정하지 않고 A 레코드를 쿼리 가능

    # 형식 : dig 도메인 -t A 또는 dig 도메인 A 또는 dig 도메인
    $ dig www.baidu.com -t A
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com -t A
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46904
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      A
    
    ;; ANSWER SECTION:
    www.baidu.com.          541     IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       195     IN      CNAME   www.wshifen.com.
    www.wshifen.com.        146     IN      A       103.235.46.40
    
    ;; Query time: 34 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:33:45 2022
    ;; MSG SIZE  rcvd: 100

5.2. CNAME 레코드 쿼리

  • 도메인 별칭 이름을 찾으려면 cname 옵션을 사용

    # 형식 : dig 도메인 -t cname 또는 dig 도메인 cname
    $ dig www.baidu.com -t cname
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com -t cname
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45541
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      CNAME
    
    ;; ANSWER SECTION:
    www.baidu.com.          145     IN      CNAME   www.a.shifen.com.
    
    ;; Query time: 38 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:38:13 2022
    ;; MSG SIZE  rcvd: 58

5.3. TXT 레코드 쿼리

  • 특정 도메인에 대한 모든 TXT 레코드를 검색하려면 txt 옵션을 사용

    # 형식 : dig 도메인 -t txt 또는 dig 도메인 txt
    $ dig baidu.com -t txt
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> baidu.com -t txt
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20891
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;baidu.com.                     IN      TXT
    
    ;; ANSWER SECTION:
    baidu.com.              7200    IN      TXT     "_globalsign-domain-verification=qjb28W2jJSrWj04NHpB0CvgK9tle5JkOq-EcyWBgnE"
    baidu.com.              7200    IN      TXT     "v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com include:spf4.baidu.com a mx ptr -all"
    baidu.com.              7200    IN      TXT     "google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"
    
    ;; Query time: 109 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:44:16 2022
    ;; MSG SIZE  rcvd: 320

5.4. MX 레코드 쿼리

  • 특정 도메인의 모든 메일 서버 목록을 가져오려면 mx 옵션을 사용

    # 형식 : dig 도메인 -t mx 또는 dig 도메인 mx
    $ dig baidu.com -t mx
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> baidu.com -t mx
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60866
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;baidu.com.                     IN      MX
    
    ;; ANSWER SECTION:
    baidu.com.              7111    IN      MX      20 jpmx.baidu.com.
    baidu.com.              7111    IN      MX      20 mx50.baidu.com.
    baidu.com.              7111    IN      MX      20 usmx01.baidu.com.
    baidu.com.              7111    IN      MX      10 mx.maillb.baidu.com.
    baidu.com.              7111    IN      MX      15 mx.n.shifen.com.
    baidu.com.              7111    IN      MX      20 mx1.baidu.com.
    
    ;; Query time: 33 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:43:50 2022
    ;; MSG SIZE  rcvd: 166

5.5. NS 레코드 쿼리

  • 특정 도메인에 대한 권한 있는 이름 서버를 찾으려면 ns 옵션을 사용

    # 형식 : dig 도메인 -t ns 또는 dig 도메인 ns
    $ dig baidu.com -t ns
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> baidu.com -t ns
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15087
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;baidu.com.                     IN      NS
    
    ;; ANSWER SECTION:
    baidu.com.              21600   IN      NS      ns2.baidu.com.
    baidu.com.              21600   IN      NS      ns7.baidu.com.
    baidu.com.              21600   IN      NS      dns.baidu.com.
    baidu.com.              21600   IN      NS      ns4.baidu.com.
    baidu.com.              21600   IN      NS      ns3.baidu.com.
    
    ;; Query time: 84 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:43:18 2022
    ;; MSG SIZE  rcvd: 117

5.6. 모든 레코드 쿼리

  • 특정 도메인에 대한 모든 DNS 레코드 목록을 가져오려면 임의 옵션을 사용

    # 형식 : dig 도메인 -t any 또는 dig 도메인 any
    $ dig baidu.com -t any
    ;; Truncated, retrying in TCP mode.
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> baidu.com -t any
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5705
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 17, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;baidu.com.                     IN      ANY
    
    ;; ANSWER SECTION:
    baidu.com.              7200    IN      SOA     dns.baidu.com. sa.baidu.com. 2012145445 300 300 2592000 7200
    baidu.com.              7200    IN      TXT     "google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"
    baidu.com.              7200    IN      TXT     "v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com include:spf4.baidu.com a mx ptr -all"
    baidu.com.              7200    IN      TXT     "_globalsign-domain-verification=qjb28W2jJSrWj04NHpB0CvgK9tle5JkOq-EcyWBgnE"
    baidu.com.              7200    IN      MX      20 mx50.baidu.com.
    baidu.com.              7200    IN      MX      15 mx.n.shifen.com.
    baidu.com.              7200    IN      MX      10 mx.maillb.baidu.com.
    baidu.com.              7200    IN      MX      20 mx1.baidu.com.
    baidu.com.              7200    IN      MX      20 jpmx.baidu.com.
    baidu.com.              7200    IN      MX      20 usmx01.baidu.com.
    baidu.com.              600     IN      A       220.181.38.251
    baidu.com.              600     IN      A       220.181.38.148
    baidu.com.              21600   IN      NS      ns7.baidu.com.
    baidu.com.              21600   IN      NS      ns3.baidu.com.
    baidu.com.              21600   IN      NS      dns.baidu.com.
    baidu.com.              21600   IN      NS      ns2.baidu.com.
    baidu.com.              21600   IN      NS      ns4.baidu.com.
    
    ;; Query time: 152 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:45:49 2022
    ;; MSG SIZE  rcvd: 620


6. 역 DNS 조회

  • 특정 IP 주소와 연결된 호스트 이름을 쿼리하려면 -x 옵션을 사용

  • 예시로 208.118.235.148에 대해 역방향 조회를 수행

    $ dig -x 8.8.8.8
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> -x 8.8.8.8
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10553
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;8.8.8.8.in-addr.arpa.          IN      PTR
    
    ;; ANSWER SECTION:
    8.8.8.8.in-addr.arpa.   19236   IN      PTR     dns.google.
    
    ;; Query time: 32 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:53:35 2022
    ;; MSG SIZE  rcvd: 62


7. 대량 쿼리

  • 많은 수의 도메인을 쿼리하려면 해당 도메인을 파일에 추가하고(행당 하나의 도메인) -f 옵션 뒤에 파일 이름을 붙이면 질의 가능

  • 파일에 있는 나열된 도메인을 쿼리

    $ cat domainlist.txt
    www.baidu.com
    www.google.com
    
    # domainlist.txt 파일에 있는 도메인 질의
    $ dig -f domainlist.txt
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57218
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.baidu.com.                 IN      A
    
    ;; ANSWER SECTION:
    www.baidu.com.          443     IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       235     IN      CNAME   www.wshifen.com.
    www.wshifen.com.        226     IN      A       119.63.197.139
    www.wshifen.com.        226     IN      A       119.63.197.151
    
    ;; Query time: 34 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:58:00 2022
    ;; MSG SIZE  rcvd: 116
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.google.com
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13832
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.google.com.                        IN      A
    
    ;; ANSWER SECTION:
    www.google.com.         300     IN      A       142.250.204.100
    
    ;; Query time: 51 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Wed Jun 22 01:58:00 2022
    ;; MSG SIZE  rcvd: 48


8. .digrc 파일

  • dig 명령의 동작은 ${HOME}/.digrc 파일에서 사용자별 옵션을 설정하여 제어 가능

  • 사용자의 홈 디렉터리에 .digrc 파일이 있는 경우 파일에 지정된 옵션이 명령줄 인수 앞에 적용됨

  • 섹션만 표시하려면 텍스트 편집기를 열고 다음 ~/.digrc 파일을 생성 → ANSWER SECTION의 자세한 응답 확인하기 위해 +noall과 +answer 저장

    $ cat ~/.digrc
    +noall +answer
    
    $ dig www.baidu.com
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.3 <<>> www.baidu.com +noall +answer
    ;; global options: +cmd
    www.baidu.com.          234     IN      CNAME   www.a.shifen.com.
    www.a.shifen.com.       7       IN      CNAME   www.wshifen.com.
    www.wshifen.com.        118     IN      A       119.63.197.139
    www.wshifen.com.        118     IN      A       119.63.197.151


9. dig 사용 옵션

  • dig 명령어에는 ‘-‘ 옵션과 ‘+’ 옵션이 있음
  • dig 사용 주요 옵션
    옵션 설명 비고
    -b source IP를 다른 IP로 설정 interface IP
    -f batch 모두 동작시 파일이름을 지정
    -m debugging
    -p 53 이외의 포트번호를 지정
    -4 or -6 IPv4 또는 IPv6 강제 지정
    -t Type을 지정 기본 문법에 포함
    -c Class를 지정 사실상 무의미 (IN)
    -x reverse lookup IP to name
    +tcp TCP 프로토콜 사용 +notcp
    +trace delegation path 추적 +notrace
    +short Answer Section 결과만을 표시 +noshort
    +comments Comments Section 표시 +nocomments
    +question Question Section 표시 +noquestion
    +answer Answer Section 표시 +noanswer
    +authority Authority Section 표시 +noauthority
    +additional Additional Section 표시 +noadditional
    +stats Statistics Section 표시 +nostats
    +all Comments부터 Statistics Section 모두 표시 +noall
    +multiline 긴 record를 여러 줄로 보기 좋게 표시 +nomultiline

참고 자료

  • crontab 명령어는 사용자가 주기적인 작업을 등록하기 위해 사용
  • crontab 명령어 형식
    $ crontab [option] 파일명

1. crontab의 옵션


2. crontab 기본 (crontab basic)

  • 기본이 되는 크론탭 사용법
  • 편집할 수 있는 곳이 로딩 → 크론탭을 설정할 수 있는 장소에 접근

2.1. crontab -e 명령어를 통해 crontab 파일 수정

  • 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신

    1. wq로 저장하면 "crontab: installing new crontab"이 출력

    2. q로 저장하면 "crontab: no changes made to crontab" 출력

      $ crontab -e
      
      # crontab을 통해 편집할 수 있는 곳에 접근
      */3 * * * * /opt/fujitsu/ServerViewSuite/RAIDManager/svrack/svrack.sh -c
      
      # srvmagtCron: restarts daemons that died
      0,15,30,45 * * * * /bin/sh -c "[ -x /etc/srvmagt/srvmagtCron ] && /etc/srvmagt/srvmagtCron"
  • crontab -e 입력 후 다음과 같은 내용을 입력 → crontab 갱싱

    1. 별이 다섯개 뒤에 명령어 입력 → "매분마다 실행" 별이 지칭하는 것"

    2. 쉘스크립트 뿐만 아니라 리눅스 커맨드도 사용 가능

      $ crontab -e
      
      # crontab 파일 내용
      * * * * * ls -al
      
      # crontab 파일 내용을 수정한 후 wq!로 저장하면 아래의 내용 출력
      no crontab for root - using an empty one
      crontab: installing new crontab
      
      # * * * * * 를 적용해서 매분마다 ls -al 실행

2.2 crontab -l 명령어를 통해 crontab 파일 읽기

  • 현재 crontab에 어떤 내용이 들어있는지 확인

  • cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용을 출력

    $ crontab -l
    */3 * * * * /opt/fujitsu/ServerViewSuite/RAIDManager/svrack/svrack.sh -c
    
    # srvmagtCron: restarts daemons that died
    0,15,30,45 * * * * /bin/sh -c "[ -x /etc/srvmagt/srvmagtCron ] && /etc/srvmagt/srvmagtCron"

2.3 crontab -r 명령어를 통해 crontab 파일 삭제

  • crontab -r 명령어를 통해 crontab 파일의 모든 내용 삭제

    # crontab 삭제
    $ crontab -r
    
    # 삭제되었는지 crontab 확인
    $ crontab -l
    no crontab for root



3. 주기 결정

  • 각 별 위치에 따라 주기를 다르게 설정 가능

  • 순서대로 분-시간-일-월-요일 순서

  • 괄호 안의 숫자 범위 내로 별 대신 입력 가능 → 숫자로 기간 결정

  • 요일은 0부터 7까지 숫자로 표기

    1. 0과 7이 일요일

    2. 1은 월요일

    3. 2는 화요일

    4. 3은 수요일

    5. 4는 목요일

    6. 5는 금요일

    7. 6은 토요일

      # Example of job definition:
      # .---------------- minute (0 - 59)
      # |  .------------- hour (0 - 23)
      # |  |  .---------- day of month (1 - 31)
      # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
      # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
      # |  |  |  |  |
      # *  *  *  *  * user-name command to be executed
      
      *      *      *      *      *
      분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)



4. 주기별 예제

  • 주기 입력 방법엔 * , - , / 을 이용
  • 각각의 특수기호가 하는 기능이 다름
    1. * : 모든
    2. - : 3-5로 하면 3에서 5까지 기간을 지정
    3. / : 분에 */10을 하면 10분마다 반복할 수 있게 지정
  • 조합을 어떻게 하느냐에 따라 입맛대로 주기를 설정 가능

4.1. 매분 실행

# 매분 test.sh 실행
* * * * * /home/script/test.sh

4.2. 특정 시간 실행

# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh

4.3. 반복 실행

# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh

4.4. 범위 실행

# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh

4.5. 간격 실행

# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh

4.6 조금 복잡하게 실행

# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh



5. cron 사용 팁

5.1. 한 줄에 하나의 명령만 사용

# 잘못된 예
* * * 5 5
/home/script/test.sh

# 잘된 예
* * * 5 5 /home/script/test.sh

5.2. 주석을 사용 가능

  • # 을 입력해서 그 뒤로 나오는 모든 문자를 주석 처리 가능

    # 주석 #
    #--------------------#
    # 이것은 주석입니다. #
    #--------------------#



6. cron 로깅 (cron logging)

6.1. crontab을 사용할 때 처리 내역을 로그에 남김

  • 크론탭을 사용해서 정기적으로 작업을 처리할 때, 해당 처리 내역에 대해 로그를 남김
  • /home/script/test.sh 쉘 스크립트를 매분마다 실행 → test.sh.log 파일에 작업 내용을 갱신
  • 2>&1 을 제거하면 쉘스크립트에서 표준 출력 내용 출력
  • 2>&1은 표준 에러를 표준 출력
      * * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

6.2. crontab의 사용에 대한 처리 내역을 지속적으로 로그에 남김

  • 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 다음처럼 입력
  • 계속 로그가 누적이 되는 것을 확인
  • 로그가 과도하게 쌓이면 서비스에 영향 줌 → 가끔씩 비워주거나 파일을 새로 생성 필요
      * * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1

6.3. crontab에 로그가 필요하지 않아 삭제

  • 로그는 필요 없는 크론을 위해서 /home/script/test.sh.log 파일이 아닌 /dev/null에 저장
      * * * * * /home/script/test.sh > /dev/null 2>&1


7. crontab 백업 (crontab backup)

  • crontab -r 를 쓰거나 실수로 crontab 디렉토리를 날려버려서 기존 크론 내역들이 회복이 불가능할 수 있음
  • 시스템 문제로 또는 실수로 크론탭이 삭제 될 수 있기에 주기적으로 크론탭 백업은 필수

7.1. crontab 백업하는 방법 → crontab 내용을 txt 파일로 만들어 저장

crontab -l > /home/bak/crontab_bak.txt

7.2. crontab 백업하는 방법 → crontab 내용을 txt 파일로 만들어 자동으로 저장

  • 매일 오후 11시 50분에 크론탭을 백업해두는 크론 명령어
    50 23 * * * crontab -l > /home/bak/crontab_bak.txt

  • PowerTop는 리눅스 시스템에서 전력사용을 모니터링 명령어
  • 많은 서버를 운영하다보면 전원에 신경이 쓰이기에 전원 모니터링 필요

powertop 설치

  • powertop 설치 방법
    $ yum install powertop

powertop 사용 방법

$ powertop

1. idle 상태를 확인 → 탭 간 이동은 tab을 이용, 종료는 q를 이용


2. Idle stats을 보면 C0로 되어 있는지 여부를 확인 가능


3. Frequency stats를 보면 CPU의 사용률 확인 가능


4. Device stats를 보면 Device들의 상태 확인 가능


5. c-state과 관련된 설정 확인 → Good / Bad에서 Bad가 나쁜 의미 아님(C-State와 관련 있는 설정을 의미)


참고 URL : http://egloos.zum.com/repository/v/5876237


  • turbostat 명령어는 X86 프로세서의 프로세서 topology, frequency, idle 전력 상태 통계, 온도 및 전력을 출력
  • turbostat 명령어는 전체 시스템의 카운터 결과 요약을 출력하고 제목 아래에 각 카운터 결과를 5 초마다 출력
  • turbostat 명령어는 kernel-tools 패키지에서 제공
  • 전력 사용량이나 유휴 시간이 비효율적인 서버 식별 가능
  • 시스템에서의 시스템 관리 인터럽트(SMI)의 비율 식별 가능
  • 전력 관리 튜닝 효과 확인

 

옵션

1. --Dump 옵션

  • raw 카운터 값을 표시

2. --debug 옵션

  • 추가 시스템 구성 정보를 표시
  • 내부 터보 스탯 디버그 정보가 활성화됨

3. --interval [seconds] 옵션

  • --interval 옵션 뒤에 seconds 값을 통해 출력되는 값을 설정
  • default 값은 5.0초

4. --out [output_file] 옵션

  • Turbostat 출력은 지정된 output_file에 기록
  • 파일이 이미 존재하면 잘리고 존재하지 않으면 생성

5. --Summary 옵션

  • 각 간격에 대해 출력을 1줄 시스템 요약으로 제한

 

turbostat 명령어 실행 결과

$ turbostat
Package Core    CPU     Avg_MHz Busy%   Bzy_MHz TSC_MHz IRQ     SMI     POLL    C1      C1E     C6      POLL%   C1%     C1E%    C6%     CPU%c1  CPU%c6  CoreTmp PkgTmp  PkgWatt RAMWatt PKG_%   RAM_%
-       -       -       0       0.05    810     2195    2285    0       0       580     140     1364    0.00    0.57    0.40    98.98   2.96    97.00   41      43      41.72   39.62   0.00    0.00
0       0       0       0       0.05    801     2195    40      0       0       0       2       37      0.00    0.00    0.01    99.94   0.78    99.17   37      39      21.61   21.51   0.00    0.00
0       0       20      0       0.02    805     2195    30      0       0       0       2       20      0.00    0.00    0.01    99.97   0.82

 

출력 필드 설명

필드명 설명
usec
  • 각 CPU에 대해 카운터 수집 중 경과된 시간(마이크로초)
  • 기본적으로 비활성화
  • --enable usec 또는 --debug로 활성화 가능
Time_Of_Day_Seconds
  • 각 CPU 별 gettimeofday(2) 값
  • 측정 종료 시 시간
  • 기본적으로 비활성화
  • --enable Time_Of_Day_Seconds 또는 --debug로 활성화 가능
Core
  • 프로세서 코어 번호
CPU
  • Linux CPU 번호
Package
  • 프로세서 패키지 번호
  • 패키지란 두 개 이상의 독립 코어를 단일 집적 회로로 이룰 때 사용
Avg_MHz
  • 평균 클럭 속도
  • 실행된 사이클 수를 경과 시간으로 나눈 값
Busy%
  • CPU가 명령을 실행하는 시간(백분율)
Bzy_MHz
  • CPU가 idel 상태가 아닌 동안의 평균 클럭 속도
TSC_MHz
  • TSC가 실행 된 평균 MHz
  • TSC는 Time Stamp Counter의 약어
  • CPU 차원에서 제공되는 카운터
  • CPU가 리셋된 이후 동작한 CPU 사이클의 수
IRQ
  • 측정 주기 동안 CPU가 처리한 인터럽트 수
  • /proc/interrupts 이용
SMI
  • 측정 주기 동안 CPU를 지원하는 SMI 인터럽스 수
  • CPU 단위 이지만 모든 프로세서에서 SMI가 트리거 되기 때문에 모든 CPU 값이 동일해야 함
  • SMI는 System Management Interrupts의 약어
C1, C2, C3...
  • 측정 주기 동안 C1, C2, C3 idle 상태를 요구한 횟수
  • c0: CPU가 켜져 있고 미작동 상태
  • c1: 자동 정지, 프로세서가 명령을 수행 하지는 않지만 실행 상태로 즉각 돌아갈 수 있음
  • c2: 스톱 클럭, 프로세서는 몯믄 소프트웨어 표시 상태를 유지 하지만 깨우기에 시간이 더 걸림
  • c3: 딥 슬립, 프로세서는 캐시의 일관성을 유지할 필요 없지만 다른 상태 유지 관리
  • c4: 더 깊은 슬립, VCC 감소, VCC ==> main cpu voltage(전압)
  • dc4: 더 깊은 c4 슬립 VCC 감소
%c1, %c2, %c3
  • 프로세서가 C1, C2, C3 상태였던 비율
CPU%c1, CPU%c2,
CPU%c3
  • 각 idle 상태로 있는 비율
  • H/W residency counter에서 획득 한 값
CoreTmp
  • Core 당 디지털 열 세선에 의해 보고 된 섭씨 온도
PkgTtmp
  • 패키지 당 패키지 열 모니터에 의해 보고 된 섭씨 온도
GFX%rc6
  • 측정 주기 동안 GPU가 렌더링 c6 상태에 있는 시간(백분율)
  • /sys/class/drm/card0/power/rc6_residency_ms 에서 획득
GFXMHz
  • 측정이 끝날 시점의 sysfs의 스냅샷
  • /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz 에서 획득
Pkg%pc2, Pkg%pc3,
Pkg%pc6, Pkg%pc7
  • H/W 패키지 idle 상태 비율(백분율)
  • H/W residency counter에서 획득
PkgWatt
  • 전체 패키지에서 소비한 전력량(Watt)
CorWatt
  • 패키지의 core에서 소비한 전력량(Watt)
GFXWatt
  • 패키지의 그래픽 부분에서 소비한 전력량(Watt)
  • 클라이언트 프로세서에서만 사용 가능
RAMWatt
  • DRAM DIMMS에서 소비한 전력량(Watt)
  • 서버 프로세서에서만 사용 가능
PKG_%
  • RAPL throttling이 패키지에서 활성화 된 비율
  • RAPL는 Running Average Power Limit의 약어
RAM_%
  • RAPL throttling이 DRAM에서 활성화 된 비율

 

 

※ 참고

1. SMI (System Management Interrupt)

  • SMI를 통해 하드웨어가 트리거됨
  • 프로세서 칩에 물리적 핀(Pin)이 있음
  • SMI (System Management Interrupt)를 활성화되면 프로세서가 SMM으로 들어가게됨

 

2. gettimeofday(2) 함수

  • 1970-01-01 00:00:00 +0000 (UTC) 이후의 현재까지의 경과된 초와 micro초(백만분의 1초) 값을 얻는 함수
  • 정밀한 시간 정보가 필요한 경우에 사용
  • tz(timezone) 정보는 사용하지 않으므로 무시됨

 

  • 서버용으로 사용되는 시스템의 관리자는 어떤 사용자가 언제 로그인했는지 확인
  • last 명령어는 로그인 로그와 로그 아웃 로그를 확인 가능

last 명령어로 알 수 있는 정보

  1. 접속계정명
  2. 접속장치명
  3. 접속한 IP주소
  4. 접속시간
  5. 시스템 재부팅 정보

last 명령어를 통해 특정 정보 추출

1. 최근 접속정보

$ last
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:11   still logged in
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:01 - 23:10  (00:08)
root     pts/0        [서버 시스템 IP]    Mon Jun 21 22:37 - 22:37  (00:00)

2. 사용자 접속 정보

# root 사용자 접속 정보 -> 개별 사용자가 있는 경우를 제외하고 root로 접속하는 기록 출력
$ last root
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:11   still logged in
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:01 - 23:10  (00:08)
root     pts/0        [서버 시스템 IP]    Mon Jun 21 22:37 - 22:37  (00:00)

# reboot 사용자 접속 정보 -> rebooting한 기록 확인
$ last reboot
reboot   system boot  3.10.0-1160.6.1. Fri Jan 15 14:10 - 12:56 (11+22:46)
reboot   system boot  3.10.0-1160.6.1. Fri Jan 15 13:58 - 14:09  (00:11)
reboot   system boot  3.10.0-1160.6.1. Fri Jan 15 13:22 - 13:56  (00:34)

3. 지정일자 이전에 접속한 정보

# 지정일자 이전에 접속한 정보
# last -t YYYYMMDDHHMMSS 형식
$ last -t 20201210000000           # 2020년 12월10일 이전의 접속 기록만 출력
root     pts/0        [서버 시스템 IP]    Wed Dec  9 17:38 - 17:43  (00:04)
root     pts/0        [서버 시스템 IP]    Wed Dec  9 16:33 - 17:36  (01:03)
root     pts/0        [서버 시스템 IP]    Tue Dec  8 22:46 - 22:51  (00:05)

4. 원하는 행의 수만큼 출력

$ last -n 3
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:24   still logged in
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:11 - 23:22  (00:11)
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:01 - 23:10  (00:08)

wtmp begins Sat Dec  5 04:17:18 2020

5. IP주소를 제외한 정보

$ last -R
root     pts/0        Mon Jun 21 23:24   still logged in
root     pts/0        Mon Jun 21 23:11 - 23:22  (00:11)
root     pts/0        Mon Jun 21 23:01 - 23:10  (00:08)
root     pts/0        Mon Jun 21 22:37 - 22:37  (00:00)

6. IP주소를 열의 마지막에 출력

$ last -a
root     pts/0        Mon Jun 21 23:24   still logged in    [서버 시스템 IP]
root     pts/0        Mon Jun 21 23:11 - 23:22  (00:11)     [서버 시스템 IP]
root     pts/0        Mon Jun 21 23:01 - 23:10  (00:08)     [서버 시스템 IP]
root     pts/0        Mon Jun 21 22:37 - 22:37  (00:00)     [서버 시스템 IP]

7. 외부 접속 정보만을 출력

$ last -d
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:24   still logged in
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:11 - 23:22  (00:11)
root     pts/0        [서버 시스템 IP]    Mon Jun 21 23:01 - 23:10  (00:08)
root     pts/0        [서버 시스템 IP]    Mon Jun 21 22:37 - 22:37  (00:00)

  • 패킷과 밀접한 관련이 있는 것이 네트워크 이더넷 카드
  • 네트워크 디바이스 드라이버와 하드웨어 셋팅을 보거나 설정할 수 있는 ethtool 명령어를 잘 알아야함
  • 이더넷 정보를 확인할 때 대표적인 도구가 ifconfig 명령어 → ifconfig 명령어를 통해 링크상태, IP 주소, 맥 주소, 통신 상태 현황 등을 확인 가능
  • ethtool 명령어는 ifconfig 명령어 보다 더 자세하고 섬세하게 이더넷을 설정하고 확인 가능

1. ethtool 명령어 기본 사용 방법

ethtool [옵션] [ethX] [파라미터]



2. ethtool 명령어 기본 정보 → 링크 모드와 속도, Duplex 상태 출력

  • 일목요연하게 이더넷 인터페이스에 대한 정보 확인 가능
    $ ethtool eth0
    Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                           100baseT/Half 100baseT/Full
                           1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                           100baseT/Half 100baseT/Full
                           1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: umbg
    Wake-on: d
    Current message level: 0x00000007 (7)
            drv probe link
    Link detected: yes


3. ethtool 명령어에 -s 옵션 사용 → -s 옵션은 속도, Duplex 등의 값을 변경 가능

  • ethtool 명령어에 -s 옵션 사용할 때 설정 참고 자료
    ethtool -s ethX speed N [duplex half|full] [port tp|aui|bnc|mii]
                [autoneg on|off] [advertise N] [phyad N] [xcvr internal|external]
                [wol p|u|m|b|a|g|s|d...]  [sopass xx:yy:zz:aa:bb:cc] [msglvl N |
                msglvl type on|off ...]

  • Auto-negotiation, Speed 및 Duplex를 조정하기 위해서 Auto-negotiation 기능을 Off하고 Speed를 100, Duplex를 half로 설정

    $ ethtool -s eth0 autoneg off speed 100 duplex half
    
    # 설정 변경 반영 확인
    $ ethtool eth0
    Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Half 10baseT/Full
                           100baseT/Half 100baseT/Full
                           1000baseT/Half 1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes:  Not reported
    Advertised pause frame use: No
    Advertised auto-negotiation: No
    Speed: 100Mb/s
    Duplex: Half
    Port: MII
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: off
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000033 (51)
            drv probe ifdown ifup
    Link detected: yes

  • ※ 참고
    • 참고로 e1000 드라이버를 사용하고 있는데, 설정이 제대로 반영되지 않는 문제 발생 → NIC 드라이버의 특성 (드라이버의 패치가 필요)
    • 다른 컴퓨터에서 사용하고 있는 r8169 드라이버에서는 변경이 잘 이줘짐
    • ethtool 명령어가 안되면 아래의 modprobe 명령어 사용
    • 사용하는 네트워크 인터페이스에 따라 차이가 있을 수 있다는 점을 참고 필요



4. ethtool 명령어 X, modprobe 명령어로 e1000 드라이버 옵션을 설정 가능 → ethtool 명령어 적용 X

  • modprobe 명령어로 e1000 드라이버에 대한 옵션을 아래와 같은 형태로 설정
    modprobe e1000 [<option>=<VAL1>,<VAL2>,...]

  • Duplex 를 0 으로 설정한 예
    $ modprobe e1000 Duplex=0  (0=auto-negotiate, 1=half, 2=full)


5. ethtool 명령어에 -i 옵션 사용 → 드라이버에 대한 정보 확인

  • e1000 드라이버를 사용하고 있고, eeprom 접근이 가능한지 여부 확인
    $ ethtool -i eth0
    driver: e1000
    version: 7.3.21-k8-NAPI
    firmware-version: N/A
    bus-info: 0000:00:03.0
    supports-statistics: yes
    supports-test: yes
    supports-eeprom-access: yes
    supports-register-dump: yes


6. ethtool 명령어에 -S 옵션 사용 → 인터페이스 통계 정보 확인

  • rx,tx 의 패킷 전송 개수, 바이트 정보, 브로드캐스팅 정보들 확인 가능
  • 대문자 S 를 사용했다는 점을 주의 필요
  • 소문자 s 는 설정 할때 사용
    $ ethtool -S eth0
    NIC statistics:
       rx_packets: 10
       tx_packets: 29
       rx_bytes: 2145
       tx_bytes: 4100
       rx_broadcast: 0
       tx_broadcast: 3
       rx_multicast: 0
       tx_multicast: 18
       rx_errors: 0
       tx_errors: 0
       tx_dropped: 0


7. ethtool 명령어에 -a 옵션 사용 → Pause 파라미터에 대한 정보를 출력

  • Auto Negotiation 정보를 좀 더 상세히 출력
    $ ethtool -a eth0
    Pause parameters for eth0:
    Autonegotiate: on
    RX:  on
    TX:  off


8. ethtool 명령어에 -p 옵션 사용 → 특정 포트에 LED를 깜빡

  • 어뎁터가 4개의 포트를 가지고 있다고 가정하고, eth3번이 어떤 포트인지 알고 싶을때 LED 를 깜빡 거리게 하여 알려줌
    $ ethtool -p eth3


9. ethtool 명령어에 -k 옵션 사용 → 디바이스의 Offload 정보 출력

  • Offload는 이더넷 카드에서 TOE 기능을 지원하게 되면 사용할 수 있는 기능
  • TOE
    • NIC(Network Interface Cards)에서 사용되는 기술
    • 보통 운영체제 상에서 처리되는 TCP/IP 스택을 네트워크 컨트롤러로 내려서 처리
    • 네트워크 처리가 크게 필요한 기가비트나 10G 기가비트같은 고속네트워크에서 유용하게 사용
      $ ethtool -k eth0
      Offload parameters for eth0:
      rx-checksumming: on
      tx-checksumming: on
      scatter-gather: on
      tcp-segmentation-offload: on
      udp-fragmentation-offload: off
      generic-segmentation-offload: on
      generic-receive-offload: on
      large-receive-offload: off
      rx-vlan-offload: on
      tx-vlan-offload: on
      ntuple-filters: off
      receive-hashing: off


10. ethtool 명령어 이외에 lshw명려어를 이용해 network 관련한 정보를 확인 가능

  • lshw(Hardware Lister)는 메모리, 펌웨어 버전, 메인보드, CPU, 네트워크, 디스크 등의 정보를 알려주는 명령어
  • -C 옵션은 lshw에서 제공하는 하드웨어 정보 중 원하는 것만 출력
    $ lshw -C network
    *-network              
         description: Ethernet interface
         product: 82540EM Gigabit Ethernet Controller
         vendor: Intel Corporation
         physical id: 3
         bus info: pci@0000:00:03.0
         logical name: eth0
         version: 02
         serial: 08:00[deleted]:d0
         size: 1Gbit/s
         capacity: 1Gbit/s
         width: 32 bits
         clock: 66MHz
         capabilities: pm pcix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
         configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full firmware=N/A ip=10.0.2.15 latency=64 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s
         resources: irq:10 memory:f0000000-f001ffff ioport:d010(size=8)

+ Recent posts