-->

[PostgreSQL] 유저 생성, 권한 주기

 

PostgreSQL을 처음 설치할 때 SuperUser 권한을 가진 'postgres'라는 계정이 default로 생성된다.

하지만 데이터베이스를 생성하고 조회할 때마저 이 계정으로 접속한다면 그건 문제가 있다. 

왜냐면 모든 테이블을 drop 할 권한도 갖춘 가장 강력한 힘을 가진 계정이기 때문이다.

따라서 데이터베이스를 이용할 admin계정과 조회용 계정을 만들어본다.

 

[minggu@dev DB server ~]# psql -U postgres
postgres 사용자의 암호:
psql (14.0)
도움말을 보려면 "help"를 입력하십시오.

postgres=#

일단 psql 명령어를 통해 최초에 생성한 postgres 계정으로 접속을 한다.

 

postgres=# \du
                                 롤 목록
  롤 이름   |                      속성                      | 소속 그룹:
------------+------------------------------------------------+------------
 postgres   | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}

postgres=#

psql에서는 명령어 이용할 때 역 슬래쉬(\)를 이용한다. \du 명령어를 통해 유저리스트를 확인해본다.

 

[Admin 계정 생성]
postgres=# CREATE ROLE minggu_admin SUPERUSER CREATEDB CREATEROLE NOINHERIT LOGIN PASSWORD '123456';
CREATE ROLE
postgres-#

[developer 계정 생성]
postgres=# CREATE ROLE minggu_dev NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN PASSWORD 'test';
CREATE ROLE
postgres-#

ROLE을 만들면서 옵션 설정을 통해 admin과 dev계정을 만들었다.

 

postgres=# \du
                                 롤 목록
  롤 이름     |                      속성                      | 소속 그룹:
------------+------------------------------------------------+------------
 minggu_admin | 슈퍼유저, 상속 없음, DB 만들기                 | {}
 minggu_dev   | 상속 없음                                      | {}
 postgres     | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}

확인해 보면 계정이 추가되었음을 알 수 있다.

 

[원하는 테이블에 대한 Select 권한]
postgres=# GRANT USAGE ON SCHEMA scm1 TO minggu_dev
postgres=# GRANT SELECT ON TABLE scm1.testTable TO minggu_dev;

[원하는 테이블에 대한 멀티 권한]
postgres=# GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE scm1.testTable TO minggu_dev;

이제 추가한 dev 계정에 권한을 GRANT 한다.

기본적으로 스키마의 이용권한을 주고 원하는 테이블에 원하는 권한을 주면 된다.

 

[특정 시퀀스에 대한 권한 부여]
postgres=# GRANT select ON ALL SEQUENCES IN SCHEMA scm1 TO minggu_dev;

[특정 함수에 대한 권한 부여]
postgres=# GRANT ALL ON FUNCTION [scm1.test_function(varchar,int4)] FROM minggu_dev;

[모든 함수와 시퀀스에 대한 권한 부여]
postgres=# GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA scm1 TO minggu_dev
postgres=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA scm1 TO minggu_dev;

함수와 시퀀스를 사용한다면 잊지 말고 권한을 챙겨줘야 한다. (view도)

 

[해당 스키마에 대한 모든 테이블 권한주기]
postgres=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA scm1 TO minggu_dev;

[추후 테이블 추가를 위한 기본권한 변경]
postgres=# ALTER DEFAULT PRIVILEGES IN SCHEMA scm1 GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO minggu_dev;

해당 스키마에 존재하는 모든 테이블에 대한 권한을 주거나, 기본 권한을 변경시켜 추후 테이블 추가를 위한 설정을 미리 할 수도 있다.

 

 

 

 

하지만 실업무에선 갓디비버를 쓴다 ^^

 

[Intellij] SVN merge for Override (Resolve Conflits) 

 

그 좋다는 intellij를 사용해야지 해야지 계속 미뤄두다가.. 학교 메일을 이용하면 학생 라이선스를 무료로 받을 수 있다는 정보를 습득!

그래서 라이센스 받은 지 무려 10달 만에 ^^ 본격적으로 업무환경에 intellij를 사용하고 있다.

원래 프로젝트에서 형상관리를 SVN 으로 하고 있었기에 intellij에서도 플러그인을 통해 사용하고 있다.

근데 문제는.. intellij 에는 Eclipse 에 있는 override commit과 override update가 없다는 것..?

구글링을 해도 안나오길래 혹시 이렇게 하는 건가 하고 적어본다.

 

일단 기본적으로 intellij 에서 아주 똑똑하게 commit, update 처리를 한다. 기본적인 merge 작업을 해주는 것이다. 

근데 intellij 가 감당할 수 없는 소스 merge가 일어나게 되면 유저에게 conflict를 보여주는 원리로 생각된다.

기본적으로 오래되었다고 하면 업데이트 한번 해주고 다시 커밋치면 증분수정분이 update, commit 잘 된다.

 

conflict가 발생하면 소스명이 빨간색으로 하이라이트 된다.

현재 conflict 일어난 xml 파일

 

해당 소스에 마우스 우측버튼을 클릭하여 Subversion 항목에 들어가면 Resolve Text Confilct와 Mark Resolved 메뉴가 있다.

 

Resolve Text Conflict 는 Merge 작업이다.

confilct난 소스를 확인하고 Merge 를 클릭해보자.

 

왼쪽은 내 버전, 오른쪽이 서버 버전이고 가운데가 결과적으로 merge 될 소스의 result를 보여준다.

conflict 나는 부분은 빨간 부분으로 보여지고 

따라서 눈으로 소스를 비교해보고 가운데 result 부분에 들어갈 부분을 각각 클릭 한 번으로 넣어주면 된다. 

 

Mark Resolved 가 바로 override 이다.

출처 : jetbrains.com

해당 버튼을 클릭하면 똑똑한 intellij가 confilct난 mark를 없애 local view로 commit 칠 수 있도록 만든다.

이것이 바로 override commit 개념인 것이다.

 

commit을 치기 위해서는 아까같이 소스 마우스 오른쪽 버튼에 Subversion에도 있고

intellij 우측 상단에 초록색 체크표시도 있고

Ctrl + T도 있고

상단 탭의 SVN에서도 칠 수 있다.

커밋 준비 완료

 

 

 

참고 :

https://www.jetbrains.com/help/idea/resolving-text-conflicts.html

 

