- 패키지 저장소

- CD or 온라인 repository를 이용하여 리눅스에 필요한 패키지를 설치할 수 있음

 

1. CD/DVD를 이용 할 경우

 (1) CD 삽입 후 파티션 확인

      ex) df -h

 (2) 마운트 할 경로 생성

      #mkdir /media

 (3) 마운트

      #mount /dev/sr1 /media

 (4) yum.repos.d 폴더에 repo 파일 생성

      #cd /etc/yum/repos.d

      #rm *.repo

      #vi local.repo

local.repo
[local-repo]
name=Local Repository
baseurl=file:///media
enabled=1
gpgcheck=0

 (5) repository 확인

    #yum clean all & yum repolist

 

 

 

2. Online Repository 사용

 (1) /etc/yum.repos.d 이동

      #cd /etc/yum.repos.d

 (2) repo 파일 생성

      #vi online.repo

 (3) repository 확인

    #yum clean all & yum repolist

 

 

 

내용출처 :http://blog.naver.com/PostView.nhn?blogId=darksaking&logNo=221084980807&categoryNo=0&parentCategoryNo=0

'Linux' 카테고리의 다른 글

[CentOS] sshd_config 로그설정  (0) 2021.05.03
[CentOS7] 마운트설정 fstab, rc.local  (0) 2020.06.24
[Linux] CentOS NTP 설정  (0) 2020.04.21
[Linux] CentOS7 default gateway 설정  (0) 2020.03.18
[Linux] CentOS7 ssh 포트 변경  (0) 2020.03.17

1. NTP

 - 시간을 맞추기 위한 통신망 시간 프로토콜

 - UDP 123을 사용, 포트 오픈 필요

 - 우리나라에서 운영되는 NTP 서버

     kr.pool.ntp.org

     time.bora.net

     time.nuri.net

 

 

2. NTP 설치

$ yum install ntp

 

 

3. ntpd 사용 설정

$ systemctl enable ntpd

 

 

4. NTP 설정

 - 시간 동시화를 받기위한 peer 설정

 - /etc/ntp.conf에서 기본 설정을 주석처리 후, 국내 NTP 서버 또는 IP 입력

vi /etc/ntp.conf

...
#server 2.centos.pool.ntp.org
server time.bora.net
server 192.168.56.100

 

 

5. ntpd 재시작

$ systemctl restart ntpd

 

 

6. NTP 확인

$ ntpq -pn

* : 현재 sync 중

+ : 접속은 가능하지만, sync하고 있지는 않음

- : 접속은 가능하지만, sync 가능 리스트에서 제외

blank : 접속이 불가능 함

 

 

 

참고1. ntpdate 명령어 사용하여 시간 동기화

(1) ntp 데몬 중지

$ service ntpd stop

 

(2) 시간 동기화 

$ ntpdate 10.10.100.100

 

 

참고2. ntp 서버와 시간 차이 확인방법

ntpdate -d 10.10.100.100

 

 

참고3. 매일 새벽에 시간동기화 Crontab 등록

(1) ntp 데몬 중지, disable

$ service ntpd stop

$ systemctl disable ntpd.service

 

(2) 스크립트 작성

/application/script/ntp.sh
#!/bin/bash
/usr/sbin/ntpdate 10.10.10.1 >> /app/script/ntp.log 2>&1

 

 

(3) Crontab 등록

$ crontab -e

30 3 * * * /application/script/ntp.sh

'Linux' 카테고리의 다른 글

[CentOS7] 마운트설정 fstab, rc.local  (0) 2020.06.24
[Linux] CentOS repository 설정  (0) 2020.05.21
[Linux] CentOS7 default gateway 설정  (0) 2020.03.18
[Linux] CentOS7 ssh 포트 변경  (0) 2020.03.17
[Linux] shutdown, reboot 명령어  (0) 2020.03.16

1. default gateway

 - default gateway를 잘 못 설정하면 네트워크가 안 될 수 있음

 - 확인 방법

    # netstat -rn

    # route

    # ip route

 

 

2. 임시적용

# route add default gw [게이트웨이주소] [장치명]

 -> route add default gw 192.168.56.1 eth1

 

 

3. 영구적용

# echo 'GATEWAY=게이트웨이주소' >> /etc/sysconfig/network

# service network restart

 

 

* 설정이 안 먹을 경우 ~/ifcfg-eth0 등에 METRIC 설정을 해주면 된다고 함

http://initium2017.blogspot.com/2017/03/centos-default-gateway.html

'Linux' 카테고리의 다른 글

