스케줄링관리 / 백업관리

2019. 9. 17. 22:22정보보안과정/리눅스 서버 관리자

190917
사용자 관리
사용자 정보 파일들
/etc/paswd(rx- r-- r--)
/etc/shadow(r-- --- ---)
사용자 관리 명령어
useradd CMD
# useradd user01
# useradd -u 1000 -s /bin/bash user01
usermod CMD
# usermod -u 1000 -s /bin/bash -d /users/user01 user01
# useradd -M -d /oracle oracle 
# useradd -L(Lock)|-U(Unlock)
userdel CMD
# userdel [-r] user01



[참고] /etc/skel -> 사용자 생성시 만들어지는 기본 폴더들(틀, 뼈대)


작업시나리오
/root/bin/passwd.txt --- /root/bin/useradd.sh

--stdin -> 패스워드를 한번만 입력하게 해줌.

#!/bin/bash -> magic number
[참고] 쉘의 종류
본쉘 계열) sh -> ksh -> zsh -> bash
C쉘 계열) csh -> tcsh
# cat /etc/shells

cat /etc/passwd | egrep 'user07|user08'

[참고] 다중사용자 추가 스크립트
# useradd user01
# echo user01 | passwd --stdin user01
[참고] useradd -D (/etc/default/useradd)
# useradd -D -b /users

쉘 종류에 대해서 알아보기

그룹 관리
그룹 정보 파일
/etc/group
그룹 관리 명령어
groupadd CMD
[참고] Primary Group/Secondary Group
# useradd -G class1, class2 user01 -> 세컨더리그룹을 최종적으로 이렇게 만든다
# useradd -a[append]G class1,class2 -> 기존에 생길 세컨더리그룹에 추가시킨다.
groupmod CMD
# groupmod -g 1000 class1
groupdel CMD
# groupdel class1

groupmod CMD
groupdel CMD

패스워드 관리
chage[change password age] CMD
# chage -M 30 -W 7 user01
# chage -E 2019-12-31 user01

[실무예] MAX Age=30, WARN Age=7
(전역) /etc/login.defs(PASS_MAX_DAYS, PASS_WARN_AGE)
(개인) chage CMD(/etc/shadow)
user01:$1$eGqw$Cfa.0:Last Change:MIN:MAX:WARN:INATIVE:Expire Date:
user01:$1$eGqw$Cfa.0:14650:0:99999:7:::
● Last Change: 암호가 변경된 날짜
● MIN: 암호를 변경할 수 없는 최소 날짜(최근에 암호가 변경된 날짜부터)
● MAX: 암호를 사용할 수 있는 최대 날짜(상대값)(최근 암호가 변경된 날짜부터)
● WARN: 경고 메세지를 주는 기간(MAX값과 상관)
● INACTIVE: Max days 지난 이후 암호를 반드시 변경해야 하는 기간(MAX값과 상관)
-> INACTIVE 기간내에 암호를 변경하지 않으면 비활성화 됨(못들어감)
● EXPIRE DATE: 암호를 사용할 수 있는 최대 날짜(절대값)

[실무예] oracle/wasuser 사용자 추가


======================
Chapter 09. 잡 스케줄링
======================

at CMD (/var/spool/at)

# serivce atd restart
# at -l (# atq) -> 확인
# at -r  (# atrm ) -> 삭제


# at 1300 /* 13:00 실행 */
# at 10:00pm today /* 오전 10:00 실행 */
# at now +1 mins /* 1분뒤에 실행 */

보통 취소할 때 -> ctrl + C
작업이 끝났을 때, 완료했을 때 -> ctrl + D

crontab CMD (/var/spool/cron/$USER)
# service crond restart
# crontab -e(edit) [-u user01] -> 편집작업
# crontab -l [-u user01] -> 확인
# crontab -r [-u user01]

tail -f /tmp/date.log -> 모니터링 명령어 -> 분마다 실행해라

