Server(Windows&Linux)2022. 5. 10. 09:18

현재 path 확인

~]# echo $PATH

또는

~]# env

경로를 추가해 보자

추가를 원하는 경로 /home/test/bin/

~]# export PATH=$PATH:/home/test/bin/

echo $PATH 나 env 로 확인하면 추가된 경로를 확인할 수 있다.

Posted by 비니미니파
Server(Windows&Linux)2021. 3. 4. 10:55

date 란 명령어를 사용할 수 있습니다.

date - 시스템 시간과 날짜를 출력/설정한다.

~]# date
2021. 03. 04. (목) 10:50:59 KST

date +'%Y-%m-%d' 형식으로 포맷을 설정 할 수 도 있습니다.

~]# date +'%Y-%m-%d'
2021-03-04

 

 

쉘스크립트(shell script)에서 사용할 때는 $를 붙여서 사용 합니다.

~]# vi date.sh
echo $(date +'%Y-%m-%d')

~]# chmod +x date.sh

~]# ./date.sh
2021-03-04

* chmod 는 권한을 설정하는 명령어 입니다.

+x (excute) 실행 권한

Posted by 비니미니파
Server(Windows&Linux)2021. 3. 4. 10:48

리눅스에서는 rdate 라는 명령어로 시간을 동기화 합니다.

 rdate - get the time via the network

~]# rdate -s time.kriss.re.kr

한국표준과학연구원(KRISS) 에서 운영하는 time server 인데 잘 안되네요.

~]# rdate -s time.bora.net

보라넷 시절부터 운영하는 (현재 LG U+) time server 인데 잘 됩니다.

보통은 시간 동기화시 하드웨어(cmos) 까지 세팅을 해야 하기 때문에

 hwclock - query or set the hardware clock (RTC)

명령어를 조합해서 사용합니다.

결론은 아래 와 같이 사용하면 시간동기화 cmos 설정 까지 같이 됩니다.

~]# time -s time.bora.net | hwclock -w
Posted by 비니미니파
Server(Windows&Linux)2020. 3. 24. 18:00

Tomcat 로그인 catalina.out 파일 용량이 무한으로 늘어 난다.

특히, log4j 를 사용하여 query 로그를 남기거나 system.out.println 을 남발하면 GB 용량의 catalina.out 을 곧 만나게 된다.

logrotate 를 이용하여 /etc/logrotate.d/tomcat 파일을 만들고 정상적인 테스트 후 하루 지나면 anacron 에서

permission deny 가 났다고 mail 이 와 있을 것이다.

그냥 cronolog 를 사용하자! Tomcat 8.5 기준이다.

 

1. cronolog 설치

~]# yum install cronolog

epel-release 가 설치 되어 있지 않았다면 먼저 설치 후 cronolog를 설치 하자.

~]# yum install epel-release

설치가 잘 되면 /usr/sbin/cronolog 실행 파일이 보일 것 이다.

 

 

2. tomcat catalina.sh 파일 수정 하기


~]# vi catalina.sh
  -- 중략 --
  touch "$CATALINA_OUT"  
  -- 중략 --
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
  -- 중략 --
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
      
      

위의 부분을 아래와 같이 바꾼다.


~]# vi catalina.sh
  -- 중략 --
  #touch "$CATALINA_OUT"  
  -- 중략 --
      org.apache.catalina.startup.Bootstrap "$@" start \
      | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
  -- 중략 --
      org.apache.catalina.startup.Bootstrap "$@" start \
      | /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
      
      

 

 

3. tomcat Restart

~]# systemctl restart tomcat

tomcat 의 ~/logs/ 에 catalina.2020-03-24.out 파일이 보인다.

 

 

 

끝~.

Posted by 비니미니파
Server(Windows&Linux)2020. 3. 24. 17:42

Yum 을 이용한 다운로드 하기

~]# yum install cronolog --downloadonly --downloaddir=.

옵션 --downloadonly

다운로드 디렉토리 지정 --downloaddir=.