Resolve conflicts in Subversion | IntelliJ IDEA

 

www.jetbrains.com

https://www.jetbrains.com/help/idea/mark-resolved-dialog-subversion.html

 

Mark Resolved dialog (Subversion) | IntelliJ IDEA

 

www.jetbrains.com

 

[PostgreSQL] ROW_NUMBER() OVER PARTITION BY를 이용한 다중 칼럼 그룹핑 조회

 

쿼리문은 알면 알수록 오묘한 것.

다양한 형태로 내가 원하는대로 데이터를 뽑기 위해서는 마찬가지로 다양한 스킬들을 알고 있어야 한다.

특히 이 row_number() 함수를 이용한 방법은 두고두고 도움이 된다! 

개발자는 쿼리를 짤 때 퍼포먼스를 고려한, 성능이 저하되지 않도록 옵티마이징 한다. 혹은 데이터를 분산배치, 마트 테이블을 구성하기도 한다.

마케터는 데이터를 뽑아내기만 하면 된다. 그래서 이런 쿼리를 공부하는게 개발자뿐 아니라 sql을 사용할 마케터에게도 도움이 될 수 있다.

일단 샘플테이블을 만들어 데이터를 넣어준다.

 

/* 테이블 생성 */
create table sample(
	id varchar not null,
	name varchar not null,
	age int not null,
	university varchar
)

/* 샘플데이터 삽입 */
insert into sample values 
('1000','밍구1','20','서울대'),
('2000','밍구2','25','고려대'),
('1000','밍구3','25','연세대'),
('3000','밍구4','28','서울대'),
('2000','밍구5','27','연세대'),
('2000','밍구6','30','중앙대'),
('5000','밍구7','30','고려대'),
('4000','밍구8','30','서울대')
;

 

 

자 여기서 id가 중복되는 경우도 있고 age나 university 칼럼이 중복되는 경우도 있다.

내가 중복되지 않은 특정컬럼을 뽑아내고자 한다면

동일한 컬럼을 묶어내는 group by와 중복을 제거해서 unique 한 값만을 나타내는 select절의 distinct 조건을 사용하는 방법이 있을 것이다.

distinct 와 group by의 사용

그러나 이 방법엔 치명적인 단점이 있는데, 내가 중복 제거한 칼럼 이외의 데이터는 볼 수가 없다는 것이다.

group by 절을 아래와 같이 사용한다면 SQL Error 가 발생한다.

 

이럴 때 사용하는 방법이 바로 ROW_NUMBER() 함수이다.

이 함수는 내가 보고 싶은 순서대로 정렬을 하고 ROW에 대해 순서를 매기는 기능을 한다.

select *, row_number() over (order by age) from sample;

age를 내림차순 기준으로 row number를 매겼다.

그럼 단순히 결과를 칼럼 순으로 정렬하는 order by 와 무슨 차이가 있느냐 할 텐데

여기에 PARTITION BY 절을 추가하면 된다. 

select *, row_number() over (PARTITION by university order by age desc) from sample;

동일한 university 컬럼 , age의 내림차순 기준으로 row number를 매겼다.

 

결론적으로 내가 여기서 row_number 칼럼이 1인 녀석들만 가지고 오면 같은 university의 1명만 가져올 수 있다.

select *
from (
	select *, row_number() over (PARTITION by university order by age desc) as rnum from sample
	) t
where rnum = 1;

 

<참고>

https://www.postgresqltutorial.com/postgresql-row_number/

 

가채점 결과가 82점이니까 합격했다고 볼 수 있겠지..? 하는 마음에 후기를 적어본다. (솔직히 시험 결과 한 달 뒤에 나오는 거 너무 길다ㅜ)

처음 리눅스마스터 1급을 따야겠다고 생각한건 작년에 네트워크 관리사 2급을 따면서이다...

국가 공인 자격증에 학점은행에서도 14학점으로 쳐줄 만큼 공신력이 있다고 (내 멋대로) 판단했기 때문.

 

난 현업이지만 사실 리눅스는 안써봤다. (?!)

서버 운영을 해본 적도 없고, 레거시 프로젝트 위주로 하다 보니 이미 리눅스 환경설정은 다 세팅되어 있는 채로 일을 해왔기 때문이다. 

기본적은 cd 명령어, 로그를 보기위한 tail 명령어 정도만 알고 있었다.. 정말 진심으로..

 

그리고 리눅스마스터 1급 필기를 준비하며 이론적인 부분을 공부하기 시작했는데 내 공부법은 진짜 별거 없다..

5개년 기출문제 쫙 뽑아서 걍 외우는 거다...

 

그리고 처음엔 당연히 모르니까 구글링을 한다. 

정답을 바로 보는 게 아니라 오픈북이라고 생각하면서 정답을 찾아내는 것이다...!

그러면서 관련 내용을 눈으로 쓱 보고 정답이 이해될 때까지 찾는다.

이해가 됐으면 다음 문제로 간다.

 

아침저녁 회사 통근하면서 본다 (그래 봤자 20분이 안된다..)

점심시간에 밥 먹다가 본다. 

업무 집중 안되면 담배 피우면서 한 번 본다.

 

시험 전날엔 휴가 내고 빡공 한다. 

끝..

 

그리고 떨어졌다.

 

난 리눅스마스터 1급을 준비하며 필기에서 한번, 실기에서 한 번씩 떨어졌다...

내가 이렇게 공부한 방법을 올리는 이유는 나처럼 하지 말라고 말씀드리려 하는 것이다..^^

기본도 안 돼있는 상태에서 해봤자 유형 조금만 꼬아서 내면 못 푼다. (그래도 21년도 1회 어렵긴 했다 ㅇㅈ..?)

 

교재를 사는 것을 추천한다. 

인터넷에 다른 분들이 요약해놓은 좋은 정보들이 있긴 하지만, CentOS7이 되면서도 바뀐 명령어들이 많고 ( 대표적으로 sytemctl, firewalld 등 ) 최신 정보는 최신 교재 및 최신 인강에서 얻는 게 빠르다.

괜히 사람들이 책 만들고 강의하는 것 아니다.. 특히나 직장인이라면 오히려 인강을 듣는 게 시간과 비용을 더 절약할 수 있다. 

