[ Server ][ Linux ] cron사용법(쉘스크립트, 리눅스 파일 자동실행) > linux

본문 바로가기
사이트 내 전체검색

linux

[ Server ][ Linux ] cron사용법(쉘스크립트, 리눅스 파일 자동실행)

페이지 정보

작성자 웹지기 댓글 0건 조회 21,643회 작성일 18-09-11 13:58

본문

## 크론설정(쉘스크립트 실행)

----------    ----------    ----------------------------------------------------------------------------------------------------

필        드    의        미    범        위

----------    ----------    ----------------------------------------------------------------------------------------------------

첫번째        분                0-59

두번째        시                0-23

세번째        일                0-31

네번째        요일            0-7(0또는 7 / 1=월, 2=화, 3=수, 4=목, 5=금, 6=토, 7=일)

여섯번째    명령어        실행할 명령을 한줄로 쓴다.

                                        한줄당 하나의 명령(두줄로 나눠서 표시 할 수 없슴)

                                        #으로 시작하는 줄은 실행하지 않는다(주석표현)

----------    ----------    ----------------------------------------------------------------------------------------------------


##시간 설정 의미

 = '*' 은 해당 필드의 모든 시간을 의미

 = 3,5,7 와 같이 ,로 구분하여 여러 시간대를 지정

 = 2-10 과 같이 - 으로시간 범위 지정

 = 2-10/3 와 같이 - 으로 시간 범위를 /로 시간 간격을 지정

    (2~10까지 3간격 3,6,9를 의미)

 /dev/null 2>&1 은 지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는 뜻

 파일명 2>&1 은 결과와 에러를 파일로 저장


##예)

 20 2 * * 6 명령어 ===> 매주 토요일 새벽 2:20

 0 4-6 * * * 명령어 ===> 매주 오후 4,5,6시

 5 */2 * * * 명령어 ===> 매일 2시간 간격으로 매5분에

 15 1 1 * * 명령어 ===> 매월 1일 새벽 1:15

 30 0 1 1,7 * 명령어 ===> 1,7월 1일 새벽 0:30

 10 2 * * * /app11/minsang/APP/ldap/run.sh > /APP11/minsang/APP/ldap/cron_error.log();


## 크론 에디터 실행

crontab -e 실행시 vi 에디터가 나온다(환경변수 EDITOR에 따라 다른 에디터를 사용할 수 있다.)

crontab [-u 사용자 id] 파일

crontab [-u 사용자 id] {-l|-r|e}


crontab -l : 예약된 작업리스트

crontab -e : 예약된 작업 수정

crontab -r : 예약된 작업 삭제


##일반 사용자 crontab 명령어 사용하도록 설정 허가

/etc/cron.allow 사용자 아이디


##일반 사용자 crontab 명령어 사용을 제한

/etc/cron.deny 사용자 아이디


##크론 실행 확인

ps -ef|grep crond


##크론 명령

/etc/init.d/crond start{restart | stop}



##실행계획에 포함시킬수 있는 파일들

펄 파일 (*.pl)

쉘스크립트 파일 (*.sh)

PHP CLI 쉘스크립트 파일 (*.php)


##실행계획에 포함시킬때 주의사항

crontab에 쉘스크립트를 기재할때 절대경로를 기재한다. 명령어를 곧바로 써도 시스템명령이든 추가된명령이든 절대경로를 사용한다.

쉘스크립트 내부의 내용에는 시스템 명령(ls, mv 등등)외에 사용자 정의 파일, 설치된 프로그램 명령어는 모두 절대경로를 기재한다.


##사용 예제1

1

/usr/bin/mysqlcheck -Aao --auto-repair -u root --password=xxxxxx

2

> /junsik_sh/db_optimize.log;

3

##사용 예제2

4

58 01 * * * mkdir /jun


#상대경로로 명령어을 기재하면 Cron은 알수 없기 때문에 항상 절대경로로 명령어를 기재해야 한다.


※ 절대경로 쉘스크립트 예제

----------------------------------------------------------------------------------------------------

#!/bin/bash

# Writer : Zetswing

# FileName : TomcatCheck.sh


##########

SHELL=/bin/bash

JAVA_HOME=/home2/ysaraha/ysaraha.ttongfly.net/java/jdk1.5.0_10

export JAVA_HOME

##########


PROCESS_NAME=tomcat


PROCESS_COUNT=`ps -ef | grep $PROCESS_NAME | grep -v grep| wc -l`