. 은 현재 디렉토리

 

 

인줄 알았는데 더 쉬운게 있네요.

~]# yumdownloader cronolog

진짜 끝.

Posted by 비니미니파
Server(Windows&Linux)2020. 1. 2. 12:04

oralce sqlplus 에서 history 사용을 하려면 rlwrap 을 설치 하여야 한다.

Centos 7.7 환경

rlwrap 을 설치 하려면 epel-release 를 먼저 설치 한다.

~]# yum install epel-release

설치 후 rlwrap 을 설치 한다.

~]# yum install rlwrap

설치는 일단 끝이다. 너무 쉽다.

sqlplus 에 alias 설정하면 끝난다. .bash_profile 에 설정 하자.

~]# vi ~/.bash_profile 

-- 중략 --

alias sqlplus='rlwrap sqlplus'

sqlplus 실행 > 명령 실행 > 방향키(화살표) 로 테스트 해 보면 잘 된다.

끝났다.

Posted by 비니미니파
Server(Windows&Linux)2019. 4. 16. 10:57

서버에 접속 했더니 ssh 접속 시도 건수 가 엄청 나다 ㅜㅜ

ssh 접속 실패로그를 확인 하고 차단해 버리자!

~]# lastb | more

또는 

~]# last -f /var/log/btmp | more

 

* last, lastb 명령어는


NAME
       last, lastb - 사용자들의 마지막 로그인했는 기록 목록을 보여준다.

SYNOPSIS
       last [-R] [-num] [ -n num ] [-adx] [ -f file ] [name...]  [tty...]
       lastb [-R] [-num] [ -n num ] [ -f file ] [-adx] [name...]  [tty...]

DESCRIPTION
       Last  명령은  /var/log/wtmp  파일이나, -f 옵션에서 지정한 파일을 통해서
       사용자의 로그인, 로그아웃 시간을  보여준다.   특정  사용자의  이름이나,
       tty를  지정할 수 있으며, 이렇게 지정되면, 해당 사용자의 로그인 정보만을
       보여준다.  tty의 이름은 생략될 수 있어, last 0 명령은 last tty0  명령과
       같은 기능을 한다.  last가 실행 중에 SIGINT(인터럽트 글쇠, 주로 Ctrl-C에
       의해서 만들어지는 신호)가 감지되거나, SIGQUIT(마침 글쇠, 주로  Ctrl-\에
       의해서 만들어지는 신호)가 감지되면, 실행을 마친다.

       접속  사용자  이름에  reboot라고  나오는  것은  시스템이  reboot된 것을
       나타낸다. 즉 last reboot 명령으로 기록 파일이  만들어진  후부터  reboot
       되었는 기록을 모두 볼 수 있다.

       Lastb  명령은 접속 실패를 기록하는 파일인 /var/log/btmp 파일을 대상으로
       한다는 것을 제외하고는 last 명령과 같다.

OPTIONS
       -num   num 만큼의 줄만 보여준다.

       -n num 윗 기능과 같음.

       -R     hostname 필드를 보여주지 않음.

       -a     hostname 필드를 마지막에 보여줌.  이  옵션은  다음  옵션과  함께
              요용하게 쓰임.

       -d     다른 호스트에서 접속한 것만 보여줌.

       -x     shutdown이 일어난 상태나, run level이 바뀐 상태도 보여줌.

NOTES
       wtmp  파일이나,  btmp 파일이 없을 수도 있다.  시스템은 이런 파일이 있을
       경우에만, 로그인 정보를 그 파일에 기록한다.  만약 없는데, 이제부터 last
       명령을  사용하고  싶다면, 단지 간단하게 touch 명령을 사용해서 각 파일을
       만들어 놓으면 된다.  (예를 들면, touch /var/log/wtmp).

 

* 접속 실패가 확인 된 IP는 firewall-cmd 로 막아버리자.

Posted by 비니미니파
Server(Windows&Linux)2019. 4. 10. 09:08