리눅스마스터 시험은 1년에 2번 밖에 하지 않기 때문에 ^^ 떨어지면 정말 크나큰 시간의 손해이다... 그 시간에 다른 자격증을 하나 땄을 텐데....

 

기출도 2017년 이후로 봤고 기출에 나온 모든 문제의 개념 숙지는 확실히 해야 한다.

다들 말하지만 man 명령어, man -k 명령어, find 명령어 등 관련 설정 파일을 찾아내는 스킬이 매우 중요하다.

혹은 가상을 하나 만들어서 리눅스를 실제로 설치해보고, yum, rpm을 이용해서 패키지를 설치 및 세팅해본다면 매우 수월하게 준비할 수 있을 것이다. 

나도 눈으로만 보는 건 잘 체득이 안되고 내가 관련 내용을 찾아가며 세팅해보고 실패도 해본 경험들이 도움이 많이 됐다. 

그리고 심지어 이거 시험에 나올 것 같아가지고 포스팅해둔 건데 나와버렸다. 나 설마 1타 강사 ㄷㄷ

https://minggu92.tistory.com/48

 

[Linux / CentOS 7] vmware 리눅스 하드디스크 마운트 및 폴더 용량 확장

[Linux / CentOS 7] vmware 리눅스 하드디스크 마운트 및 폴더 용량 확장 하드에 용량이 없어서 데몬 실행이나 로그 작성이 안 될 때가 있다.. 예를 들면 젠킨스 배포하려고 하는데.. 콘솔에 에

minggu92.tistory.com

 

결론은 독학하지 마라!

독학하는 여러분의 시간은 소중하다! 

그 시간에 남이 시간을 써서 만든 책과 강의를 봐라!!

그리고 독학할 거면 100점을 목표로 해라. (본인 100점 목표로 해서 82점이라도 나온 것 같다..^^)

 

 

이 뒤로는 한풀이 같은 건데...

 

애초에 직장인이 자격증 따기 위해 공부하는 시간은 많지 않을 것이다.. 그 시간을 최소화해보고자 기출만 보는 건데 이 리눅스마스터란 시험은 문제를 정말 더럽게 낸다.

기출문제로 커버할 수 없을 정도로 더럽게 낸다. 

아주 디테일하고 사소한 것 까지 낸다. 

그래서 무조건 교재를 보거나 강의를 들어야 한다. 그렇게 만든다. 정말 악독하다.

매년 교재는 새로 나오고 심지어 교재값도 비싸다. 응시비는 필기 실기하면 10만 원이 넘는데 내년엔 거기서 더 오른다 ㅋㅋㅋㅋ실기만 77000원...?

명색이 리눅스마스터, 파이썬 어쩌고 자격증 주관하는 기관이 지네 서버 홈페이지는 자주 터진다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

아니 그리고 시험 응시장소가 시험 보기 10일 전에 나오는 게 말이 되나 진짜?ㅋㅋㅋㅋ 

문제는 실무와 동떨어진 것을 위주로 내면서 ( 도대체 설루션이나 외부 프로그램 사용하지 않고 시험에 나오는 것처럼 세팅하는 서버가 있긴 있을까? ) 문제의 퀄리티도, 난이도도, 관리도 응시비에 상응하지는 못하는 것 같다... 

아니 리눅스 옵션 세팅을 필기시험으로 외워서 적는 게 말이 되나 컴퓨터 시험인데??? 누가 그 옵션을 외워야 리눅스 잘한다고 평가한단 말이냐 세상에...  이 자격증 정말 가치 있는 것 맞나요..?

 

내가 여태 사회복지사 1급, 컴활 1급(이놈들도 진짜 개 악독하다), 정보처리기능사, 정보처리기사, SQLD, 네트워크관리사 2급, 외환 전문역 이런 시험들 다 봤어도 이렇게 공부하기 싫고 시험 보기 싫었던 적은 처음이다. (시험 보는 중에도 지문 대충 보고 시간 남았을 때도 문제 다시 안 보고 그냥 제출하고 퇴실했다...) 함께 해서 더러웠고 두 번 다신 보지 말자 정말로.

 

왜 또 올라오냐고요...? 두 번째 시험이니까요...^^ 후..

제2102회_리눅스마스터_1급_2차_모범답안.pdf
0.17MB

 

리눅스마스터 1급 실기시험은 총 16문제이고, 1~10번은 단답식, 11~16번은

작업식으로 구성되어 있습니다.

단답식 : 10문제 X 4점 = 40점

작업식 :  6문제 X 4~12점 = 60점

합격 기준은 합계 60점 이상입니다.

 

 

<단답식 1~10>

1. 다음은 사용자를 관리하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. 웹서버를 운영할 예정이라서 사용자 추가 시에 www 디렉터리를 기본적으로 제공하려고 한다. 관련 디렉터리를 생성하는 명령을 실행한다.
 # (      ①      ) (      ②      )

나. 현재 ihduser 사용자의 주 그룹이 kait인 상태이다. 주 그룹 변경 없이 추가로 admin 그룹에 포함시킨다.
 # (      ③      ) (      ④      ) 

■ 조건
 - ①번부터 ③번에는 관련 명령어만 기입한다.
 - ②번은 생성해야 하는 디렉터리를 절대 경로로 기입한다.
 - ④번은 ③번 명령어의 옵션 또는 옵션과 관련된 인자 값을 기입하는데, 옵션과 관련된 인자 값이 있는 경우에는 하나의 괄호로 처리한다. (예: -d /home/ihduser)
 - ②번과 ④번의 경우 명령어가 틀리면 채점하지 않는다.

 

 

 

2. 다음은 파일 시스템을 생성하고 관련 정보를 확인하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. /dev/sdb1 장치의 파일 시스템을 XFS로 생성한다.
 # (      ①      ) /dev/sdb1

나. 파일 시스템이 생성된 /dev/sdb1의 UUID 값을 확인한다.
 # (            ) 

■ 조건 
 - ①번과 ②번은 특별한 옵션이나 인자값 없이 관련 명령어만 기입한다.

 

3. 다음은 cron을 이용한 스케줄링 작업을 관리하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. ihduser 사용자가 예약한 cron 작업의 파일을 삭제한다.
 # rm (      ①      ) 

나. /etc/heartbeat.sh 명령을 매주 일요일에 10분 주기로 실행한다.
 # (            ) 

