295p
프로그램 설치 ➡ 하드디스크 저장
프로그램 실행 ➡ 주 기억장치(RAM)에서 실행
실행중인 프로그램을 프로세스(PID)라고 함
포어그라운드 프로세스 : 프로그램 실행 시(명령어) shell 사용이 불가능한 프로세스
예) yes 4gl ➡ 강제 종료(Ctrl + C) 전까지는 쉘 사용을 못함
백그라운드 프로세스 : 프로그램을 실행했는데 shell 사용이 가능한 프로세스
예) pstree ➡ systemd가 가장
bash의 pid는 3143, ps의 ppid는 3143으로 ps는 자식 프로세스, ps의 부모프로세스는 bash 임을 알 수 있음
2번째 bash가 내가 실제 사용중인 bash
쉘 세션1에서 포어그라운드 실행 후 쉘 세션2를 새로 실행 한 후
/var/spool/at/
실제 실행되는 명령어
MAILTO 작업이 완료되면 메일을 어디에 보낼지 적어야함
분:시:일:월:요일:사용자이름:실행시킬명령어
7개의 필드로 구성
/etc/cron*
주기 디렉터리 밑에 동작 가능한 프로그램(스크립트)을 짜서 원하는 시간에 실행
지금 나는 매월 실행해야 함으로 /etc/cron.monthly 주기로 실행해야 한다는 사실을 알았음
run-parts /etc/cron.montholy
해당 디렉터리 내의 스크립트를 실행하라는 의미
cd /etc/cron.monthly
vi backup.sh -> 쉘스크립트 작성#!/bin/bash -> 셔뱅. 어떠한 쉘을 사용할 것인지 선언
set (date) -> date 명령의 결과물을 쉘의 위치 매개 변수로 설정 filename="homebackup-$1$2$3.xz" tar cfJ /mybackup/filename /homecd
mkdir /mybackup
ll /etc/cron.monthly/
chmod 755 /etc/cron.monthly/backup.shdate 041505292025.30
systemctl restart crond
ls /mybackup/
date 현재 날짜, 시간 정보를 알 수 있는 명령어
set $(date) -> date 명령의 결과물을 쉘의 위치 매개 변수로 설정
date를 변수로 변경한 후에 filename은 homebackup-$1(2025.)$2(03.)$3(24.).xz"
= 백업 파일 이름이 homebackup-2025.03.24. 으로 생성되며 압축은 xz 옵션으로 설정
변수 사용시에는 filename /home
/home 디렉터리를 J(xz 압축)옵션으로 압축하며 압축할 때 위치는 /mybackup/ 이고 파일 명은 filename 변수이다.
위에서 선언한 $filename 변수값을 갖다가 씀
/mybackup 디렉터리가 없으므로 무조건 만들어줘야함
디렉터리 없으면 오류남
328p
압축 예시
tar cfz /root/mybackup.tar.gz /home
새로운 압축을 만들고 압축은 gzip옵션으로 압축하겠다. /root/mybackup.tar.gz 이라는 압축파일을 만들거고 해당 파일은 /home을 압축한것이다.
압축 해제
tar xfz /root/mybackup.tar.gz
/root/mybackup.tar.gz 압축 파일을 압축 해제해라
읽기만 해서는 실행이 안돼니까 실행 권한을 줘야함
chmod 755 /etc/cron.monthly/backup.sh
chmod a+x /etc/cron.monthly/backup.sh
실행을 확인하기 위해 현재 시간 강제 변경
date 041505292025.30
04(월) 15(일) 05(시간) 29(분) 2025(년도) .30(초)
시간이 변경될 경우 데몬에 문제가 발생할 수 있으므로 데몬 재시작
(날짜 바꾼 후에 빠르게 재시작)
systemctl restart crond
시간이 지난 후 /mybackup에 tar.zx 파일이 있으면 정상 실행 확인
메모리에 새로운 프로세스 코드를 덮어씌움
find / -name '.txt' 2> /dev/null > list ➡ /(root) 전체 경로에서 이름이 .txt인 파일을 찾는데 에러가 발생하면(2>) /dev/null로 에러를 버리고 리스트로 표시해라(> list)
/dev/null ➡ 블랙홀 장치, 아무것도 출력하지 않고 받는 입력을 모두 폐기함
find / -type d 2> /dev/null > dir.txt & ➡ 전체 경로에서 타입이 디렉터리인 결과를 표시하되 오류는 버리고 dir.txt에 내용을 저장하는데 해당 명령어는 백그라운드에서 실행해라
server b를 초기화 한 후 작업하시오.
시나리오)
매월 10일 새벽 4시에 /home 디렉터리를 다음과 같은 이름으로 백업하시오.
4glbackup-년도.월.일.tar.bz2
해당 백업 파일은 /4glbackup 디렉터리에 보관하도록 하시오.
시간을 변경하여 백업파일을 생성한 후 압축을 해제하여 확인하시오.
vi /etc/crontab
00 04 10 * * root run-parts /etc/cron.monthly/4glbackup.sh
cd /etc/cron.monthly
vi 4glbackup.sh#!/bin/bash
set $(date)
filename="4glbackup-$6.$2.$3.tar.bz2"tar cfj /4glbackup/$filename /home
chmod a+x 4glbackup.sh
백업 명령어 테스트
tar cfj /4glbackup/test.tar.bz2 /home
dnf -y install bzip2
mkdir /4glbackup
스케줄러 작동 테스트
date 041003592025.45
systemctl restart crond
ls /4glbackup