레이블이 linux인 게시물을 표시합니다. 모든 게시물 표시
레이블이 linux인 게시물을 표시합니다. 모든 게시물 표시

2019-03-26

프로세스 실행기간 제한 명령어, timeout

timeout

프로세스를 설정된 시간동안 동작하도록 제한

사용법

timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]…
timeout [OPTION]

NUMBER[SUFFIX]

실행하고자 하는 시간 입력. 기본 단위는 초(sec).
분은 m, 시간은 h로 사용한다
timeout 3m #3 분
timeout 1h #1시간

[OPTION]

  • -s, --signal=SIGNAL
    specify the signal to be sent on timeout.
    SIGNAL may be a name like ‘HUP’ or a number. See ‘kill -l’ for a list of signals
  • –help
    display this help and exit
  • –version
    output version information and exit

COMMAND [ARG]

실행할 대상인 프로세스의 옵션을 포함한 구동명령

패킷 관제 명령어, tcpdump

tcpdump

네트워크 인터페이스를 통해 오가는 패킷 정보들을 로그정보로 얻어내기위해 사용

사용법

tcpdump [ options] [ ‘expression’ ] [host]

OPTION

  • -w filename
    dump기록을 콘솔이 아닌 파일형태로 저장. 기록이 끝난뒤 파일로 저장
  • -U
    버퍼가 가득찰 때 저장는 것이 아닌, 통신 발생시 파일로 저장
  • -v
    구문 분석 및 인쇄 할 때 자세한 출력을 생성. 예를 들어 IP 패킷의 수명, 식별, 총 길이 및 옵션이 인쇄됩니다. 또한 IP 및 ICMP 헤더 체크섬 확인과 같은 추가 패킷 무결성 검사를 가능하게합니다.
  • -vv
    더 자세한 출력. 예를 들어 추가 필드는 NFS 응답 패킷에서 인쇄되고 SMB 패킷은 완전히 디코딩됩니다.
    -vvv
  • 더 자세한 출력. 예를 들어 telnet SBSE 옵션이 모두 인쇄됩니다. 함께 -X 텔넷 옵션뿐만 아니라 진수로 인쇄됩니다.
  • -G rotate_seconds
    일정 주기로 반복하여 dump 기록 작성하며, -w와 함께 사용하면 해당 파일로 반복해서 덮어 씌워집니다. -c count 지정시 파일명이 filename._count_로 명명됩니다.
  • -c count
    지정한 수만큼 반복됩니다.

expression #

expression and expression 의 형태로 조합가능
  • tcpdump host 192.168.0.1
    host 를 지정하면, 이 ip 로 들어오거가 나가는 양방향 패킷 모두 보여줌
  • tcpdump src 192.168.0.1
    host 중에서 src 가 192.168.0.1인것 만 지정
  • tcpdump dst 192.168.0.1
    host 중에서 dst 가 192.168.0.1인것 만 지정
  • tcpdump net 192.168.0.1/24
    CIDR 포맷으로 지정
  • tcpdump tcp
    TCP 인것만
  • tcpdump udp
    UDP 인것만
  • tcpdump port 3389
    포트 양뱡항으로 3389인 것.
  • tcpdump src port 3389
    src 포트가 3389인 것.
  • tcpdump dst port 3389
    dst 포트가 3389인 것.

Thread-Safe Map

프로젝트 개발중에 netty channel을 생성한걸 관리하는 맵으로 사용되고 있었다.

ConcurrentHashMap

Thread-Safe 한 HashMap. null값을 허용하지 않음.
putIfAbsent(K, V) 메소드가 존재. 대상 key가 존재할 경우 기존값을 반환하고 존재하지 않을 경우엔 설정값을 반환
ConcurrentHashMap<String, Integer> chm = new ConcurrentHashMap<>();
chm.put("key1", 0);
// 존재하는 key1 에 대하여 기존값인 0 사용
chm.putIfAbsent("key1",  1);

// 존재하지않는 key2 에 대하여 설정값인 -1 사용
chm.putIfAbsent("key2",  -1);

Collections.synchronizedMap()

다른 map들도 thread-safe 하게 wrapping 하여 사용할 수 있습니다.
Collections.synchronizedMap(new  HashMap<Long, String>());