if [ $PROCESS_COUNT = 0 ]

then /home2/ysaraha/Tomcat.sh s

fi

echo "TomcatCheck Success!"

----------------------------------------------------------------------------------------------------


##PHP 쉘스크립트 파일로 cron 이용해 실행하기

*/1 * * * * /usr/local/apache2/htdocs/index.php

*/1 * * * * php /usr/local/apache2/htdocs/index.php

*/1 * * * * /usr/local/bin/php /usr/local/apache2/htdocs/index.php

※세가지 경우 모두 해당 파일 상단에 php의 경로를 적당히 써주어야 합니다.

※세가지 경우 모두 실행권한을 chmod 700(root경우) 반드시 주어야 합니다.

※경로는 무조건 절대경로를 써야 합니다.


##크론은 실행계획이 처리될때마다 ROOT나 해당계정에게 메일을 보내준다.

메일을 안보내게 하는 방법을 알아보자

자신의 계정이 루트 계정일 경우

1. /etc/crontab 파일을 편집한다.

2. 아래 내용에서 MAILTO=ROOT 을 MAILTO="" 로 변경한후 저장한다.

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ROOT

HOME=/

자신의 계정이 사용자 계정일 경우


쉘모드에서 crontab -e 명령으로 실행계획의 맨상단에 MAILTO="" 를 추가한다.


##주석 표시

해당 라인의 맨앞에 #을 넣으면 해당라인은 주석처리 됩니다.


##현재 통서버의 ysaraha 계정에서 돌아가는 crontab 실행계획 내용

MAILTO=""

*/360 * * * * /home2/ysaraha/Backup.sh

*/30 * * * * /home2/ysaraha/TomcatCheck.sh


## 정기적인 실행계획을 원하면 아래의 폴더에 파일을 갖다 놓는다.

/etc/cron.hourly - 매시간마다 실행

/etc/cron.daily - 매일마다 실행

/etc/cron.weekly - 매주마다 실행

/etc/cron.monthly - 매달마다 실행


※ 위의 실행계획은 /etc/crontab에 정의되어 있다.


## crontab 로그 남기는 방법


# 실행시 nohup으로 실행하면 된다.

02 11 28 03 * nohup /sunrise/cron/run_imsi.sh >> /sunrise/cron/nohup_run_imsi.out 

