Search

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

2019년 1월 31일 목요일

[Linux] [CentOS] 반복 및 예약 작업 설정하기 (crontab)

#1. 들어가기

매월 혹은 매일 단위로 배치 작업을 수행해야 하거나, 특정 날짜의 특정 시간에 이벤트성으로 작업을 걸어줘야 하는 경우가 있다.
이럴 경우엔 사람이 직접 수작업으로 수행할 수 없으니 crontab을 활용해 자동화 시키는 방법을 알아보자.


#2. crontab 사용

crontab을 사용하기 위해서는 crond가 동작되고 있어야 한다.
아래의 명령어를 통해 cornd가 돌아가고 있는지 확인/시작/중지 시킬 수 있다.
bash ~]$ ps -ef | grep crond                 # crond 확인
bash ~]$ /etc/rc.d/init.d/crond start        # crond 시작
bash ~]$ /etc/rc.d/init.d/crond stop         # crond 중지

crond가 정상적으로 확인된다면, crontab을 통해 현재 예정된 작업들을 확인/수정 할 수 있다.
bash ~]$ crontab -l                          # 예정된 작업리스트 확인
bash ~]$ crontab -e                          # 작업리스트 수정(추가/수정/삭제)


#3. crontab 작업리스트 추가 옵션

작업리스트는 총 6개의 항목을 작성하여 등록할 수 있는데, 아래와 같이 순서에 맞게 6개의 항목을 작성해주면 된다. (구분은 스페이스바 공백으로 하면 되고, 전체의 의미는 *이다.)

기본구문:     (1)분   (2)시   (3)일   (4)월   (5)요일   (6)실행명령구문

ex> 15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 15분에 home의 run_batch.sh 파일을 실행시킨다.
ex> 15  2  *  *  0  ~/run_batch.sh > ~/batch_log.txt    설명: 매주 일요일 새벽 2시 15분에 명령을 수행하고, batch_log.txt에 로그를 기록한다.


아래와 같이 조금 더 세부적인 컨트롤도 가능하다.

- 콤마(,): 여러 특정 범위를 지정할 수 있다.
- 하이픈(-): 여러 연속된 범위를 지정할 수 있다.
- 슬래쉬(/): 범위에 대한 간격을 지정할 수 있다.

ex> 0,15,30,45  2  *  *  *  ~/run_batch.sh                       설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> */15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> 0  1-5  *  *  *  ~/run_batch.sh                                  설명: 매월 매일 새벽 1~5시 정각에 명령 수행.



기타 더 세부적인 옵션은 아래의 참조 사이트들을 참고해보자.
참조1: https://www.adminschoice.com/crontab-quick-reference
참조2: http://egloos.zum.com/program/v/802690

2017년 5월 11일 목요일

[Project 01] 3. Network 및 기초 설정

#1. 들어가기

전 단계에서 완성한 Raspberry Pi에 전원을 연결해 부팅 시켜보자. 운 좋게도 HDMI 선이 있다면 바로 연결시켜 컨트롤 할 수 있을것이다. 하지만, 없다고 해도 너무 우울해 하지 말자. 네트워크 공유기(AP)가 있다면 원격으로 접속하여 충분히 설정할 수 있다.



#2. 공유기 연결 및 설정

먼저, 준비한 공유기에 전원을 넣고 WAN과 연결해보자.
공유기에서 WAN을 연결하는 포트는 주로 색이나 무늬가 다르게 생겼다..
집에서 흔히 사용하던 인터넷 선을 여기에 연결시킨다.




공유기를 연결한 후, 해당 네트워크를 통해 접속하면(유선이나 무선 모두) 공유기를 설정할 수 있는 페이지에 접속할 수 있게 된다. ipTime 제품의 경우에는 초기 설정이 아래와 같을 것이다.

SSID : iptime
접근주소 : http://192.168.0.1
ID : admin
PW : admin



여기에서 각자의 취향에 맞게 이름, ID, PW 등을 변경해준다.



#3. Network 설정

아주 간단한 공유기 설정을 마쳤으면, 이제 본격적으로 Raspberry Pi들에게 네트워크를 할당해줄 차례이다.
먼저, 세 대 모두 LAN 케이블을 연결해준다. (나중에 Raspberry Pi를 Wifi로 연결하는 부분도 설명 할 예정임)




이렇게 연결하고 난 후, 다시 공유기 관리 사이트에 들어가보자. (Raspberry Pi의 어댑터에 파워를 넣으면 자동으로 부팅이 된다.)



내부 네트워크 설정 옵션에 들어가보면 공유기에 연결된 순서대로 IP번호를 부여받아 연결되어 있는 모습을 볼 수 있다. 각각의 라즈베리 파이에 고정IP를 부여하는 방법은 두가지가 있는데, 공유기에서 바로 MAC주소를 확인해 IP를 부여하는 방법과, OS에서 직접 IP를 static으로 할당하는 방법이 있다. 여기에서는 전자의 방법을 사용해보자.



ipTime 메뉴 기준으로 우측 아래 '수동 등록'을 통해 각각의 Raspberry Pi에 원하는 IP와 이름을 할당해준다. 필자는 관리를 편하게 하기 위해 뒷 자리를 11,12,13으로 맞췄다. (ex> 192.168.0.11)
단, 이렇게 수동 등록을 하고 나면, 공유기를 재부팅해야 정상적으로 동작한다는 사실을 알아두자.


