centOS 8 hostname 변경하기

  1. OCI(Oracle Cloud Infrastructure)에 centOS 8을 셋팅하고 있는중에 hostname을 변경하려고 하였지만 왠일인지 제부팅을 하고나면 다시 초기값으로 복구 되었다.
# vi /etc/oci-hostname.conf

# PRESERVE_HOSTINFO=0
PRESERVE_HOSTINFO=2

# hostnamectl set-hotname new-my-hostnameCode language: PHP (php)

2. 위의 파일의 PRESERVE_HOSTINFO=0 옵션값을 0에서 2로 변경해주면 된다.

3. 자세한 옵션값은 파일 주석을 참조하면 된다.

# This configuration file controls the hostname persistence behavior for Oracle Linux
# compute instance on Oracle Cloud Infrastructure (formerly Baremetal Cloud Services)
# Set PRESERVE_HOSTINFO to one of the following values
#   0 -- default behavior to update hostname, /etc/hosts and /etc/resolv.conf to 
#        reflect the hostname set during instance creation from the metadata service
#   1 -- preserve user configured hostname across reboots; update /etc/hosts and 
#           /etc/resolv.conf from the metadata service  
#   2 -- preserve user configured hostname across instance reboots; no custom  
#        changes to /etc/hosts and /etc/resolv.conf from the metadata service,
#        but dhclient will still overwrite /etc/resolv.conf
#   3 -- preserve hostname and /etc/hosts entries across instance reboots; 
#        update /etc/resolv.conf from instance metadata serviceCode language: PHP (php)

ubuntu 설치후 저장소 용량이 부족할대, VML 확장

df, du 정보가 설치된 저장소 용량보다 작게 나온다.
lsblk, fdisk -l 과 같은 명령어로 보면 설치된 저장소 용량이 모두 나온다.

  • LVM

우분투를 설치할때 LVM이라는 녀석을 설정하게 되는데 이걸 잘못설정하면 설치된 저장소 용량의 50% 가량밖에 사용을 못하는 상황이 발생한다.

LVM 설정하는 방법을 찾아보면 너무 자료가 어렵다.

# 최대 사이즈로 my_LV 확장
$ sudo lvextend -l +100%FREE /dev/my_LV

# 확장된 LV적용
$ sudo resize2fs /dev/my_LVCode language: PHP (php)

위의 코드면 다 해결된다.

보통의 경우는
PV( physical volume )을 새로 생성하고
VG( volume group )을 만들어서 PV를 넣고
LV( logical volume )을 그 안에 만들어서
컨트롤 하는 과정을 따르기 때문에

엄청나게 복잡해 보이는데

사실 설치당시 잘못 설치를 해서
LV만을 조금 할당받은 경우라면
PV와 VG는 모두 최대 크기로
잘 설정되어있을 확률이 크다.

확인하기 위해서
pvdisplay, vgdisplay를 입력해보면
내가 사서 꼽은
그 저장장치의 스펙이 보일 것이다.

그러면 위의 lvextend만 해주면
lv를 최대로 늘릴 수 있다.
PV, VG, LV 모두 설정을 해야하는 상황이라면
hiseon.me/linux/lvm-configuration/

위의 블로그를 참고하길 바란다.

리눅스 명령어 위치 확인

1. 방법 1: type

리눅스 type 문서를 참고,

[root@localhost ~]# type ifconfig
ifconfig is /sbin/ifconfigCode language: PHP (php)
[root@localhost ~]# type cd
cd is a shell builtinCode language: CSS (css)
[root@localhost ~]# type which
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'Code language: PHP (php)

2. 방법 2: witch

리눅스 witch 문서 참고,

[root@localhost ~]# which ifconfig
/sbin/ifconfigCode language: PHP (php)
[root@localhost ~]# which httpd
/usr/sbin/httpdCode language: PHP (php)

ifconfig는 /sbin에, httpd는 /usr/sbin에 설치되어 있다.

3. 방법 3: whereis

[root@localhost ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gzCode language: PHP (php)
[root@localhost ~]# whereis httpd
httpd: /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sbin/httpd.event /etc/httpd /usr/lib64/httpd /usr/include/httpd /usr/share/man/man1/httpd.1.gz /usr/share/man/man8/httpd.8.gzCode language: PHP (php)

4. 방법 4: find

  • 실제 명령어가 아닌 다른 파일을 찾게 될 수도 있다.
  • 모든 폴더를 다 찾아보기 때문에 위 방법들에 비해 오래 걸린다.
[root@localhost ~]# find / -name ifconfig
/sbin/ifconfigCode language: PHP (php)

참고

http://en.wikipedia.org/wiki/Which_(Unix)
http://en.wikipedia.org/wiki/Whereis

Lightsail 브라우저 SSH 연결 안되는 현상

언제부턴가 AWS의 Lightsail 관리콘솔의 WEB환경 SSH 접속이 안되었다.

Lightsail의 SSH는 콘솔이나 전용프로그램으로 접속하였기에 크게 신경쓰지는 않았지만 혹시 Web으로 접속할 일이 있을수도 있고 정상적으로 접속되던것이 갑자기 안되어서 찝찝한 느낌도 있었다.

우선 오류가 발생할때 접속로그를 살펴보았다.

$ cat /var/log/auth.log|tail
systemd: pam_unix(systemd-user:session): session opened for user ubuntu by (uid=0)
sshd[20690]: userauth_pubkey: certificate signature algorithm ssh-rsa: signature algorithm not supported [preauth]
sshd[20690]: Connection closed by authenticating user ubuntu 000.000.000.000 port 00000 [preauth]Code language: JavaScript (javascript)

이 문제는 Lightsail의 ubuntu를 18.04 LTS 에서 20.04 LTS로 업그레이드 후 부터 발생되었고 Ubuntu 20.04 LTS에 포함된 OpenSSH 8.2 부터는 보안 문제로 SHA-1기반 ssh-rsa가 기분 CA Signature항목에서 빠지면서 이러한 문제가 발생하게 된다고 한다.

https://ibug.io/blog/2020/04/ssh-8.2-rsa-ca/

참고

위 링크에서 제안대로 sshd의 설정파일에 CASignatureAlgorithms 항목을 추가하고 sshd를 재실항하면 문제가 해결된다.

$ cat /etc/ssh/sshd_config|tail
...
# Use RSA CA cert.
# https://ibug.io/blog/2020/04/ssh-8.2-rsa-ca/
CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
Code language: PHP (php)

sshd 재실행은 아래 명령어중 하나를 사용하면 된다.

1. $ sudo systemctl restart ssh
2. $ /etc/init.d/ssh restart
3. $ service ssh restart

윈도우 cmd에서 path 환경변수 설정 방법법

윈도우에서 path 환경변수를 등록하는 방법은

1. 윈도우키 + Pause

2. Environment Variables…


하지만 bat파일같은것을 만들어서 command 창으로 설정하고 싶을때가 있다.

  1. CTRL + R (실행)
  2. cmd

path
현재 환경변수 출력

set path
path명령과 동일한 현재 환경변수 정보와 pathext라는 시스템 실행파일 확장자 변수가 같이 나온다.

set path = %path%;추가하고자하는경로;
ex) set path=%path%;c:\java\bin;
환경변수가 일시적으로 추된다.

setx path
ex) setx path %path%;c:\java\bin;
환경변수가 영구적으로 추가된다.

%path% 를 하는 이유는 현재 환경변수에 path정로를 가져와서 뒤에 새로운 환경변수를 추가하기 때문이다.


P.S

echo 명령어를 사용하면 %%를 이용하여 모든 환경변수 내용을 확인할 수 있다.

ex) echo %os%