------- 특이 케이스 ---------------------------
0    3    1    *     0    /root/bin/backup.sh (매달 1일 3시 정각 + 매주 일요일)
--------------------------------------------

crontab 정의
crontab -l
0 3  * *  0
분 시 일 월 요일

[참고] crontab 파일 분석
[참고] crontab 파일 대표적인 예제

[실무예] crontab + shell script
(요청) 매달 첫번째 일요일날 /root/bin/backup.sh 실행 해달라

[실무예] 쉬는 시간 표시(crontab CMD)

[실무예] 업데이트 (at CMD)
at now + 3 min

[실무예] crontab 명령어 사용 제어
(요청) oracle, wasuser 사용자만 crontab 명령어 사용 가능하도록 해달라
but 2명만 등록하면 시스템 내 미리 스케줄링 하고있던 시스템이 먹통이 되서 안됨.
# ls /var/spool/cron
# vi /etc/cron.allow 
(지정된 시간) # echo /root/bin/backup.sh | at now +1 min (# echo CMD | at <시간>)


● cron.deny 파일만 존재하면, cron.deny 파일에 존재하는 사용자는 crontab  명령어를 수행할 수 없고,
cron.deny 파일에 존재하지 않는 모든 사용자는 crontab 명령어를 수행할 수 있다.
● cron.allow 파일이 존재하면, cron.allow 파일에 존재하는 사용자만 crontab 명령어를 수행할 수 있다.
cron.allow 파일이존재하면, cron.deny 파일은 보지 않는다. 

------------------------------------
/etc/cron.allow(X), /etc/cron.deny(0)     ==> user01(0)
                 user01(X)
/etc/cron.allow(X), /etc/cron.deny(0)     ==> user01(X), user02(0)
user01(0)
/etc/cron.allow(0), /etc/cron.deny(0)     ==> user01(0), user02(X)
user01(0)     user01(0)
------------------------------------


============================
Chapter 10. 백업과 복구(Backup & Recovery/Restore)
============================
백업 종류
* 전체 백업
* 누적 백업 -> Full backup 후, 증가분들을 누적해서 백업받는 방식
* 차등 백업 -> 그날의 증가분들만 백업해서 받는 방식, 날마다 증가분을 누적해서 받지 않음

백업/복구 명령어
(로컬 백업)
* tar CMD
# tar cvf|tvf|xvf file.tar [file1 file2]
# tar cvzf|tvf|xvf file.tar.gz [file1 file2]
# tar cvjf|tvf|xvf file.tar.bz2 [file1 file2]
# tar cvJf|tvf|xvf file.tar.xz [file1 file2]

[EX] 상대경로 백업 versus 절대경로 백업
(작업시나리오) /home/* ---> /backup/home.tar.gz

(상대경로백업)
# mkdir -p /backup
# rm -rf /backup/*
# rm -rf /test/*

# cd /home
# tar cvzf /backup/home.tar.gz .

# ls -lh /backup
# tar tvzf /backup/home.tar.gz

# cd /test
# tar xvzf /backup/home.tar.gz

(절대경로 백업)
# rm -rf /backup/*
# rm -rf /test/*

# tar cvzf /backup.home.tar.gz /home

# ls -lh /backup
# tar tvzf /backup/home.tar.gz -> 확인

[참고] 몇개의 파일만 복원하는 경우
(형식) # tar xvzf /backup/home.tar.gz home/user01 home/file1(여러개 지정해도 가능)
# cd /test
# tar tvzf /backup/home.tar.gz -> 확인
.....
/home/user01
.....
# tar xvzf /backup/home.tar.gz home/user01

(원격 백업)

'정보보안과정 > 리눅스 서버 관리자' 카테고리의 다른 글

MAIL 서버 관리  (0) 2019.09.26
백업관리  (0) 2019.09.18
부팅과정 / 사용자그룹관리  (0) 2019.09.16
SoftWare 관리  (0) 2019.09.11
RAID관리 / SWAP관리  (0) 2019.09.10