Check how many CPUs are there in Linux system

last updated October 15, 2018 in CategoriesCentOS, Debian / Ubuntu, Hardware, Linux, RedHat and Friends, Suse

How do you check how many CPUs are there in Linux system using the command line option?

 

Introduction: One can obtain the number of CPUs or cores in Linux from the command line. The /proc/cpuinfo file stores CPU and system architecture dependent items, for each supported architecture. You can view /proc/cpuinfo with the help of cat command or grep command/egrep command. This page shows how to use /proc/cpuinfo file and lscpu command to display number of processors on Linux.

How do you check how many CPUs are there in Linux system?

You can use one of the following command to find the number of physical CPU cores including all cores on Linux:

  1. lscpu command

  2. cat /proc/cpuinfo

  3. top or htop command

  4. nproc command

  5. hwinfo command

  6. dmidecode -t processor command

  7. getconf _NPROCESSORS_ONLN command

Let us see all commands and examples in details.

How to display information about the CPU on Linux

Just run the lscpu command:

$ lscpu

$ lscpu | egrep 'Model name|Socket|Thread|NUMA|CPU\(s\)'

$ lscpu -p

 

The output clearly indicate that I have:

  1. CPU model/make: AMD Ryzen 7 1700 Eight-Core Processor

  2. Socket: Single (1)

  3. CPU Core: 8

  4. Thread per core: 2

  5. Total threads: 16 ( CPU core[8] * Thread per core [2])

Use /proc/cpuinfo to find out how many CPUs are there in Linux

The lscpu command gathers CPU architecture information from sysfs, /proc/cpuinfo and other sources. To view use the cat command and more command as follows:

$ cat /proc/cpuinfo

 

OR

$ more /proc/cpuinfo

 

Let us print cpu thread count:

$ echo "CPU threads: $(grep -c processor /proc/cpuinfo)"

$ grep 'cpu cores' /proc/cpuinfo | uniq

Run top or htop command to obtain the number of CPUs/cores in Linux

Simply run the following command and hit ‘1’:

$ top

 

 

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

[종합소득세 과세표준과 세율]

과세표준

소득세율

누진 공제액

계산법

1,200만원 이하

6%

0원

과세표준 금액 X 6%

1,200만원 초과~4,600만원 이하

15%

108만원

과세표준 금액 X 15% - 108만원

4,600만원 초과~8,800만원 이하

24%

522만원

과세표준 금액 X 24% - 522만원

8,800만원 초과~1억5,000만원 이하

35%

1,490만원

과세표준 금액 X 35% - 1,490만원

1억5,000만원 초과~3억원 이하

38%

1,940만원

과세표준 금액 X 38% - 1,940만원

3억원 초과~5억원 이하

40%

2,540만원

과세표준 금액 X 40% - 2,540만원

5억원 초과

42%

3,540만원

과세표준 금액 X 42% - 3,540만원

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

CentOS 7에 Tomcat8을 설치 및 설정하는 예제를 진행하겠습니다. 테스트의 편의성을 위해 root 계정에서 진행하겠습니다.

 

1. open-jdk 1.8 설치 

 

jdk를 설치하기 바랍니다.

설치 방법은 아래 링크를 참조하기 바랍니다.

yfkwon.tistory.com/47?category=664685

 

 

2. tomcat 설치

 

tomcat은 설치하는 방법이 다양합니다. 이번 예제는 wget을 이용해 설치하겠습니다.

 

# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz

 

// 압축 해체

# tar zxvf apache-tomcat-8.5.27.tar.gz

 

// 톰캣을 /usr/local/로 이동시키고 디렉토리 이름을 tomcat8로 변경

# mv apache-tomcat-8.5.27 /usr/local/tomcat8


3. tomcat 설정 및 환경 변수 등록

 

vi /usr/local/tomcat8/conf/server.xml

// vi /usr/local/tomcat8/conf/server.xml// 아래 설정을 찾아서 URIEncoding="UTF-8"을 추가한다.

 

...

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8" />

...

vi /etc/profile

...

 

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64

CATALINA_HOME=/usr/local/tomcat8

CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin

export JAVA_HOME PATH CLASSPATH CATALINA_HOME

설정 후 아래 명령어 입력 

# source /etc/profile


3. tomcat 실행

 

startup.sh파일은 tomcat을 실행시키는 shell script입니다. 해당 파일을 실행시켜 tomcat을 작동시켜줍니다.

 

# /usr/local/tomcat8/bin/startup.sh

tomcat이 실행되고 있는지 확인합니다.

 

//톰캣 프로세스 확인