CentOS 7.x

특정 IP 에서 침입 시도가 계속 될 경우 IP 를 막아 보자

~]# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='123.123.123.123' reject"

~]# firewall-cmd --reload

~]# firewall-cmd --list -all

firewall-cmd --reload
추가한 설정을 적용 하자

firewall-cmd --list -all 
설정이 잘 적용 되었는지 확인 하자.

Posted by 비니미니파
Server(Windows&Linux)2019. 4. 9. 10:49
~]# pm2 list

pm2 프로세스 확인

 

~]# pm2 scale app_name 4

app_name 클러스터를 4개로 조절

pm2 기본 명령어

# Fork mode
pm2 start app.js --name my-api # Name process

# Cluster mode
pm2 start app.js -i 0        # Will start maximum processes with LB depending on available CPUs
pm2 start app.js -i max      # Same as above, but deprecated.
pm2 scale app +3             # Scales `app` up by 3 workers
pm2 scale app 2              # Scales `app` up or down to 2 workers total

# Listing

pm2 list               # Display all processes status
pm2 jlist              # Print process list in raw JSON
pm2 prettylist         # Print process list in beautified JSON

pm2 describe 0         # Display all informations about a specific process

pm2 monit              # Monitor all processes

# Logs

pm2 logs [--raw]       # Display all processes logs in streaming
pm2 flush              # Empty all log files
pm2 reloadLogs         # Reload all logs

# Actions

pm2 stop all           # Stop all processes
pm2 restart all        # Restart all processes

pm2 reload all         # Will 0s downtime reload (for NETWORKED apps)

pm2 stop 0             # Stop specific process id
pm2 restart 0          # Restart specific process id

pm2 delete 0           # Will remove process from pm2 list
pm2 delete all         # Will remove all processes from pm2 list

# Misc

pm2 reset <process>    # Reset meta data (restarted time...)
pm2 updatePM2          # Update in memory pm2
pm2 ping               # Ensure pm2 daemon has been launched
pm2 sendSignal SIGUSR2 my-app # Send system signal to script
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart
Posted by 비니미니파
Server(Windows&Linux)2018. 8. 22. 14:52

1.  eGalax Touch Driver Download

http://www.eeti.com.tw/drivers_Linux.html

ubuntu 18.04 일 경우  eGTouch_v2.5.5814.L-x 파일을 다운 받는다.

2. eGTouch Install 



 ~]$ tar xvfz eGTouch_v2.5.5814.L-x.tar.g
 ~]$ cd eGTouch_v2.5.5814.L-x
 ~]$ sudo ./setup.sh

 자세한 사항은 Guide PDF 문서를 확인

3. system 등록 ( 자동 시작 )

 ~]$ sudo vi /etc/systemd/system/eGTouch.service
# eGalax Touchscreen service file
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/usr/bin/eGTouchD
DefaultDependencies=no
Before=sysinit.target
After=apparmor.service
[Service]
Type=forking
Restart=always
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3
TimeoutSec=0
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
User=root
Group=root
ExecStart=
ExecStart=/usr/bin/eGTouchD start
ExecReload=/usr/bin/eGTouchD restart
ExecStop=/usr/bin/eGTouchD stop
[Install]
WantedBy=multi-user.target

 

 
~]$ sudo systemctl daemon-reload
~]$ sudo systemctl enable eGTouch.service
~]$ sudo systemctl restart eGTouch.service
~]$ sudo systemctl status eGTouch.service
~]$ sudo reboot

 * 재시작 후 터치스크린이 작동 한다면 성공 ! ^^

* 화면 설정 ( calibration )


     ~]$ sudo /usr/bin/eGTouchU
 

 

Posted by 비니미니파
Server(Windows&Linux)2018. 7. 3. 09:21

Linux Runlevel 을 변경 해 보자

예전에는 /etc/inittab 파일을 수정 하면 변경 이 되었다.

열어 보면 더이상 사용하지 않으며 runlevel 변경 방법에 대한 설명이 나와 있다. 물론 영어로 ㅠㅠ

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

