목록전체 글 (221)
코딩마을방범대
자바를 통해 서버의 sh 실행 제어하기 자바를 이용해 ssh 에 접속하여 command를 수행할 수 있다. 더불어 파일 업로드, 다운로드도 가능하다! 이번 포스팅에선 ssh에 접속해서 sh파일을 실행하는 로직을 구상해볼 것이다! 사용하기 1. 같은 sweet-rain-kim.tistory.com 이전 포스팅에선 sh 파일을 실행하는 로직을 구성해봤는데 이번 포스팅에선 파일 업로드&다운로드 로직을 테스트 해볼 것이다. 동일하게 JSch를 사용하기 위해 의존성 추가를 해준다. dependencies { implementation 'com.jcraft:jsch:0.1.55' } 세션 설정 public Session getSession(String host, String id, String password) t..

자바를 이용해 ssh 에 접속하여 command를 수행할 수 있다. 더불어 파일 업로드, 다운로드도 가능하다! 이번 포스팅에선 ssh에 접속해서 sh파일을 실행하는 로직을 구상해볼 것이다! 사용하기 1. 같은 서버 내에서 SH파일만 실행하기 다른 서버로는 접근이 불가하고, war 를 구동시킨 현재 서버에만 접근이 가능한 로직이다. 아래 로직은 프로세스 실행 후 출력값을 반환한다. public String serviceShControl(String path, String status) throws IOException { // path엔 "/home/shin/service.sh" 등의 sh 파일 위치를, // status는 start 등의 sh에 존재하는 명령어를 적어주면 된다. ProcessBuilder..
파일을 복사하기 위해 cp 명령어를 사용하는데, 여러 파일을 복사해야하는 경우가 있다. 이럴 경우 여러 번 명령어를 반복하는 것이 아닌 간편하게 한 번에 실행시킬 수 있는 명령어가 당연히 존재한다. cd를 통해 복사할 파일이 존재하는 위치로 이동하는 것이 복사 시 편하다. 현재 폴더 위치 확인 방법 pwd 1. 단일 파일을 복사하기 cp [복사할 파일] [복사 후 이동할 폴더] ##예시 cp source_file.txt /path/to/destination/ 2. 여러 파일을 복사하기 cp [복사할 파일1] [복사할 파일2] [복사 후 이동할 폴더] ##예시 cp file1.txt file2.txt /path/to/destination/ 3. 폴더 내 전체 파일 복사하기 cp [복사할 폴더/*] [복사..

[우분투] 유저 추가 및 그룹 관리특정 사용자에 대해 포트를 제한해야 할 일이 생겼다.이를 위해 유저를 추가하는 절차가 필요하다!이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰sweet-rain-kim.tistory.com 위와 같이 유저 관리하는 포스팅을 했었다.이후 1에서 생성한 유저들에 대해 포트를 제한시키는 방법을 알아볼거다! iptables 설정 iptables는 방화벽 도구이며, 운영체제 레벨에서 직접적으로 포트 허용/차단을 설정해주는 방법은 없고 방화벽으로 막아줘야한다.우선 모든 사용자에 대해 해당 포트를 차단하고, 이후에 특정 사용자에게 할당해주는 방식과특정 포트 이 외 포트는 차단 시키는 방법이 있다. 모든 사용자에 대한 포트 차단 후 특정..
특정 사용자에 대해 포트를 제한해야 할 일이 생겼다.이를 위해 유저를 추가하는 절차가 필요하다!이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰 것이다! 기존 유저 확인cat /etc/passwd 위 명령어 입력 시 아래와 같이 복잡한 형식으로 여러개가 나열된다.여기서 찾는 방법도 있지만, 직접 추가하지 않은 시스템 사용자 부분까지 나열되기 때문에 직접 추가한 유저를 찾기는 어렵다. username:x:UID:GID:full name:home directory:default shell 시스템 사용자를 제외한 일반 유저만 확인하고 싶은 경우 아래 명령어를 사용하면 된다.아래 명령어 실행 시 일반 사용자들 이름만 확인 가능하다. awk -F: '$3 >= 100..

포트와 어댑터 아키텍처는 핵사고날 아키텍쳐라고도 불린다. 여기서 포트는, 통신 연결을 위한 인터페이스를 의미한다. 어댑터는, 하나의 장치나 시스템이 다른 장치나 시스템과 상호작용할 수 있도록 인터페이스를 변환하는 역할을 한다. 자세한 내용은 아래에서 확인할 수 있다. 개요 Controller에서 사용하는 DTO를 Service 메소드의 파라미터로 사용하게되면 문제가 발생한다. Controller의 변경이 Service에 영향을 줄 수 있기 때문이다. 핵사고날 아키텍쳐는 계층 간의 결합도를 낮추고 응집도를 높이는 것을 목표로 하는 아키텍처이다. Layered Pattern (Cake Pattern) 주로 사용되는 패턴으로, 기능을 기반으로 패키지를 구성하는 방법 Port And Adapter Pattern..
가끔 작업할 때 'Reset Current Branch To Here..' 이용하다가 커밋이 꼬여버리는 경우가 있다. 이럴 때 Fetch origin, Full origin 버튼을 클릭해도 'resolve conflicts before merge' 이런 창이 뜨면서 정상적으로 되돌아오질 않는다.. 이럴 때 원상복구 시키는 유용한 명령어가 있다. 아래 명령어들을 참고하자! HEAD의 위치 변동 이력 확인하기 git reflog Git의 HEAD란 현재 어떤 커밋에 위치해 있는지를 나타내는 포인터 로컬 변동 내역 삭제하기 git reset --hard 커밋 ID를 이용하여 브랜치 초기화 git reset --hard [이전 커밋 ID] 원격 저장소의 최신 버전 상태를 가져온 후 브랜치의 최신 커밋으로 리셋 ..

AWS를 통한 기초적인 지식은 아래 링크 참고 AWS(Amazon Web Service)란?AWS(Amazon Web Service) 아마존이 제공하는 클라우드 컴퓨팅 플랫폼 및 서비스 모음 전 세계에 걸쳐 다수의 데이터 센터를 운영하고 있으며, 이들 데이터 센터는 여러 '리전'과 '가용 영역'으로 구성되sweet-rain-kim.tistory.com 가상 네트워크(VNet; Virtual Network)리소스가 서로 안전하게 통신할 수 있는 공간을 제공하는데, 이는 인터넷을 통하지 않고도 Azure 리소스 간에 통신이 가능하도록 도움IP 주소 범위 정의, 서브넷 생성, 네트워크 보안 정책과 라우팅 정책을 설정할 수 있음사설 네트워크 연결을 통해 온-프레미스 인프라와 연결할 수 있음 서브넷..