# ps -ef|grep tomcat8

 

// 8080 포트가 열려있는지 확인

# netstat -tln

 테스트해보기 위해 다음 명령어를 실행시켜줍니다.

 

# wget http://localhost:8080/

 

index.html 파일이 다운로드 되었다면 정상적으로 tomcat이 실행되고 있다는 의미입니다. 

 

index.html 파일은 기본적으로 실행되는 /usr/local/tomcat8/webapps/ROOT WebService에서 다운받은 것이며, 

 

http://localhost:8080 호출 시,  /usr/local/tomcat8/webapps/ROOT/index.jsp 파일이 index.html로 변환되어 다운됩니다.

 


4. systemctl 등록

 

vi /etc/systemd/system/tomcat8.service

# Systemd unit file for tomcat

[Unit]

Description=Apache Tomcat Web Application Container

After=syslog.target network.target

 

[Service]

Type=forking

 

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/"

Environment="CATALINA_HOME=/usr/local/tomcat8"

Environment="CATALINA_BASE=/usr/local/tomcat8"

Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

 

ExecStart=/usr/local/tomcat8/bin/startup.sh

ExecStop=/usr/local/tomcat8/bin/shutdown.sh

 

User=root

Group=root

UMask=0007

RestartSec=10

Restart=always

 

[Install]

WantedBy=multi-user.target

 

 

# systemctl daemon-reload

# systemctl enable tomcat8

 

// tomcat8 실행

# systemctl start tomcat8


5. systemctl service 부팅 시 자동 실행

 

//부팅 시 자동 실행 서비스 등록

# systemctl enable tomcat8.service

//등록된 서비스 조회

# systemctl list-unit-files --type service |grep tomcat8

 

 

6. tomcat manager 설정 (해당 설정은 선택사항 입니다.)

 

tomcat manager란 tomcat 모니터링 및 어플리케이션 관리, WAR 배포 및 다양한 서비스를 제공해주는 관리 페이지입니다.

 

1) tomcat-users.xml 수정

 

vi /usr/local/tomcat8/conf/tomcat-users.xml

<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0">

 

  <role rolename="manager"/>

  <role rolename="manager-gui" />

  <role rolename="manager-script" />

  <role rolename="manager-jmx" />

  <role rolename="manager-status" />

  <role rolename="admin"/>

  <user username="admin" password="패스워드" roles="admin,manager,manager-gui, manager-script, manager-jmx,  manager-status"/>

 

</tomcat-users>

 

 

2) 외부 접근 허용 설정

 

vi /usr/local/tomcat8/conf/Catalina/localhost/manager.xml

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">          <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

</Context>

설정 후, 서버 재시작

 

3) 테스트

 

http://자신의IP:8080/manager

위 주소를 입력하고 ID와 password를 입력면 아래와 같은 웹페이지가 노출됩니다.  

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

리눅스에서 터미널이나 vi 한글이 깨질 때 해결책입니다.

 

 

1. 터미널 한글깨짐

 

vi ~/.bashrc 에서 아래 코드를 추가하고 재접속 합니다.

 

LANG="ko_KR.UTF-8"

export LANG="ko_KR.UTF-8"

 

 

 

2. vi 한글깨짐

 

vi ~/.vimrc 에서 아래 코드를 추가합니다.

 

set encoding=utf-8

set fileencodings=utf-8,euc-kr

 

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

기존 Centos 6 점대 버전까지는

 

/etc/sysconfig/i18n  에서 캐릭터셋을 설정했지만 Centos 7 부터는 변경되었다

 

 

 

locale

 

서버의 캐릭터셋 확인

 

[root@servblog ~]# locale

LANG=ko_KR.utf8

LC_CTYPE=”ko_KR.utf8″

LC_NUMERIC=”ko_KR.utf8″

LC_TIME=”ko_KR.utf8″

LC_COLLATE=”ko_KR.utf8″

LC_MONETARY=”ko_KR.utf8″

LC_MESSAGES=”ko_KR.utf8″

LC_PAPER=”ko_KR.utf8″

LC_NAME=”ko_KR.utf8″

LC_ADDRESS=”ko_KR.utf8″

LC_TELEPHONE=”ko_KR.utf8″

LC_MEASUREMENT=”ko_KR.utf8″

LC_IDENTIFICATION=”ko_KR.utf8″

LC_ALL=

[root@servblog ~]#

 

 

변경방법 1

 

vi /etc/locale.conf

 

#LANG=ko_KR.utf8

LANG=ko_KR.euckr

utf8 에서 euckr로 변경

 