[Linux] CentOS repository 설정  (0) 2020.05.21
[Linux] CentOS NTP 설정  (0) 2020.04.21
[Linux] CentOS7 ssh 포트 변경  (0) 2020.03.17
[Linux] shutdown, reboot 명령어  (0) 2020.03.16
[Linux] CentOS 부팅시 데몬 시작하기, chkconfig  (0) 2020.03.14

1. 기본 포트 확인

# netstat -an | grep 22

 

 

2. ssh 포트 9922로 변경

- /etc/ssh/sshd_config에 아래 내용 추가

  > Port 9922

 

 

3. ssh 서비스 재시작

# systemctl restart sshd

1. shutdown

 - Linux를 종료할 때 사용

 - halt : 모든 프로세스를 중지시키지만 전원은 차단하지 않음

 - shutdown : 모든 프로세스 중지 및 전원을 차단함

-H --halt Halt the machine 모든 프로세스 중지
-P --poweroff Power-off the machine 전원 종료
-r --reboot Reboot the machine 재부팅
-h   Equivalent to --poweroff, overridden by --halt shutdown 완료 후 시스템 종료
-k   Don't halt/power-off/reboot, just send warnings 경고 메시지만 출력, 실제 shutdown 안 함
-c   Cancel a pending shutdown 진행(예약)된 shutdown 취소

 

(1) 10분 후에 종료

# shutdown -h 10

# shutdown -P +10

# shutdown 10

 

(2) 지금 종료

# shutdown -h now

 

(3) 5분 후, 20시, 지금 재부팅

# shutdown -r 5

# shutdown -r 20:00

# shutdown -r now

 

(4) 10분 후 사용자에게 종료된다고 메시지 보내기(실제 종료되진 않음)

# shutdown -k +10

 

 

2. reboot

-p poweroff, 시스템 종료
-f force, 시스템 강제 재부팅
-w 시스템 종료 및 재부팅하지 않고 관련 정보만 /var/log/wtmp에 저장

 

(1) 시스템종료

# reboot -p

 

(2) 즉시 시스템 재부팅

# reboot

 

(3) 강제 시스템 재부팅

# reboot -f 

 

 

* Default RunLevel

 - 리눅스 시스템이 가동되는 방법

 - 7가지 런레벨이 있음

init 0 종료
init 1 단일 사용자 모드(시스템 복구 시 사용)
init 2 NFS 없는 다중 사용자 모드
init 3 텍스트 모드의 다중 사용자 모드
init 4 사용하지 않음
init 5 X 윈도우 모드의 다중 사용자 모드
init 6 재부팅 모드

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. chkconfig 란

- 리눅스가 부팅될 때, 자동으로 스크립트를 실행하여 특정 데몬을 시작할 수 있다.

 

 

2. 명령어 사용법

$ chkconfig --help

chkconfig [--list] [--type <종류>] [이름]

chkconfig --add <이름>

chkconfig --del <이름>

chkconfig --override <이름>

chkconfig [--level <레벨>] [--type <종류>] <이름> <on|off|reset|resetpriorities>

 

 

3. CentOS 부팅모드

 - /etc/inittab 파일을 열어보면 현재 부팅모드를 확인 할 수 있다.

 - /etc/rc.d/rc3.d에 rc0~6 디렉터리가 존재하며, 수행 리스트를 확인할 수 있다.

 - 0~6 숫자로 각각의 상태를 나타낸다.

 

$ cat /etc/inittab

# 0 - halt

# 1 - Single user mode

# 2 - MultiUser

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot

id:3:initdefault:

 

4. 상태 확인(sshd)

$ chkconfig --list sshd

sshd      0:해제   1:해제   2:활성   3:활성   4:활성   5:활성   6:해제

 

 

5. brightforest-agent 자동으로 기동하게 설정

(1) py 가져오기

cd /etc/init.d/brightforest-agent

scp -r -P 5622 root@100.100.100.100:/etc/init.d/brightforest-agent .

 

(2) 등록

chmod +x /etc/init.d/brightforest-agent

chkconfig --add brightforest-agent

chkconfig --level 345 brightforest-agent on

 

(3) 확인

chkconfig --list

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Linux' 카테고리의 다른 글

[Linux] CentOS7 ssh 포트 변경  (0) 2020.03.17
[Linux] shutdown, reboot 명령어  (0) 2020.03.16
[Linux] 동기화를 위한 rsync 명령어  (0) 2020.03.13
[Linux] CentOS CPU core 수 확인  (0) 2020.03.12
[Linux] CentOS crontab 설정  (0) 2020.03.11

1. rsync 설명