#4. SSH 연결

ssh 연결을 위해 흔히 putty를 사용하는데, 필자는 Xshell이 더 다루기 편리해서 주로 이용중이다. 위 프로그램은 검색을 통해 쉽게 다운받을 수 있다.




조금 전 공유기에서 설정한 것 처럼, 각각의 IP를 입력하고 연결한다.
Raspberry Pi의 CentOS 7 버전을 기준으로 초기 ID와 PW는 다음과 같다.

ID : root
PW : centos

접속하고 나면 아래와 같은 화면이 뜰 것이다. 축하한다!



(단, 위 스크린샷은 고정IP를 할당하기 이전에 hostname을 변경하는 등, 캡쳐한 내용이 다소 다를 수 있다. 아무튼 이런 식으로 접속이 된다.)



#5. 기초 설정

접속에 성공한 후, 적어도 아래의 두 가지 사항은 바꿔줄 것을 권고한다. (그대로 두게 되면 보안상 취약하기도 하고, 세 대가 모두 같은 호스트네임을 쓰게 되어 문제가 생기기 때문에 꼭 바꿔주기를 권장한다.)

1. root password
# root password 변경
passwd


2. hostname
# hostname 변경
vi /etc/hostname

# hostname 적용
hostname -F /etc/hostname



추가로, 메모리카드에 4기가 이상을 넣었다면(아마 거의 대부분이..) 모든 메모리 용량을 사용하기 위해 아래와 같이 하나의 작업을 더 해줘야 한다. (root로 진행 필요)

# 디스크 용량 확인
hf -h

# 디스크 용량 확장
/usr/local/bin/rootfs-expand

# 작업이 완료될때까지 잠시 대기 후, 디스크 용량 재확인
hf -h






그럼, 3장에 대한 내용은 여기까지 마치고, 다음 장에서는 제작한 클러스터를 예쁘게(?) 꾸미는 방법을 알아보도록 하겠습니다.


----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
   #2: Raspberry Pi에 CentOS 설치
> #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기

2017년 4월 27일 목요일

[Project 01] 2. Raspberry Pi에 CentOS 설치

#1. 들어가기

전 단계에서 모든 물품을 준비했다면, 이제 본격적으로 Raspberry Pi에 OS를 올려서 클러스터를 구성해보자. 본 글에서는 이미 안정화 된 CentOS 7 버전을 사용한다.



#2. 다운로드

1. centos img
아래 링크에서 최신 버전의 Raspberry Pi3용 이미지 파일을 다운로드한 후, 압축을 풀어준다.
http://mirror.centos.org/altarch/7/isos/armhfp/




2. rufus
아래 링크에서 최신 버전의 Rufus를 다운로드 한다.
https://rufus.akeo.ie/





#3. img write

1. sd card를 리더기에 넣고 usb 인식
2. rufus 실행
3. DD이미지 선택 후, 우측 단추를 눌러서 조금 전에 준비한 centOS 이미지를 선택하고 write 시작


4. 약 3~5분 후 완료되면 파일 확인


5. usb안전하게 제거



#4. sd카드 장착

리더기에서 micro sd카드를 제거 후, 하단의 이미지처럼 Raspberry Pi 3에 장착




그럼, 2장에 대한 내용은 여기까지 마치고, 다음 장에서는 Network 설정을 알아보고, 방금 전에 만든 Raspberry Pi에 접근하는 방법을 알아보도록 하겠습니다.



----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
> #2: Raspberry Pi에 CentOS 설치
   #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기



2016년 2월 18일 목요일

[Linux] [CentOS7] [ssh] SSH 포트번호를 바꾸어보자.

SSH Port 번호 변경

우분투와 마찬가지로 아래와 같은 명령으로 sshd_config파일을 열어, Port 부분의 주석을 해제하고 원하는 포트 번호를 입력하고 저장하면 된다.




위 그림에서 보여지듯이, /etc/ssh/sshd_config 파일을 수정하면 된다.


수정 후, 네트워크 서비스를 재시작해주면 완료된다.

# service network restart


하우에버, 1985번 포트로 접속이 안될것이다.

이유는 CentOS에 있는 SELinux가 SSH 포트를 기본 포트번호인 22번으로 고정하고 있기 때문이다. 해결방법은 SELinux의 SSH 포트 정의에 1985번으로 변경해주면 된다.

이 작업은 semanage 프로그램으로 해결 가능하다. semanage는 yum 프로그램을 이용해 설치한다.

# yum install policycoreutils-python


SSH 포트 정의 내용을 확인한다.

# semanage port -l | grep ssh



ssh_port_t TCP 22

ssh_port_t TCP 22

히밤 역시 22번으로 고정된것을 확인할 수 있다.
아래 명령을 이용해서 ssh_port_t 정의에 TCP 포트 1985번을 추가해주면 끝난다.

# semanage port -a -t ssh_port_t -p tcp 1985


다시 데몬을 리스타토 해준다.

# service network restart
# ss -nalt


역시 정상적으로 1985번이 오픈된것을 확인할 수 있을 것이다.
ssh로 접속 테스트를 해보면 정상적으로 작동된다.

# ssh -P 1985 localhost