변경방법 2

 

[root@servblog ~]# localectl set-locale LANG=ko_KR.euckr

euckr로 세팅

 

 

 

변경후 서버에 재접속시 변경확인가능

 

[root@servblog ~]# locale

LANG=ko_KR.euckr

LC_CTYPE=”ko_KR.euckr”

LC_NUMERIC=”ko_KR.euckr”

LC_TIME=”ko_KR.euckr”

LC_COLLATE=”ko_KR.euckr”

LC_MONETARY=”ko_KR.euckr”

LC_MESSAGES=”ko_KR.euckr”

LC_PAPER=”ko_KR.euckr”

LC_NAME=”ko_KR.euckr”

LC_ADDRESS=”ko_KR.euckr”

LC_TELEPHONE=”ko_KR.euckr”

LC_MEASUREMENT=”ko_KR.euckr”

LC_IDENTIFICATION=”ko_KR.euckr”

LC_ALL=[root@servblog ~]# cat /etc/locale.conf

LANG=ko_KR.euckr

 

 

시스템에서 변경가능한 캐릭터셋 확인명령어

 

localectl list-locales

 

[root@servblog ~]# localectl list-locales

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

[Linux] Ubuntu 18 LTS 고정 IP 설정(static ip config)

Ubuntu 18 LTS 부터는 Netplan 이 적용되어 설정 방식이 변경됨.

netplan 은 yaml 을 사용

 

설정

  1. 시스템의 interface 목록 확인

    $ ls /sys/class/net

     

     

    enp0s31f6 lo

    Copy

     

  2. 설정 파일 에디터로 오픈

    sudo vi /etc/netplan/50-cloud-init.yaml

    Copy

     

  3. yaml 의 ethernets  항목에 1번에서 확인한 인터페이스(enp0s31f6 ) 이름을 추가하고 하위에 네트워크 설정 추가

    /etc/netplan/50-cloud-init.yaml

    network:

    ethernets:

    enp0s31f6:

    addresses: [192.168.0.214/24]

    gateway4: 192.168.0.1

    nameservers:

    addresses: [168.126.63.1,8.8.8.8]

    # search: [lesstif.com]

    # dhcp4: yes

    dhcp4: no

    # optional: true

    version: 2

    Copy

     

    고정 IP 설정시 dhcp4: no 를 꼭 추가

  4. 저장하고 빠져 나옴

  5. 설정 반영

    sudo netplan apply

    Copy

     

  6. 설정 반영 확인

    $ ip addr

    $ ip route

    Copy

     

  7. network 을 사용하는 명령어(Ex: nslookup)를 사용해서 정상 동작 여부 확인

    $ nslookup google.com

    Copy

     

* Stock Advisor 서버 netplan 설정

root@twodigit-System-Product-Name:/etc/netplan# more 01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system

network:

  version: 2

  renderer: NetworkManager

  ethernets:

   enp5s0:

     dhcp4: no

     dhcp6: no

     addresses: [192.168.11.36/24]

     gateway4: 192.168.11.1

     nameservers:

      addresses: [164.124.101.2,8.8.4.4]

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

리눅스(Linux) 포트 열기, 방화벽 설정해제

------------------------------------------------------------------

  • 방화벽 오픈

 

sudo firewall-cmd --permanent --zone=public --add-port=20/tcp

sudo firewall-cmd --permanent --zone=public --add-port=21/tcp

sudo firewall-cmd --permanent --zone=public --add-port=22/tcp

 

  • 설정 로딩 적용

 

sudo firewall-cmd --reload

 

  • 상태 조회

 

sudo firewall-cmd --state

 

  • 방화벽 활성화

 

sudo systemctl enable firewalld

sudo systemctl start firewalld

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

hostname 확인하는 방법

방법 1 - 명령어로 확인하기

 

다음과 같이 명령하면 hostname을 출력합니다.

 

hostname

 

방법 2 - 설정 파일 열어서 확인하기

 

/etc/hostname 파일에 hostname이 있습니다.

 

cat /etc/hostname

 

hostname 변경하는 방법

방법 1 - 명령어로 변경하기

 

다음과 같이 명령하면 hostname이 abc로 바뀝니다.

 

hostnamectl set-hostname abc

 

방법 2 - 설정 파일 열어서 변경하기

 

텍스트 에디터로 /etc/hostname 파일을 열어서 내용을 abc로 바꾸면 hostname이 abc로 바뀝니다.

 

재부팅

 

재부팅을 하면 변경사항이 반영됩니다.

 

TIP

 