■ 조건 
 - ①번은 관련 파일명을 절대경로로 기입한다.
 - ②번은 cron 항목 중에 날짜 및 시간 관련 5가지 설정에 대해서만 조건과 형식에 맞게 순차적으로 기입한다.

 

 

4. 다음은 추가로 생성한 C 언어 소스 프로그램의 오브젝트 파일을 생성하고, 백업을 진행하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 새롭게 작성한 C 언어 소스를 컴파일 하여 오브젝트 파일을 생성한다.
 # (      ①      ) (      ②      ) sum.c
 # (      ①      ) (      ②      ) avg.c


나. 생성된 두 개의 오브젝트 파일을 이용하여 calc라는 실행 파일을 생성한다.
 # (      ①      ) (            ) sum.o avg.o

다. tar 명령을 이용하여 현재 디렉터리에 있는 오브젝트 파일만을 묶어서 obj.tar 파일을 생성한다.
 # tar  (      ④      )

■ 조건 
 - ①번과 관련 명령어만 기입한다.
 - ②번과 ③번은 명령어의 옵션 또는 옵션과 관련된 인자 값을 기입한다. ( 예: -d /home/ihduser)
 - ④번은 명령어의 옵션 또는 옵션과 관련된 인자값, 대상(target) 등을 기입하는데, 명령어를 제외한 나머지 부분을 하나의 괄호로 처리한다. ( 예: -d /home/ihduser -g kait)
 - ②번과 ③번의 경우 명령어가 틀리면 채점하지 않는다.

 

 

5. 다음은 모듈 관련 작업을 진행하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 모듈의 alias, alias symbol, blacklist 비롯하여 다양한 정보를 출력한다.
 # (      ①      ) (      ②      ) 


나. iptable_filter 모듈을 제거하면서 관련 모듈도 같이 제거한다.
 # (      ①      ) (            ) iptable_filter

다. e1000.ko 모듈 관련 정보를 출력한다.
 # (      ④      ) e1000.ko.xz

■ 조건 
 - ①번과 ④번은 명령어만 기입한다.
 - ②번과 ③번은 명령어의 옵션만 기입하고, 명령어가 틀리면 채점하지 않는다.

 

 

6. 다음은 2개의 하드디스크를 이용해서 LVM을 구성하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 2개의 파티션을 물리적 볼륨으로 구성한다.
 # (      ①      ) /dev/sdb1 /dev/sdc1

나. 물리적 볼륨을 lvm0이라는 볼륨 그룹으로 구성한다.
 # (            )  /dev/sdb1 /dev/sdc1

다. 약 2GB정도의 논리적 볼륨을 생성하는데, 이름은 kdata1로 설정한다.
 # (  ③  ) (      ④      )

■ 조건 
 - ①번은 관련 명령어만 기입한다.
 - ②번은 관련 명령어 또는 명령어 및 인자값을 한 번에 기입한다.
 - ③번은 관련 명령어만 기입한다.
 - ④번은 ③번에 기입한 명령어를 제외한 나머지를 한 번에 기입하고, 명령어 틀리면 채점하지 않는다.

 

 

7. 다음은 시스템 로그 관련 설정을 하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가.  모든 서비스(facility)에 대해 가장 최고 수준(priority)의 위험한 상황이 발생한 경우에는 모든 사용자의 터미널로 관련 로그를 전송한다.
 (      ①      )   (      ②      )

나. ssh와 같은 인증 관련 로그는 /var/log/ssh.log 파일에 기록한다.
 (      ③      ) (      ④      )

■ 조건 
 - ①번과 ③번은 facility.priority 형식으로 기입한다.
 - ②번과 ④번은 관련 설정(action)을 기입한다. 

 

 

8. 시스템에 접속하는 사용자가 너무 많아서 특정 로그 파일의 로테이션 관련 설정을 변경하려고 한다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

로그인에 실패한 사용자의 정보가 저장되는 로그 파일은 일주일 단위로 로테이션을 실행한다. 단 파일의 크기가 1MB에 도달하면 그 이전이라도 로테이션을 실행한다. 생성되는 파일을 소유자는 root, 소유그룹은 utmp로 지정하며, root 사용자만 읽기 및 쓰기가 가능하도록 설정한다.
 (      ①      )     {
 (      ②      )
 (      ③      )
 (      ④      )
 rotate 5
 }

■ 조건 
 - ①번은 해당 파일명을 절대 경로로 기입한다.
 - ②번 ~ ④번은 관련 설정을 하나씩 기입한다. (순서 무관)

 

 

9. 외부로부터의 접근을 일시적으로 허가하기 위해서 SELinux 설정을 확인하고 제어하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 현재 SELinux 설정 상태를 확인한다.
 # (      ①      )

나. SELinux를 비활성화 상태로 바꾼다.
 # (      ②      )

■ 조건 
 - ①번과 ②번은 명령어 또는 명령어와 인자값 조합으로 기입한다.

 

 

10. 다음은 원격지 호스트의 데이터를 백업하는 과정이다. 작업사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

(작업 사항) IP 주소가 192.168.5.13번인 원격지 호스트의 /home 디렉터리를 로컬시스템의 디렉터리로 복사하는 과정이다.
root 권한으로 접속하여 허가권, 타임스탬프 등을 그대로 유지하면서 백업을 진행한다. 또한 작업 진행 상황을 표시하고, 전송 시에 압축 기법을 사용한다.

 # (      ①      ) (      ②      )  root@192.168.5.13:/home /

■ 조건 
 - ①번은 관련 명령어만 기입한다.
 - ②번은 ①번에 사용되는 명령어의 옵션을 기입한다. 명령어가 틀리면 채점하지 않는다.

 

<작업식 11~16>

11. 다음은 삼바 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 윈도우 호스트에서 접근할 때 보이는 폴더의 이름은 web으로 지정한다.
  (      ①      )

나. 디렉터리에 대한 설명은 "HTML Directory"로 설정한다.
  (      ②      )
  
다. 공유 디렉터리 경로는 /usr/local/apache/html로 설정한다.
  (      ③      )

라. 접근이 가능한 사용자는 ihduser 및 kaituser만 가능하고, 두 사용자 모두에서 파일 생성 및 삭제 권한을 부여한다.
  (      ④      )

  (      ⑤      )

■ 조건 
 - ① ~ ⑤번은 관련 항목과 값을 한 번에 기재한다. 
 - ④번과 ⑤번은 순서 무관하다.

 

 

