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