반응형

 

리눅스의 자동 예약작업을 위해 crond 명령어를 사용

 

매월 15일 새벽 3시 1분에 /home 디렉터리와 하위 디렉터리를 /backup 디렉터리에 백업하기

 

1. 자동 백업 위해서는 crond가 실행중이어야 한다. 실행확인

systemctl status crond

위와 같이 active상태이어야 한다.

   (만약 active가 아니라면, 실행)

systemctl start crond

 

2. crontab 에서 값 설정

vi /etc/crontab

 

3.  매달 15일 3시 1분에 자동으로 root권한으로 /etc/cron.monthly 디렉터리 파일을 실행하라는 코드 추가

01  3  15  *  *  root run-parts /etc/cron.monthly

 

 

4. cron.monthly 로 이동

cd /etc/cron.monthly/

 

5. 그곳에 mybackup.sh 디렉터리 만들기

    (.sh 확장명은 bash파일을 실행시키기 위함)

vi ./mybackup.sh

 

6. bash파일 만들기

    #!/bin/sh  - bash파일임을 알림

    set $(date)  -  현재 날짜를 임시로 저장

    fname="backup-$2$3.tar.xz"  - 파일명을 fname 변수로 저장. $2 = 월, $3 = 일

    tar cfJ  - 기존폴더에서 /home 폴더로 압축하여 fname이름으로 저장

#!/bin/sh

set $(date)
fname="backup-$2$3.tar.xz"

tar cfJ /backup/$fname  /home

위 코드로 mybackup.sh 이 저장되었다.

7. 파일 실행 권한 부여

    (vi로 생성한 파일에 x 실행권한이 없다. 그래서 실행권한을 부여해야 한다.)

chmod ugo+x mybackup.sh

x 실행권한이 부여되었다.

 

 

8. 백업이 쌓일 디렉터리 생성

mkdir /backup

9. crond를 업데이트 했으니 재시작

systemctl restart crond

 

이제 매달15일 3시 1분에 자동으로 /backup 폴더에 저장이 된다.

 

반응형

(테스트) 시간을 강제로 바꿔서 테스트를 해보았다.

시간을 강제로 변경 후, 02분이 될 떄 확인해보니 백업이 생성되었다.

 

 

(참고)

cron으로 어떤게 있는지 확인, daily, hourly, weekly 등 여러개가 있다.

ls -l | grep cron

반응형

+ Recent posts