[이 게시물은 웹지기님에 의해 2019-03-15 15:39:23 knowledge에서 이동 됨]
추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 103건 1 페이지
  • 102 [ server ][ linux ][ CentOS7 ] nginx 설치 및 방화벽 설정
  • 1) yum 외부저장소에 nginx 추가(nginx 관련사항이 없으니 추가해줘야 함) >> vi /etc/yum.repos.d/nginx.repo nginx.repo 파일 내용( CentOS7 기준 - 버젼별로 다를 수 있으니 다른버젼은 공식사이트 이용 ) [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 2) nginx ...
  • 웹지기 02-04 5710 0 0 댓글 0
  • 101 [ server ][ linux ] cmd 이용 shell 접속 ( cmd ssh )방법 ( 윈도우에서 cm…
  • 쉘접속 프로그램이 있으면 좋은데, cmd에서 그냥 접속하고 싶다면, 윈도우라면 cmd를 이용해서 접속을 하면 되고, 리눅스라면 cmd라인에서 바로 명령을 입력하면 된다. # telnet 192.168.0.1 { port } 일반적으로 이런식으로 접속을 하면 된다. ssh로 접속을 하고 싶다면 # ssh -p { port } { 계정 }@192.168.0.1 이런식으로 접속을 하면 된다.
  • 웹지기 06-08 10867 0 0 댓글 0
  • 100 [ server ][ linux ][ gitlab ] 원격 저장소 url 변경
  • # git remote -v # origin http://gitlab.com/sample/sample.git (fetch) # origin http://gitlab.com/sample/sample.git (push) 확인을 해본 다음 다음의 명령어로 변경이 가능하다 # git remote set-url origin ssh://git@gitlab.com/sample/sample.git 다시 확인을 해보면 # git remo...
  • 웹지기 06-01 8083 0 0 댓글 0
  • 99 [ server ][ linux ] CentOS7 certbot certificates 오류 ttribute…
  • # certbot certificates 이런명령을 내렸는데 오류가 발생햇다 yum update하면서 무언가 문제가 발생한것 같다. An unexpected error occurred: AttributeError: 'module' object has no attribute 'TLSSNI01' Please see the logfile '/tmp/tmpV1KtqF/log' for more details. # yum update pyth...
  • 웹지기 03-12 7703 0 0 댓글 0
  • 96 [ Server ][ Linux ] CentOS7 firewall ( 방화벽 ) 관리
  • 방화벽 실행 여부 확인 # firewall-cmd --state #running 방화벽 다시 로드 # firewall-cmd --reload #success 존 ( zone ) 목록 출력 # firewall-cmd --get-zones #block dmz drop external home internal public trusted work 존 ( zone ) 기본존을 출력 # firewall...
  • 웹지기 12-24 6982 0 0 댓글 0
  • 95 [ Server ][ Linux ] CentOS7 라우팅 설정 ( vpn 연결 )
  • 장비의 구조도는 위와 같은 장비의 구조에서 한개의 회선은 기본인터넷(eno1)을 연결하는 회선이고 다른하나의 회선은 vpn연결(eno2)을 위한 회선이다 이러한 경우 default를 하나로 설정하고 다른 하나는 route를 통해 vpn회선을 연결한다. eno1번의 랜설정은 default로 설정되며 다음처럼 설정 ip 192.168.0.2 prefix 24 gw 192.168.0.1 eno2번의 랜설정은 ip 192.168.10.2 p...
  • 웹지기 12-18 6665 0 0 댓글 0
  • 94 [ Server ][ Linux ] CentOS7 네트워크 설정
  • 네트워크에 관련된 파일이 있는 곳으로 가서 확인해본다. # cd /etc/sysconfig/network-scripts # ll 현재 설정을 확인 할 수 있다. # route # ip address # netstat 네트워크 재시작 service network restart
  • 웹지기 12-17 5231 0 0 댓글 0
  • 93 [ Server ][ Linux ] CentOS7 telnet 설치 및 테스트
  • 설치 확인 # telnet #bash: telnet: command not found 이렇게 뜨면 텔넷이 설치가 안되어 있는 것이다. 설치해 주자 # yum -y install telnet # ....................................... #Installed: #telnet.x86_64 1:0.17-64.el7 #Complete! 정상 설치 되면 위처럼 뜬다. 실행해 보자 ...
  • 웹지기 12-17 9483 0 0 댓글 0
  • 92 [ Server ][ Linux ] CentOS7 콘쉘 ( ksh ) 설치
  • 현재 사용할 수 있는 쉘을 확인 chsh -l 명령을 통해 현재 사용가능한 쉘 목록 확인 # chsh -l #/bin/sh #/bin/bash #/usr/bin/sh #/usr/bin/bash 콘쉘 ( ksh )를 설치 #yum -y install ksh 사용할 수 있는 쉘을 다시 확인 # chsh -l #/bin/sh #/bin/bash #/usr/bin/sh #/usr/bin...
  • 웹지기 12-16 7117 0 0 댓글 0
  • 91 [ Server ][ Linux ] Gitlab 서버 도메인 변경
  • gitlab 서버의 도메인을 변경하고 싶다면 일단 검색을 한다. # find / -name gitlab.yml # /var/opt/gitlab/gitlab-rails/etc/gitlab.yml # /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 이런 리스트에서 다음 파일에서 변경을 해준다. # vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml ...
  • 웹지기 12-12 8059 0 0 댓글 0
  • 90 [ Server ][ Linux ] CentOS7 Let's Encrypt 무료 SSL 인증서 와일드카드로 …
  • 입력시 일반 도메인(domain.com)과 와일드카드(*.domain.com) 도메인 두번 적는다 # certbot certonly --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory -d domain.com -d *.domain.com 이메일을 입력하라는 문구가 나오면 인증서 알림을 받을 이메일을 입력한다. # Saving debug log t...
  • 웹지기 12-12 5162 1 0 댓글 1
  • 89 [ Server ][ Linux ] CentOS7 htmlspecialchars 사용설정
  • htmlspecialchars 함수를 사용하기 위해서는 다음의 ini설정을 변경해 주어야 한다. php.ini filter.default, filter.default_flags 설정 AAI 멀티 버젼 같은 경우 각각의 PHP버젼별로 php.ini파일이 다르므로 검색을 해서 위치를 찾는다 # find / -name php.ini # /etc/opt/remi/php70/php.ini # /etc/opt/remi/php71/php.ini # /etc/opt/rem...
  • 웹지기 12-03 4849 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
5,116
어제
6,915
최대
33,828
전체
8,109,810

그누보드5
Copyright © funyphp.com. All rights reserved.