리눅스:cron(자동작업 등록)

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2022년 10월 28일 (금) 07:55 판 (→‎크론 파일 작성법)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

리눅스를 위한 문서틀 틀:리눅스


  1. 리눅스:명령어
    1. 리눅스:디렉터리관련
      1. 리눅스:저장장치관련
      2. 리눅스:df(디스크사용량)
      3. 리눅스:저장장치관련팁
      4. 리눅스:압축
    2. 리눅스:프로세스관련
  2. 리눅스:권한관련
  3. 리눅스:편의기능
    1. 리눅스 원격 관리
      1. 리눅스:SSH
      2. 리눅스:MobaXterm
    2. 리눅스:각종 설정
    3. 리눅스:cron(자동작업 등록)
    4. 리눅스:daemon(자동실행)
    5. 리눅스:alias(명령 축약)
    6. 리눅스:로그관리
      1. 리눅스:logrotate(로그파일관리)
    7. 리눅스:포트관리
  4. 리눅스 기반 OS
    1. 틀:우분투
  5. 리눅스:패키지 관리
    1. 리눅스:apt-get
  6. 다양한 패키지
    1. 리눅스:openssl(ssl인증서)
  7. 리눅스:쉘 스크립트
    1. 틀:Bash

cron

관련 디렉터리

/etc/crontab에서 daily, weekly 등의 실행시간을 변경할 수 있다.

/etc/
cron.d
cron.hourly
cron.daily 매일 실행되는 cron들을 모아둔다.
cron.weekly
cron.monthly

해당 디렉터리 자체를 크론으로 실행시키는데, 해당 디렉터리가 크론에 등록되어 있지 않으면 실행이 되지 않기도 한다.

크론 파일 작성법

경험상, 파일을 작성하고 그 파일 자체를 crontab에 올려버리는 게 간편하다.

mysql 백업을 예시로 설명한다.

과정 예시 방법
파일 만들기 nano mysql 따위로 파일을 작성한다.(혹은 그냥 기존 파일.)

문법의 사용은 우측의 예시를 보면 대강 유추할 수 있을 터.

#!/bin/bash

#위는 bin/bash밑에 있는 스크립트를 사용한다는 선언

        mysql_path='/usr/bin/mysql/'     #mysql 실행파일이 있는 경로 지정

        month=$(date +%Y%m%d)                  #제목에 사용할 서버현제날짜를 구함

        fileName="backup_wikisql_${month}.sql"       #저장할 파일이름 설정1

        #파일 저장 경로 지정 대부분 홈디랙토리에 생성

        savePath="/home/id8436/Downloads/"

/usr/bin/mysqldump -u root my_wiki > ${savePath}${fileName}   #dump받아 폴더에 저장

권한부여 ls -l 명령으로 다른 파일들의 권한설정을 보고

chmod 를 통해 파일권한을 통일시킨다.

chmod 755 파일명

sudo chown root:root 파일명

확인 프롬프트에 파일경로를 올렸을 때 아무 것도 안뜨면 이상이 없는 것.

이상이 있는 경우엔 에러가 뜬다.

/etc/cron.daily/mysql

이후 크론이 작동하는 것을 확인한다.

crontab

과정 설명 방법
설치 설치되

처음 실행하면 아무것도 작성되지 않은 파일이 열린다.

crontab -e
등록내역 보기 -l 옵션 crontab -l

작성법

분 시 일 월 요일 명령 형태.

시간에 대하여

의도 설명 방법
일정 간격 실행 예컨대 5분마다 한 번 실행되게 한다면 다음과 같이 작성한다.
*/5 * * * * 명령
특정 시간 실행 특정 시간마다 실행되게 하려면 다음과 같이 작성. 매 시간 15분(8시15분, 9시15분...)
15 * * * * 명령
매 시간 15분, 45분에 실행
15, 45 * * * * 명령

분에 */5 가 들어가면 매 5분마다 실행한다는 의미이다.

분에 15, 45를 두면 매 15분, 45분마다 실행.

명령에 대하여

의도 설명 방법
파이썬 파일 실행 .py 파일을 실행하기 위해 파이썬을 실행해주고 옵션으로 경로를 준다.

파이썬 파일 안에 한글이 들어가 있다면 encoding을 해주어야 한다.

encoding은 파일 가장 상단에 # -*- encoding: utf-8 -*- 을 넣어주면 된다.

* * * * * sudo python /home/.../file.py
sudo는 해당 파일의 권한에 상관없이 실행하기 위함.