- 두 개의 site 간의 file & directory의 동기화를 위한 unix용 유틸리티

- 전송시에 네트워크 대역폭을 최소화하는 delta encoding algorithm을 구현하여 rcp나 scp 보다 빠르고 효율적으로 데이터를 동기화

- 폴더, 파일 권한이 그대로 동기화 됨

- tcp 843 사용

- ssh 기반으로 rsync를 사용하면 방화면 오픈없이 사용 가능

- rcp, scp 대용으로 사용

- 주로 원격 사이트 미러링, 데이터 백업 시 사용

 

 

2. 예제

(1) .gz 파일만 /app/logs 에서 /log_backup/app1로 동기화

$ rsync -avz /app/logs /log_backup/app1 --include=\*.gz --exclude=*.*

 

(2) Local 파일을 Remote에 복제

$ rsync -avz /home/data/ root@example.com:/home/backup/

 

(3) Local 파일을 Remote에 복제

$ rsync -avz root@example.com:/home/data /home/backup/

 

(4) Remote의 일부만 Local에 복제(dir1~3중에 1,3만 복제가 필요한 경우)
$ for i in dir1 dir3 ; do rsync -avz root@example.com:$PWD/$i/ /home/backup/$i; done

 

(5) ssh가 22가 아닐 경우 연결

$ rsync -avc --progress -e 'ssh -p 10022' root@example.com:/home/data /home/backup/

*--progress는 전송시 진행내역 보는 옵션

 

(6) 특정 확장자만 전송

$ rsync -zarv --prune-enpty-dirs --include="*/" --include="*.pdf" --exclude='*' "$from" "$to"

 

(7) 디렉토리 구조만 복제

$ rsync -vd root@example.com:/home/ .

* -d 옵션을 추가하면 디렉토리 구조만 복사하고 속에 파일들은 복사하지 않는다.

 

 

 

 

 

 

 

 

 

1. CPU 코어 전체 개수 확인

grep -c processor /proc/cpuinfo

 

2. 물리 CPU 개수 확인

grep ^processor /proc/cpuinfo | wc -l

 

3. CPU당 물리 코어 수 확인

grep 'cpu cores' /proc/cpuinfo | tail -l

1. 설치

$ yum -y install cronie

$ systemctl start crond

$ ps -ef | grep crond

 

 

2. CentOS 시작 시 Crontab이 자동으로 실행되도록 설정

$ systemctl enable crond (설정)

$ systemctl list-unit-files (확인)

 

 

3. 설정 방법

crontab 명령어를 사용하며 작성하는 cron은 개별 사용자용 크론. /var/spool/cron 아래에 저장

 

crontab 명령어

crontab -e : 예약된 작업리스트

crontab -l : 예약된 작업 수정

crontab -r : 예약된 작업 삭제

crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일 read, delete, modify 가능

 

 

4. crontab 항목 의미

1 minute (0 - 59)

2 hour (0 - 23)

3 day of month(1-31)

4 month(1-12) or jan, feb,mar...

5 요일(0-7) 일요일 0 or 7, 월 1, 화 2, 수 3, 목 4, 금 5, 토 6

6 사용자명, /etc/crontab, /etc/cron.d에 저장될 경우 필요

7 작업명령, 실행할 명령을 한 줄로 기입

 

 

5. 예제

(1) 매일 5:10분 100일 지난 로그 삭제, 5시 20분 전일 로그 압축

10 5 * * * find /app/logs/ -type f -daystart -mtime +100 -exec rm {} \;
20 5 * * * find /app/logs/ -name "*$(date +\%Y-\%m-\%d --date '-1 days')" -exec gzip {} \;  

 

(2) 월~금 매월 매일 10시5분, 10시45에 루트 권한으로 시간동기화 명령어 실행

45,5 10 * * 1-5 root /usr/bin/rdate -s time.bora.net && clock -w

 

(3) 반복적으로 30분마다 run.sh 실행

*/30 * * * * /script/run.sh

 

(4) 매주 토요일 오전 1시 30분에 run.sh 를 실행

30 1 * * 6 /script/run.sh

 

(5) 로그 남기기

* * * * * /script/run.sh >> /script/log/run.sh.log 2>&1

 

(6) 로그 압축 후 백업 디렉토리로 복사, 오래된 로그 삭제

10 5 * * * find /app/jboss/logs/ -type f -daystart -mtime +190 -exec rm {} \;
20 5 * * * find /app/jboss/logs/ -type f -name "*$(date +\%Y-\%m-\%d --date '-1 days')" -exec gzip {} \;

 