호스트 이름이 변경되지 않으면, /etc/cloud/cloud.cfg에 있는 다음 코드를

 

preserve_hostname: false

 

다음처럼 수정합니다.

 

preserve_hostname: true

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

1. open-jdk 1.8 설치

# yum install java-1.8.0-openjdk

# yum install java-1.8.0-openjdk-devel

설치가 완료되면 /usr/bin/경로에 java가 생성됩니다.

 

설치 가능한 JDK 버전 확인

 

yum list java*jdk-dvel

 

open-jdk-11 설치

 

yum -y install java-11-openjdk java-11-openjdk-devel

 


2. 환경변수 등록

/usr/bin/java 경로에 심볼릭링크가 걸려있기 때문에 실제 경로를 찾아서 환경변수에 등록해주어야 합니다.

 

# readlink -f /usr/bin/java

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

실제 경로를 찾았으면 /etc/profile을 vi로 열어줍니다. 그리고 JAVA_HOMEPATHCLASSPATH를 등록합니다.

 

//# vi /etc/profile

 

...

 

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

 

export JAVA_HOME PATH CLASSPATH

환경 변수를 등록했다면 ssh연결을 재시작하거나 source /etc/profile 명렁어를 입력해줍니다.

 

등록한 환경 변수가 제대로 적용되었는지 테스트합니다.

 

# echo $JAVA_HOME

# echo $PATH

# echo $CLASSPATH


3. HelloWorld.java 컴파일 후 실행

# vi HelloWorld.java

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello World!!");

}

}

HelloWorld.java 파일을 컴파일하고 실행시켜서 테스트해봅니다.

 

# javac HelloWorld.java

# java -cp . HelloWorld

Hello World!!

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

Tomcat SSL 적용시 https로 자동 리다이렉트 설정하기

요즘은 대부분의 사이트들이 SSL을 사용해서 https:// 로 연결을 합니다. SSL을 사용하던 초창기에는 성능 문제로 로그인, 회원가입 등 주요한 데이터가 전달되는 곳에 부분적으로 적용을 하였는데, 요즘은 서버와 클라이언트의 성능이 좋아져서 사이트 전체에 SSL을 적용하는것이 일반적입니다.

 

하지만 대부분의 사람들은 http:// 주소를 사용해서 페이지 접근하므로 http 요청을 https 요청으로 리다이렉트 시켜야 합니다. Tomcat 에서 이것을 자동으로 처리하도록 설정하는 방법을 알아보겠습니다.

 

 

1. SSL설정을 먼저 합니다.

 

먼저 SSL 설정이 되어 있다고 가정합니다. 설정이 되고 https:// 로 접근이 된다면 Tomcat 의 server.xml 파일에 다음과 유사하게 설정되어 있을 것입니다.

 

 

 

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

 

 

<Connector port="80" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="443" />

 

 

<!-- JavaKeyStore 의 경우 -->

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"

maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="conf/domain.jks" keystorePass=".jks 비밀번호" />

 

 

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

 

 

2. WEB-INF/web.xml에 리다이렉트 설정 추가하기

 

아래 설정을 web.xml 파일에 추가합니다. 그리고 Tomcat 을 재시작하고, http://domain/index.jsp 처럼 호출 하게 되면 https://domain/index.jsp 로 바로 리다이렉트 되는 것을 확인할 수 있을 것입니다.

 

 

<security-constraint>

<web-resource-collection>

<web-resource-name>SSL Forward</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

 

 

3. 특정 리소스는 http와 https 양쪽 모두 처리되도록 설정하기:wq

 

아래설정은 위의 설정 아래에 추가하면 /images/*, /css/* 리소스는 http 또는 https 모두에서 처리됩니다.

 

 

<security-constraint>

<web-resource-collection>

<web-resource-name>HTTPS or HTTP</web-resource-name>

<url-pattern>/images/*</url-pattern>

<url-pattern>/css/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>NONE</transport-guarantee>

</user-data-constraint>

</security-constraint>

 

web.xml 파일에 <security-constraint> 태그는 여러번 나올 수 있습니다. Tomcat 에서 보안 목적으로 특정 HTTP Method 를 제한하는 것도 <security-constraint> 를 사용합니다. 필요하면 이것도 같이 추가하면 되겠습니다.

Tomcat SSL 적용시 https로 자동 리다이렉트 설정하기

Windows에서 TOMCAT에 개발용으로 SSL 적용하기

SSL 동작 방식을 간단히 알아보기

 

 

*SSL 인증서 적용 후 시험

 

openssl s_client -connect dev-certi.newssalad.com:8443 -tls1

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,