갑자기 서비스가 뻗어버리는 일이 발생했다.

웹 콘솔로도 접근이 되지 않아

재부팅을 진행했는데 네트워크가 붙지 않았다.

 

네트워크가 down 되어 있어서 급하게 재 기동을하고 원인을 파악하려 로그를 확인하려 하니

재부팅 되어 로그가 날아갔다.

 

로그의 경로는 

journalctl --verify

#PASS: /run/log/journal/22b3e1e3130c45978071f903c5b6cf5d/system.journal 

 

/run 은

시스템 부팅 중에만 사용되는 임시 파일들을 저장하는 디렉토리,

/tmpfs 라고 하는 RAM 기반 메모리 파일시스템에 위치하여 재부팅시 데이터가 사라짐

 

journalctl의 설정에서 

storage의 설정값을

Storage=auto 에서 persistent 로 변경하면

로그를 /var/log/journal/에 저장하여 재부팅 후에도 유지

 

값 변경후 데몬 재시작

systemctl restart systemd-journald

 

 

 

 

 

alternatives --install /usr/lib/jvm/jre-1.8.0 jre_1.8.0 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 1

 

alternatives --install <java에서 직접 사용할 링크> </etc/alternatives 에 생성 될 링크 이름> <생성될 링크가 바라볼 실제 프로그램 위치>

 

java에서 사용될 링크 는  /etc/alternatives/생성될 링크 이름

 

 

자바에서 직접 사용할 링크가 -> /etc/alternatives/생성 으로 수정

alternatives --install /usr/bin/jre jre /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-2.el8.x86_64/jre/bin/java 1

 

 

 

 

java

alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/bin/java 1

alternatives --set java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/bin/java

 

jre

alternatives --install /usr/bin/jre java /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 1

alternatives --set jre /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 

 

jre_1.8.0

alternatives --install /usr/lib/jre_1.8.0 jre-1.8.0 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 1

alternatives --set jre_ /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 

 

jre_1.8.0_openjdk

alternatives --install /usr/lib/jvm/jre-1.8.0-openjdk jre_1.8.0_openjdk /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64 1

alternatives --set jre_1.8.0_openjdk /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 

 

 

jre_openjdk

alternatives --install /usr/lib/jvm/jre-openjdk jre_openjdk /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 2

alternatives --set jre_openjdk /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre 

 

 

서버 재부팅시 어떤 사용자로 로그인 되는지 와 상관없이

특정 사용자로 스크립트를 실행하고 싶었다

 

그러던 중 crontab에서 @reboot 라는 옵션을 사용하면 된다는 걸 알게 되었다.

 

로그는

/var/log/secure

/var/log/cron

위의 두 개의 파일을 참조 했다.

 

Feb 19 10:51:28 host01 crond[1207]: (test_user) FAILED to authorize user with PAM (Authentication token is no longer valid; new one required)

 

비밀번호 문제일 수 있어 확인하니 비밀번호가

만료라고 나옴

chage -l test_user

 

비밀번호 만료일자 비활성화 후 실행하니 PAM관련 에러메세지가 더 이상 나타나지 않음

sudo chage -M -1 test_user

 

0 30 * * 5 /home/test_user/test.sh

or

0 30 * * 5 cd /home/test_user && ./test.sh

 

'Linux' 카테고리의 다른 글

/run,tmpfs, journalctl  (0) 2025.03.19
자바 버전 설정 alternatives  (0) 2025.03.11
ssh config ssd-add  (1) 2024.12.29
2 Too Many authentication failure  (1) 2024.12.02
session 접속 제한 Too many authentication failures  (1) 2024.08.26

ssh 연결을 이것저것 시도하던 중 알게 된게 ~/.ssh/config

 

그러다 ssh 클라이언트가 config를 어떻게 참조하는지 알아보았댜.

 

주로 git과 연결하기 위해 ssh 를 사용하다가 알아보게 되었다.

 

ssh git@gitlab.com -p 2200 -i ~/.ssh/id_rsa

 

이런 식으로 명령어를 사용하게 되는데

 

처음에는 명령어에 적힌 옵션을 먼저 반영한다.

 

이후에는 사용자의 ~/.ssh/config를 참조하고

 

사용자의 config 파일이 없으면 전체 시스템의 config 파일, /etc/ssh/ssh_config 파일을 참조한다.

 

 

 

Host my-server
    HostName 10.10.10.10
    User git
    Port 2200

 

.ssh/config 파일은 보통 이런 구성을 갖고 있다.

 

Host는 별칭이라고 보면 된다.

HostName 은 접속하려는 호스트 Url 이나 ip이다

User, Port는 접속하려는 사용자와 Port이다.

 

config 파일에 키를 등록 후

ssh my-server 

이런 식으로 별칭을 호출해서 간단하게 명령어를 사용할 수도 있다.

기존에 직접 제원정보를 명령어에 적지 않아도 되어 보안에 조금이나마 도움이 된다고 한다.

 

파일의 참조 순서와 적용 순서는 반대이다. ( )

 

참조 뒤에

/etc/ssh/ssh_config 값을 적용하고

이후에 ~/.ssh/config 값을 적용한다.

마지막으로 명령어에 적힌 옵션을 적용한다.

 

사용자의 config 파일을 읽을때

Host 를 먼저 확인한다.

이후 맞는 Host가 없는 경우 

<Host *>로 지정된 섹션의 설정을 따른다.

 

또한 특정 키를 지정할 수 있어서 여러 서버의 ssh 연결을 관리하기 용이하다.

 

Host *
   User normal
   Port 22

Host server1
    HostName 192.192.192.192
    User user1
    Port 2200
    IdentityFile ~/.ssh/id_rsa
    KexAlgorithms +diffie-hellman-group14-sha1
    
Host server2
    HostName gitlab.com
    User git
    Port 2201
    IdentityFile ~/.ssh/id_rsa_git

 

이런식으로 사용할 수 있다.

 

ssh-add 라는 녀석도 있다.

ssh key에 비밀번호를 입력해여 하는 경우

반복작업이 되지 않도록 ssh-add agent에 저장해서 한 번 입력 후에는 비밀번호를 입력하지 않아도 되는 기능이다.

 

 

+ Recent posts