30 5 * * * rsync -avz /app/jboss/logs /log_backup/app1 --include=\*.gz --exclude=*.*
40 5 * * * find /app/jboss/logs/ -type f -name "*.gz" -exec rm {} \;
50 5 * * * find /log_backup/app? -type f -daystart -mtime +190 -exec rm {} \;

 

*/log_backup/app? : app1~3 폴더 등이 있을 경우 모두 적용.

 

 

1. 계정

useradd -g [그룹명] [유저명] 사용자 생성
useradd -u [UID] [유저명] UID 지정
userdel -r [유저명] 사용자 홈 디렉터리 제거
passwd [유저명] 비밀번호 설정
usermod -d [디렉토리] [유저명] usermod -d [디렉토리] [유저명]

 

2. 그룹

groupadd [그룹명]
groupadd -g [GID] [그룹명]
그룹생성
groups 또는 cat /etc/group 그룹 확인
groupmod -n [바꿀그룹명] [기존그룹명]
groupmod -g [바꿀GID] [기존GID]
그룹 변경
groupdel [그룹명] 그룹 삭제
gpasswd [그룹명]

그룹 패스워드 설정

gpasswd -r [그룹명]

그룹 패스워드 삭제

gpasswd -R [그룹명] 그룹 사용 금지
gpasswd -a [사용자명] [그룹명]

그룹에 사용자 추가

gpasswd -A [사용자명] [그룹명]

그룹 관리사용자 지정

gpasswd -d [사용자명] [그룹명]

그룹에서 사용자 삭제

 

 

3. 수정

chown [유저명] [파일명] 파일 소유권 변경
chown [유저명] -R [디렉토리]

하위 디렉토리까지 소유권 변경

 

 

 

 

 

 

 

 

 

 

scp (secure copy)

네트워크로 파일을 안전하게 전송하는 명령어

ssh 포트를 사용하여 전송 (디폴트 22, 보안상 변경하는 경우가 많음)

 

 

1. 원격 서버의 파일을 현재 서버로 복사할 경우

scp [옵션] [원격서버계정@원격서버IP:복사해올파일] [붙여넣을경로]

 

scp -r -P 9822 root@100.100.100.100:/app/agent/ .

100.100.100.100 서버에서 9822 포트로 /app/agent 폴더의 내용을 현재 디렉터리로 복사

 

 

 

2. 현재 서버 파일을 원격 서버로 복사할 경우

scp [옵션] [내서 버파일] [원격서버계정@IP:/붙여넣을경로]

 

scp -r -P 9822 /app2/agent root@100.100.100.100:/app/agent/

현재 서버 /app2/agent 경로를 9822 포트를 사용하여 100.100.100.100 서버 /app/agent 폴더로 복사

 

 

 

3. 옵션

r : 디렉터리 내 모든 파일, 폴더 복사

p : 원본 파일의 권한 및 속성 유지

P : 포트번호 지정

c : 압축

v : 과정 출력

a : 아카이브 모드로 전송

 

 

 

계정 패스워드가 만료 될 경우

해당 계정의 crontab 실행 x

 

 

1. 계정 설정 확인

$ chage -l jboss

Last password change                    : Dec 14, 2019

Password expires                    : Feb 12, 2020

Password inactive                    : never

Account expires                        : never

Minimum number of days between password change        : 1

Maximum number of days between password change        : 60

 

 

2. 패스워드 만료 안되게 설정

$ chage -E -1 -I 0 -m 0 -M 99999 jboss

 

설정 후 다시 확인해보면 끝!

 

 

 

[참고] chage 옵션

항목 항목 설명 설정 명령어
Last password change 암호 변경일 chage -d 2020-03-08 jboss
Password expires 암호 만료일 -
Password Inactive 암호 비활성화 만료일 chage -l 10 jboss
Account expires 계정 만료일 chage -E 2020-03-08 jboss
Minimum number of days between password change 암호 변경일 x일 후에 다시 변경 가능 chage -m 10 jboss
Maximum number of days between password change 암호 변경일로부터 x일 후에 암호 만료 chage -M 100 jboss
Number of days of warning between password expires
암호 만료일 x일 전부터 warning 메시지 chage -W 7 jboss

 

 

'Linux' 카테고리의 다른 글

[Linux] 동기화를 위한 rsync 명령어  (0) 2020.03.13
[Linux] CentOS CPU core 수 확인  (0) 2020.03.12
[Linux] CentOS crontab 설정  (0) 2020.03.11
[Linux] CentOS 계정관련 명령어  (0) 2020.03.10
[Linux] scp 명령어로 파일 복사  (0) 2020.03.09

+ Recent posts