12. 다음은 메일 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 발신지 도메인의 spam.com으로부터 오는 메일을 거부하는데, 별도의 메세지는 보내지 않도록 설정한다.
 # vi (      ①      )
(      ②      )


나. 변경된 내용이 적용되도록 관련 정보를 갱신시킨다.
 # (      ③      ) (      ①      ) (      ④      ) (      ①      )

■ 조건 
 - ①번은 관련 파일명을 절대 경로로 기입한다.
 - ②번은 관련 설정을 한 줄로 기입한다.
 - ③번은 관련 명령어 또는 명령어와 인자 값 조합으로 한 번에 기입한다.
 - ④번은 관련 기호를 기입한다.

 

 

13. 다음 조건에 따라 아파치 웹 서버 환경 설정을 진행하려고 한다. ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 아파치 웹 서버 환경 설정 파일을 vi 편집기로 불러온다.
 # vi (      ①      )

나. 도메인명을 www.ihd.or.kr으로 지정하고 포트 번호는 80을 사용한다.
  (           ②           )

다.웹 문서가 위치하는 디렉터리의 경로는 /usr/local/apache/html로 변경한다.
  (           ③           )

라. 아파치 웹 서버 데몬을 실행한다.
 #  (           ④           )

■ 조건 
 - 아파치 웹 서버는 소스 파일을 이용해서 /usr/local/apache 디렉터리에 설치되어 있다.
 - ①번은 아파치 웹 서버의 환경 설정 파일명을 절대 경로로 기입한다.
 - ②번과 ③번은 ①번 파일에 존재하는 항목과 값을 하나로 기입하고 대소문자를 구분하여 정확히 기재한다. (예 : LogLevel warn)
 - ④ 아파치 데몬을 실행하는 명령을 정확히 기입한다.

 

14. 다음은 DNS 서버의 환경 설정 파일을 관련 내용에 따라 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

 가. 도메인에 대한 질의를 다른 DNS 서버인 168.126.63.1로 넘기는데, 이 서버에서 응답이 없을 때도 처리 하지 않는다.
  (      ①      )
  (      ②      )


나. zone 파일의 내용을 복사할 대상으로 192.168.5.0 네트워크 대역에 속한 호스트들만 허가한다.
  (      ③      )

다. 네임 서버에 질의할 수 있는 호스트를 192.168.12.0 네트워크 대역에 속한 호스트, 192.168.3.13 호스트만 가능하도록 설정한다.
  (      ④      ) 

■ 조건 
 - ①번과 ④번은 관련 설정 내용을 한 줄씩 기입한다.
 - ①번과 ②번은 순서 무관하게 기입한다.

 

 

15. iptables 기반으로 하나의 공인 IP 주소를 공유해서 다수의 컴퓨터를 사용하는 환경을 구축하려고 한다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

 # iptables -t (      ①      ) -A (      ②      ) (      ③      ) eth0 -j (      ④      )   --to 200.100.50.10

■ 조건 
 - 해당 시스템에는 이더넷 카드가 두 개가 장착되어 있는데, 외부망과 연결된 첫 번째 이더넷 카드의 공인 IP 주소는 200.100.50.10이다.

 

 

16. 다음은 DHCP 서버의 설정 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

(      ①      ) (      ②      ){
    (      ③      ) 03:13:12:22:c0:a5;
    (      ④      ) 192.168.5.13;
}

■ 조건 
 - 맥(MAC) 주소가 03:13:12:22:c0:a5 인 경우에는 고정적으로 192.168.5.13번 IP 주소를 할당한다.
 - 호스트명은 ihd_com으로 관리한다.
 - ①번부터 ④번에 해당하는 내용을 순차적으로 기입한다.

 

 

좋은 결과 있으시길 바라겠습니다!

제1602회_리눅스마스터_1급_2차.pdf
0.47MB
제1502회 리눅스마스터_1급_2차.pdf
0.43MB
제1601회_리눅스마스터_1급_2차.pdf
0.46MB

 

이거부턴 아예 보지도 않았다.. 올드하기도 올드할 뿐더러 리눅스마스터 시험이 급격히 난이도가 올라가기 시작하면서 과거에 낸 것들은 안쳐다 보는 것 같아서..^^ 필요한 사람만 보시길..

제1701회_리눅스마스터_1급_2차.pdf
0.53MB
제1702회_리눅스마스터_1급_2차.pdf
0.46MB

 

올드하긴 하지만 지금이랑 사용하는 명령어는 다 같다. 그리고 훨씬 난이도가 쉽다.

이정도는 자체 하드코어모드로 보기만 보고 묻고자 하는게 뭔지, 무엇을 작업하는 내용들인지 파악해야 한다..

특히 LVM 나오는 것 보고 본인은 실제로 LVM 작업도 했다.  (게다가 2102회 시험에 나왔다 심지어 !!!!)

https://minggu92.tistory.com/48

 

[Linux / CentOS 7] vmware 리눅스 하드디스크 마운트 및 폴더 용량 확장

[Linux / CentOS 7] vmware 리눅스 하드디스크 마운트 및 폴더 용량 확장 하드에 용량이 없어서 데몬 실행이나 로그 작성이 안 될 때가 있다.. 예를 들면 젠킨스 배포하려고 하는데.. 콘솔에 에

minggu92.tistory.com

 

2회도 마찬가지.. logger 명령어 빼면 기존에 나오던 거 다 나왔다. 그냥 달달 외워야 한다. 관련 개념까지 전부 다.

 

제1801회 리눅스마스터 1급 1차 A형_정답추가.pdf
0.47MB
제1802회_리눅스마스터 1급 2차 A형_답안추가.pdf
0.43MB

 

 

아 쉽다 쉬워... 21년도에도 이렇게만 나왔으면 진즉에 합격인데...

1회의 sysctl 명령어랑 lpr, lp 명령어는 생소할 수 있어도.. 나머지는 당연히 맞춰야 할거고...

2회는 전부 다 알아야한다... 특히 apache httpd 관련은 centOS7이 시험OS인 만큼 systemctl, apachectl 로 명령어가 변경되었다는 사실을 잊으면 안된다.

 

제1901회 리눅스마스터 1급 2차.pdf
0.34MB
제1901회 리눅스마스터 1급 2차 모범답안(수정).pdf
0.23MB
제1901회 리눅스마스터 1급 2차.pdf
0.34MB
제1902회 리눅스마스터 1급 2차 모범답안.pdf
0.22MB