runlevel 3 은 multi-user.target  ( 텍스트 기반 )

runlevel 5 는 graphical.target   ( 그래픽 기반 )

현재 설정된 값을 볼려면

 ~] # systemctl get-default

runlevel 을 변경 할려면

~]# systemctl set-default TARGET.target

runlevel 3

~]# systemctl set-default multi-user.target

runlevel 5

~]# systemctl set-default graphical.target

요즘은 runlevel 변경 할 일이 거의 없지만 혹시 생긴다면 당황하지 말고 적용해 보자.


Posted by 비니미니파
Server(Windows&Linux)2018. 6. 21. 10:51

ssh 기본 포트 22 번을 사용할 경우 외부에서 접속 시도를 무지 많이 한다.

기본 포트만 변경 해도 이런 시도를 차단 할 수 있으니 서버가 외부에 연결 되어있을 경우 무조건 하자!

ssh 기본 포트 22 번을 변경해 보자.

1. 먼저 방화벽에 변경될 포트를 설정 하자.

예제는 9999 번 포트이다. 사용할 포트를 해제하자.

~]# firewall-cmd --permanent --zone=public --add-port=9999/tcp

~]# firewall-cmd --reload

2. ssh 환결 설정을 하자

기본 환경파일은 /etc/ssh 에 있다.
#Port 22  를 복사 해서 수정 하자. ( 복사 해서 수정 하면 기본 설정값을 알 수 있다. )

 

 ~]# vi sshd_config
 #Port 22
 Port 9999

 

** 중요 추가 설정 **
ssh 로 root 접속을 차단 하자. 이것도 복사해서 수정 하자.

 

 # PermitRootLogin yes
 PermitRootLogin no

 

 

3. 서비스를 재구동 하자.

  ~]# systemctl restart sshd

 *** 오류가 난다. ***

  Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details.

** 중요 ** selinux 를 사용할 경우 포트 변경을 해줘야 한다.

 ~]# semanage port -a -t ssh_port_t -p tcp 9999

* semanage 는 SELinux Policy Management tool 이다.

다시 서비스를 재구동 해보자

  ~]# systemctl restart sshd

다행이다 잘 된다.

 



 


 

Posted by 비니미니파
Server(Windows&Linux)2017. 2. 22. 15:49

Apache 를 설치 하려고 하니 80번 포트 사용중으로 설치가 되지 않는다.

 ~> netstat -ano | findstr 80

 

PID  확인

작업관리자 에서 PID 로 확인 하니 nt kernel & system 가 80번 포트를 사용 하고 있었다.

구글링 결과

윈도우 제어판 > 관리도구 > 서비스 에서

World Wide Web Publishing 서비스 찾아 사용안함으로 고치고 중지 시키면 된다.

 

 

Posted by 비니미니파
Server(Windows&Linux)2017. 1. 4. 15:31

yum update 시 아래의 오류가 발생한다면 

yum update Transaction check error:

해당 패키지를 제외 하고 업데이트를 하면 된다.

yum -y update --exclude=nodejs*

nodejs 관련 패키지를 제외하고 업데이트를 하라는 명령어 이다.


yum -y update --exclude=package_name



Posted by 비니미니파
Server(Windows&Linux)2016. 3. 11. 15:50

Centos 7 방화벽 설정

firewall-cmd 로 관리한다.

설정된 리스트 보기


~]# firewall-cmd --list-all


방화벽 해제하기

8080 포트를 해제해 보자.


~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp 

--permanet 옵션을 주어야 시스템 리부팅 시 계속 유지 된다.

추가 후 적용을 해주어야 한다.


~]# firewall-cmd --reload

다른 명령 옵션들

구동 상태 확인


~]# firewall-cmd --state

삭제


~]# firewall-cmd --remove-port=8080/tcp

참고로...

53 번 DNS 포트 는 tcp/udp 모두 해제해야 한다.


Posted by 비니미니파