Linux resource limit

현재 OS상의 제한이 걸려 있는 목록을 볼 수 있는 명령어
ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7799
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7799
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

위의 리스트 중에서 File open의 제약(Socket connect)을 걸고 있는 것이 바로
open files

ulimit -n 50000 혹은
/etc/security/limits.conf 파일에
* soft nofile 16384
* hard nofile 16384
을 추가후 껏다 키면 적용된다. (sysctl -p로도 적용될수도..?)

python에선 resourece 패키지를 통해 해당 스크립트가 실행되는 동안 변경할 수 있다.

import resource

soft, hard = 500000, 500000
resource.setrlimit(resource.RLIMIT_NOFILE, (soft, hard))

[Linux] Power management

우분투 서버 18.04에서 노트북 모니터를 닫아도 잠금 모드로 전환 되지 않는 설정


$ vi /etc/systemd/logind.conf

edit #HandleLidSwitch=suspend To HandleLidSwitch=ignore

sudo service systemd-logind restart

만약 화면을 닫았을 경우 자동으로 잠기길 원한다면

HandleLidSwitch=lock으로 변경하면 된다.

[Linux-CMD] screen 사용법

Screen


screen 을 통해서 가장 많이 사용되는 명령어만 모아보았다.

시작. : screen -S 세션명

Ctrl+a A :현재 screen의 이름을 정한다. (나중에 Ctrl+a w 나 Ctrl+a “로 볼때 이름이 다 똑같아서 정의해 놓는게 좋다)
Ctrl+a c : screen에서 새창 띄우기
Ctrl+a K : 현재 screen 죽이기.

Ctrl+a a : 바로 전 창으로
Ctrl+a n : 다음 창으로
Ctrl+a p: 이전 창으로

Ctrl+a ” : 열린 screen list 을 보여줌.

Ctrl+a 0 : 0번째 창으로
Ctrl+a 1 : 1번째 창으로
Ctrl+a 9 : 10번째 창으로

Ctrl+a d : screen 때어내기 (현재 상태로 남겨두는거..)
Ctrl+a x : 이전에 남겨둔 screen에 다시 붙이기.

Ctrl+a ? : 도움말
Ctrl+a ESC, Ctrl+a [ : 화면 스크롤
Ctrl+a ] : 붙여넣기.

Ctrl+a S 화면 수평 분할
Ctrl+a | 화면 수직 분할
Ctrl + a :resize resize region
Ctrl + a :fit fit screen size to new terminal size
Ctrl +a :remove remove region
Ctrl+a Q 현재 region을 제외한 나머지 숨기기
Ctrl+ a tab 화면 분할 이동
Ctrl+a, : 명령행 모드로 전환

Ctrl+ X : 현재 화면 닫기

screen 세션 내에서의 “exit” : 세션을 종료함

screen을 사용할때 마우스 휠로 올리거나 내리는게 하는법,
~/.screenrc (없다면 생성해서) 아래 두줄을 추가하면 된다.
defscrollback 5000
termcapinfo xterm* ti@:te@

아래처럼 각 키를 넣어서 단축키를 마음대로 사용할 수 있다.
$ vi ~/.screenrc
bind j focus down
bind k focus up
bind t focus top
bind b focus bottom

ps -ef | grep -i screen : 열려진 Screen 프로세스 목록 (kill로 죽이면 깔끔)

screen -wipe : 죽은 세션 삭제
screen -r 세션명 : 강제로 종료된거에 다시 붙이기
screen -list : 현재 열려있는 리스트를 보여줌.
screen -X -S <세션명> kill : 세션을 죽임

screen에서 vim을 사용할 때 Ctrl + 방향키를 사용할 경우 삭제 되는 증상해결

bash 에서 export TERM=xterm 를 치거나, vim 명령 모드에서
:set term=xterm 혹은
:map <esc>[1;5D <C-Left>
:map <esc>[1;5C <C-Right>을 입력하면 된다.

[ssh|sftp] ssh root 접근 허용 및 제한

SSH & SFTP root 접근 허용 및 제한


TL; DR

[ubuntu 16.04 기준]

$ vi /etc/ssh/sshd_config

PermitRootLogin prohibit-password >> PermitRootLogin yes

$ sudo service ssh restart


root의 password를 설정한 이후에도 ssh 접근이 안되거나,

오류: 인증 실패.
오류: 치명적 오류: 서버에 연결하지 못함

sftp를 통해 접속하려고 할 때 위와 같은 메시지가 나오면서 로그인이 안되는 경우에 대한 해결법이다.

/etc/ssh/sshd_config 파일에서 PermitRootLogin옵션의 값을 yes로 변경한후 SSH 데몬을 재시작 해주면 된다.

 

PermitRootLogin 옵션 설정 가능 정보

yes  : 원격 root 로그인 허용
no : 원격 root 로그인 금지
prohibit-password : 원격에서 키 로그인은 허용, 하지만 password를 사용한 로그인은 금지