항상 신유형이 나오는 리눅스마스터 시험이니 만큼 ldd 명령어가 나오기는 했지만..

합격점은 60점이 기준이기 때문에 그 외에는 다 알아야 할 내용들입니다.

포트 확인을 위한 nmap 명령어, xinted의 설정파일 관리, 아파치 웹 세팅파일은 httpd.conf 의 alias, 가상호스트유저 설정까지 전부 공부하는게 좋겠네요

제2001회_리눅스마스터_1급_2차(추가1).pdf
1.31MB
제2002회_리눅스마스터_1급2차_정기검정.pdf
0.53MB

2021년 시험에 비하면 난이도가.. 쉬운 것 같습니다.

신유형이라고 할 것도 별로 없고.. 

당연히 공부해야 할 내용들로만 가득찼으니 지금 시험 준비하시는 분은 문제 & 해설 무조건 암기하셔야 할 듯합니다

[Linux / CentOS 7] vmware 리눅스 하드디스크 마운트 및 폴더 용량 확장

 

 

하드에 용량이 없어서 데몬 실행이나 로그 작성이 안 될 때가 있다.. 예를 들면 젠킨스 배포하려고 하는데..

 

콘솔에 에러는 빵빵뜨니까 빨리 해결해보자.

1. 하드디스크의 상태 확인

df명령어로 하드디스크 상태를 확인해본다.

[root@minggu92 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M   26M  884M   3% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   20G   20G   0G  	100% /
/dev/sda1               1014M  207M  808M  21% /boot
tmpfs                    182M   60K  182M   1% /run/user/0
[root@minggu92 ~]#

 

100% 를 꽉채워 쓴 저 폴더를 늘려보자 ^^

 

2. VMWARE에 하드디스크 추가

일단 해당 vmware의 마우스 오른쪽을 클릭해 Settings에 들어간다.

Wndow Serve 2012 R2에서 사용하는 vmware Workstation

 

 

Add 버튼을 눌러 Hard Disk를 추가해준다. 

 

넉넉하게 추가해 준 뒤 해당 pc를 재부팅하고 디스크가 장착이 됐는지 lsblk 명령어와 ll /dev/sd* 명령어로 확인을 해보자. (기본적으로 하드 장치를 추가하면 /dev 디렉터리 안에 sda, sdb, sdc.. 이렇게 명명되는 듯하다.)

 

# 하드디스크 추가 전
[root@minggu92 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

[root@minggu92 ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Nov  8 10:02 /dev/sda
brw-rw----. 1 root disk 8,  1 Nov  8 10:02 /dev/sda1
brw-rw----. 1 root disk 8,  2 Nov  8 10:02 /dev/sda2


# 하드디스크 추가 후
[root@skylark_dev ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  100G  0 disk

[root@minggu92 ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Nov  8 10:02 /dev/sda
brw-rw----. 1 root disk 8,  1 Nov  8 10:02 /dev/sda1
brw-rw----. 1 root disk 8,  2 Nov  8 10:02 /dev/sda2
brw-rw----. 1 root disk 8, 16 Nov  8 10:02 /dev/sdb

 

sdb라는 장치가 인식되었다! 여기서 이 장치만 마운트 하여 용량을 확보하고, 용량을 많이 잡아먹는 프로세스들을 옮기는 방법도 있겠지만,, 우리가 하고 싶은 것은 단순 폴더 용량 확장!

그렇기 때문에 sdb라는 물리 장치를 마운트 시킨 뒤에 논리 볼륨으로 centos-root 폴더에 할당할 것이다.

 

3. 하드디스크 파티셔닝 및 마운트

fdisk 명령어를 이용해 primary로 새롭게 마운트 한다.

[root@minggu92 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n

Command action
   e   extended
   p   primary partition (1-4)
   
Select (default p): p

Partition number (1-4): 1

First cylinder (1-13054, default 1): (Enter)
Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):  (Enter)
Using default value 13054

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

 

4. PVM에 파티션 추가 (물리적 볼륨)

하드디스크라는 물리적 장치 파티션을 추가한다.

# 현재 사용 가능한 물리적볼륨 확인
[root@minggu92 ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  Total: 1 [18.99 GiB] / in use: 2 [18.99 GiB] / in no VG: 0 [0   ]
  
# 추가한 파티션을 물리적 볼륨으로 추가
[root@minggu92 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
  
# 재확인
[root@minggu92 ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  PV /dev/sdb1   VG centos          lvm2 [<100.00 GiB / <75.00 GiB free]
  Total: 2 [118.99 GiB] / in use: 2 [118.99 GiB] / in no VG: 0 [0   ]
  
# 볼륨그룹에 할당
[root@minggu92 ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended

pvscan 명령어를 통해 나오는 물리적 볼륨에서 경로 뒤에 나오는 VG칼럼의 centos는 현재 설정된 볼륨 그룹을 나타낸다.

 

5. LVM에 파티션 추가 (논리적 볼륨)

추가된 물리 볼륨을 논리 볼륨으로 할당해준다.

# 사용 가능한 PE size 확인 
[root@minggu92 ~]# pvdisplay /dev/sdb1
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               centos
  PV Size               <100.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              25599
  Free PE               19199
  Allocated PE          6400
  PV UUID               g5vG5z-JzYw-zcAQ-kJLd-rHnQ-aJRJ-L4q1xI
  
# PE를 LVM 파티션에 추가하고 파티션을 resize
# 볼륨그룹에 따라 경로가 다를 수 있다.
# 기가바이트로 할 수도 있고
[root@minggu92 ~]# lvextend -L +20GB /dev/centos/root 
# pe size로 할당할 수 있다.
[root@minggu92 ~]# lvextend /dev/centos/root -l +25599

  Size of logical volume VolGroup/lv_root changed from 47.57 GiB (12178 extents) to 147.57 GiB (37777 extents).
  Logical volume lv_root successfully resized

 

7. 파일 시스템 확장

#xfs파일시스템 확장명령어 [CentOS 7]
[root@minggu92 ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=10, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=11009024, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#그 외 버전
[root@minggu92 ~]# resizee2fs /dev/centos/root

 

8. 용량 확인

[root@minggu92 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   42G   19G   24G  44% /
/dev/sda1               1014M  207M  808M  21% /boot
tmpfs                    182M   36K  182M   1% /run/user/0

 

 

번외) growpart 이용

리눅스 용량 할당을 간편하게 도와주는 growpart 패키지를 설치해서 진행할 수 있다. 클라우드 서비스를 이용하는 상태이거나 하드디스크 추가가 아닌 vmware에서 할당된 디스크량만 늘리면 lsblk 명령어를 통해 늘어난 것을 확인할 수 있는데 해당 상태에서 하위 파티션으로 바로 용량을 할당할 수 있다.

yum명령어를 통해 install 하면 된다.

[root@minggu92 ~]# yum install cloud-utils-growpart

현재 확장하고자 하는 /home경로 용량은 SDA->SDA2->centos-root 절차상 순서대로 용량을 전달해준다.

[root@minggu92 ~]# growpart /dev/sda 2

 

그 뒤에 물리 공간에 배정한 용량을 사용 가능한 볼륨으로 변경하고 논리 파티션을 확장하는 방법은 같다.

[root@minggu92 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   42G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  100G  0 disk 
└─sdb1            8:17   0  100G  0 part 
  └─centos-root 253:0    0   42G  0 lvm  /
sr0              11:0    1 1024M  0 rom

#lvm 파티션 resize
[root@minggu92 ~]# lvextend /dev/centos/root -l +100%FREE
  Size of logical volume centos/root changed from <42.00 GiB (10751 extents) to 116.99 GiB (29950 extents).
  Logical volume centos/root successfully resized.
  
[root@minggu92 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0  117G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  100G  0 disk 
└─sdb1            8:17   0  100G  0 part 
  └─centos-root 253:0    0  117G  0 lvm  /
sr0              11:0    1 1024M  0 rom

# xfs 파일 시스템 확장 및 리로드
[root@minggu92 ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=10, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=11009024, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 11009024 to 30668800

# 추가된 용량 확인
[root@minggu92 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root  117G   19G   99G  16% /
/dev/sda1               1014M  207M  808M  21% /boot
tmpfs                    182M   36K  182M   1% /run/user/0

 

 




 

 

 

<참고>

https://indienote.tistory.com/195

 

리눅스 하드디스크 용량 늘리기

LVM의 장점이라고 한다면 서비스 도중에도 자유롭게 용량을 줄이기도, 늘리기도 할 수 있다는 것이다. 이번에 최상위 디렉터리의 크기를 늘릴 일이 있어 LVM으로 최상위가 되어있는 리눅스 시스

indienote.tistory.com

 

https://kingsong.tistory.com/167

 

리눅스 디스크/파티션 용량 증설 (확장/할당/배정) 방법

VM 혹은 신규 디스크 추가로 인해 특정 디렉토리에 용량 증설이 필요한 경우가 있다. 윈도우 같은경우 나눠둔 파티션에 추가 디스크에 대한 용량 배정이 불가하나, 리눅스의 경우 파티션 용량 증

kingsong.tistory.com

 

[Linux / CentOS] vmware 내에 CentOS 7 수동 네트워크 설정 및 고정 IP 할당

 

vmware로 가상 서버를 하나 만드려다가 헤맸다..

기존에 구축해두었던 다른서버를 보며 참조하는데 안 되가지고... 이번 기회에 확실히 외우기 위해 기록을 남겨둔다.

 

최초에 ping 8.8.8.8 을 쳐보면 네트워크가 접근 불가능이라고 나온다.

ip addr 혹은 ifconfig 명령어를 통해 네트워크 인터페이스 이름을 찾는다.

인터페이스 네임은 설치하는 디바이스마다 다른 걸로 알고 있다.

나는 현재 eno16777736 이다 (이렇게 긴 거 첨봄..)

vi /etc/sysconfig/network-script/ifcfg-eno16777736

을 통해 파일을 열어준다. 

 

최초 환경설정

이렇게 네트워크 환경설정을 할 수 있는 파일이 열린다.

우리는 고정 ip를 사용할 것이기 때문에 BOOTPROTO 항목을 STATIC 혹은 NONE으로 바꿔주고

ONBOOT는 부팅 시 자동으로 랜카드 환경설정을 적용하기 위해 yes로 바꿔준다.

 

내가 할당하고 싶은 고정 ip를 입력하고 게이트웨이와 넷마스크는 C클래스로 적는다.

DNS는 인터넷 공급업체에 따라 다른데 우리는 LG유플러스 사용하니까 LG유플의 주 DNS인 164.124.101.2를 입력하고, 엘지 유플 보조 DNS도 있지만 이번 KT 사태처럼 다른 회선을 보조로 하는 게 좋아 보이므로 구글의 8.8.8.8을 입력한다.

그리고 :wq로 저장,,,

 

아 imbs라고 만든 로컬 유저로 들어갔네 해당 네트워크는 슈퍼유저만 수정이 가능하다. 멍청하게,,,,

 

su 명령어를 통해 루트로 바꿨다.

환경설정을 변경하고 network 시스템을 재기동해준다.

service restart network

 

그리고 핑을 날려보면......?

뭐여 핑이 안 간다....! 왜지???

 

vmware의 Edit - Virtual Network Editor에 들어간다.

 

아.. 게이트웨이 주소를 잘못 입력했구나.. vmware 기동 하는 pc가 하나가 아니기 때문에 다른 서버 구축해둔 거 참조했을 때 이 부분이 실수였다.

 

게이트웨이 주소를 바꾸고 재기동하니 핑이 정상적으로 간다.

 

 

인터넷 연결 끝.

 

 

 

 

 

<참고>

https://xosarah.tistory.com/15

 

[리눅스, CentOS6.5] 네트워크 설정(IP설정, 라우팅 설정)

리눅스, CentOS6.5 가장 기본이 되는 네트워크 설정 방법이다. 1. 네트워크 디바이스 정보 확인 - #ifconfig -a ifconfig -a 를 통해 확인하면 eth0를 이용한다는 것을 알 수 있으며, 설치 시에 자동으로 DHCP

xosarah.tistory.com

 

https://it-serial.tistory.com/7

 

[Linux] 네트워크 설정 & 외부 통신 해결

1. 네트워크 설정 네트워크가 연결되지 않을 경우 (외부로 핑을 보냄으로써 통신이 되는지 확인합니다.) ▷ 네트워크 구성정보가 정확한지 확인합니다. (설정파일) ▷ Default Gateway 가 제대로 설정

it-serial.com

 

[PostgreSQL] count filter를 이용한 여러건 동시추출

단순히 count(*)를 주면 건수를 알아낼 수 있지만 한 SELECT 쿼리문에서 여러 count를 하기 위해선 다음과 같이 이용한다.

 

/* 회원 통계 */
SELECT COUNT(*) 신규회원가입수
	 , COUNT(1) FILTER (WHERE customer_type_code ='100') AS naver회원가입
	 , COUNT(1) FILTER (WHERE customer_type_code ='200') AS google회원가입
	 , COUNT(1) FILTER (WHERE customer_type_code ='300') AS facebook회원가입
  FROM ming.customer_table  
 WHERE 1=1
   AND CREATE_DATETIME > CURRENT_DATE - INTERVAL '7 DAY' --지난 일주일간

 

[Linux / CentOS] Hostname 바꾸기

 

CentOS 6

#CentOS 6
[root@localhost ~]# vi /etc/sysconfig/network 

# Created by anaconda
NETWORKING=yes
HOSTNAME=myHost
GATEWAY=192.168.0.1
~

 

CentOS 7

#CentOS 7 
#호스트정보 확인
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localadmin
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 9d084ea92a2e4b138f6c8bd3cced5e2d
           Boot ID: c58bc64920ff4bd0a0a98767528a7396
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1062.12.1.el7.x86_64
      Architecture: x86-64

#호스트 이름변경
[root@localhost ~]# hostnamectl set-hostname myHost

#파일로 변경
[root@localhost ~]# sudo vi /etc/hostname

#루프백 아이피에 등록
[root@localhost ~]# sudo vi /etc/hosts

 

JBOSS의 open source버전인 WildFly를 이용해 서버를 구축할 때가 있다. 

다운로드도 워낙 간편하고 속도도 빠르고 폭넓게 사용할 수 있어 제일 좋아하는 WAS(Web Application Server)이다.

 

아무튼, 퍼블릭 서비스를 하는 중에 이용자가 많이 몰리게 되어 개발서버에서도 정말 동일한 환경으로 테스트를 많이 해야 할 필요성을 느껴... 개발 서버와 운영 서버 간의 같은 WAR 파일을 구동시키다 보니 구분을 어떻게 할까 고민이 되었다.

그중 System.properties() 를 이용해 구분하면 되지 않을까! 란 생각을 가지고 WildFly를 구동할 때 나오는 로그를 참조해보았다.

단순히 저기서 보이는 host.name 이나 node.name, server.name 만 바꾸면 될 것이라고 생각했는데...

 

안 바 껴

 

왜 안되는지 전혀 감도 안잡힌다..

WildFly를 편하게 실행하기 위해 service로 등록을 해두었는데 WildFly_HOME 근처에 systemd 폴더를 찾아보니 wildfly.service 파일을 발견했다.

내 로컬은 WildFly22버전을 쓴다구..엣헴

아니 EnvironmentFile 경로가 저렇게 잡혀있네...? 하고 해당 파일을 열어보았다.

참고로 bind IP가 0.0.0.0으로 세팅되어 있었고 서버 구동할 때 로그도 0.0.0.0이었다가 저 부분을 한번 바꿔보니까 반영이 되더라... 근데 실제로는.... 저것과 전혀 상관없이 다른 ip로 구동이 잘 되고 있다는 것...

개발서버는 내부망 ip를 할당하여 어차피 회사 pc로 밖에 접속이 안되고 그때 이미 다른 ip를 할당해놨던 상태다.. 

 

하 뭘까 도대체 저것들은 어디서 가져오는 것이냐, 어떻게 수정할 수 있는 것이냐.

 

결론적으로 말하면 System.properties()로 가져오는 것들에 대한 세팅은 standalone.xml, host.xml, domain.xml 이 세 개에 골고루 퍼져있다. 그리고 wildfly를 실행시키는 모드가 domain이면 domain.xml을, standalone이면 standalone.xml을 수정시켜주면 되겠다 이 말이다.

문제는 다 안 먹힌다는 것 ^^ 

 

wildfly에 대한 레퍼런스도 적은 상태라 결국 아래와 같은 방법으로 해결했다..

https://minggu92.tistory.com/43

 

[WAS / Wildfly] System property 세팅 및 사용

[WAS / Wildfly] System property 세팅 및 사용 standalone.xml 파일을 열어서 다음과 같이 수정해준다. ... ... WAS를 기동시 키고 java단에서 System.getProper..

minggu92.tistory.com

 

<추가>

CentOS 버전에 따라서 설정이 다르구나..백날 network 파일 수정해봤자

https://minggu92.tistory.com/45

 

[Linux / CentOS] Hostname 바꾸기

[Linux / CentOS] Hostname 바꾸기 CentOS 6 #CentOS 6 [root@localhost ~]# vi /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=myHost GATEWAY=192.168.0.1 ~ CentOS 7 #CentOS 7 #..

minggu92.tistory.com

 

 

 

<도움(을 줬니?)>

https://access.redhat.com/solutions/18664

 

How to specify the bind address for a JBoss EAP server ? - Red Hat Customer Portal

Application can be accessed via http://localhost:8080/ only, and a remote client cannot connect to the server. Why is the resource showing up as localhost in JBoss Operations Network (JON)? How do I get EAP to use the hostname instead of localhost? Binding

access.redhat.com

https://docs.oracle.com/cd/E52734_01/oam/AIAAG/GUID-94AF262B-9D13-4BEE-A7BC-A8B948AC8457.htm#AIAAG7157

 

Configuring JBoss Server to Access a Host Name (not localhost)

Note: Starting JBoss Server using -b 0.0.0.0 allows the user to access the server using host name rather than localhost / 127.0.0.1. Otherwise, JBoss Server can be accessed using localhost / 127.0.0.1 as well as host name.

docs.oracle.com

https://kb.novaordis.com/index.php/Host.xml#Host_Name

 

Host.xml - NovaOrdis Knowledge Base

migrating from https://home.feodorov.com:9443/wiki/Wiki.jsp?page=Host.xml Internal Overview This file contains configuration details for a specific physical host in a managed domain: the name of the host, network interfaces, socket bindings. This file is n

kb.novaordis.com

 

 

+ Recent posts