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

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

linux

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

페이지 정보

작성자 웹지기 댓글 0건 조회 24,247회 작성일 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건 7 페이지
  • 13 [ Server ][ Linux ] CentOS 7 데몬 종류
  • NetworkManager, NetworkManagerDispatcher 네트워크 인터페이스를 자동으로 관리하기 위한 데몬 acpid ACPI(Advanced Configuration and Power Interface) 방식의 시스템 전력 관리를 위한 데몬 anacron crond와 같은 작업 스케줄러 데몬이지만 crond와는 달리 시스템이 계속 켜져있지 않다고 가정하여 하루보다 작은 단위의 스케줄을 관리 apmd APM...
  • 웹지기 12-11 15680 0 0 댓글 0
  • 12 [ Server ][ Linux ] CentOS7 rewrite_mod 설정방법
  • Apache rewrite Module-작성자 : 윤일-:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />Apache 는 추가적으로 사용할 수 있는 유용한 모듈들을 제공합니다.이번강좌에서는Apache의 URL Rewrite 모듈을 사용하기 위한 컴파일,설치와 httpd.conf의 설정방법 그리고 활용방법에 대해 알아보겠습니다.Apache 다운로드 :http://www.apache.org1....
  • 웹지기 09-28 15717 0 0 댓글 2
+8
  • 11 [ Server ][ Linux ] CentOS 7 설치 및 설정하기 다섯번째 root계정 접속 막기
  • 리눅스에서 특별한 조치를 취하지 않으면 SSH포트가 열려있고, Root 계정도 활성화 되어있다. 포트스캐닝을 통해서 포트가 SSH포트가 열려있는게 확인되면 Root에 대한 무장위 대입공격을 통해 해킹을 시도한다. 오랜 해킹시도에 노출이 되면 서버보안에 큰문제가 된다. Root계정을 막기 전에 새로운 계정을 생성해 준다. useradd [ 계정이름 ] passwd [ 계정이름 ] 새 암호 : [ 암호입력 ] 새 암호 재입력 : [ 같은 암호 재입력 ] 새로운 계정을 만들었으면,...
  • 웹지기 12-10 16163 0 0 댓글 0
  • 10 [ Server ][ Linux ] CentOS 7 계정생성 / 계정삭제, 유저계정 권한변경, 계정기본파일 …
  • 계정 생성 : useradd 계정명 계정 생성 확인 : cat /etc/passwd | grep 계정명 계정 비밀번호 생성 : passwd 계정명 기본적으로 계정을 만들면 /home/계정명으로 생성된다. 계정생성시 자동으로 폴더와 파일을 추가하려면 /etc/skel/ 폴더에 public_html 을 만들어주고 에러확인을 위한 폴더( _log )도 추가해 주자. 만들어진 public_html 폴더에 시작파일인 index.html , index.php 파일등을 만들어서 셋팅이 잘되었는지...
  • 웹지기 12-12 16669 0 0 댓글 0
  • 9 [ Server ][ Linux ] CentOS 7 vsftp 설치 및 설정 방화벽 설정
  • vsftp 를 yum 을 이용해 설치 합니다. # yum -y update # yum install -y vsftpd systemctl 명령어로 vsftpd를 시작/중지/상태확인한다. # systemctl status vsftpd.service # systemctl start vsftpd.service # systemctl stop vsftpd.service # systemctl restart vsftpd.servi...
  • 웹지기 12-11 18303 0 0 댓글 0
  • 8 [ Server ][ Linux ] centos7 FFMpeg 설치방법
  • FFmpeg는 모든 종류의 온라인 스트리밍 서비스에서 널리 사용되는 오디오 및 비디오를 기록, 변환 및 스트리밍하는 인기있는 오픈 소스 솔루션 CentOS 7 서버에 FFmpeg를 설치하는 방법을 설명 1. 시스템 업데이트 sudo yum install epel-release -y 사용금지:sudo yum update -y sudo shutdown -r now 참조 : epel = Extra Packages for Enterprise Linux→ 엔터프라이즈 리눅스를 위한 추...
  • 웹지기 02-28 19009 0 0 댓글 0
  • 7 [ Server ][ Linux ] FFMpeg java로 연습하기
  • FFmpeg 는 다양한 디지털 음성 스트림과 영상 스트림을 녹화, 변환할 수 있는 유틸리티 프로그램이다. 원래 리눅스용으로 개발되었으나 현재는 윈도우에서도 많이 사용하고 있다. 명령어를 직접 날려서 (윈도우라면 cmd창) 동작하는 방식이며 여러가지 프리 소프트웨어와 오픈 소스 라이브러리로 구성되어 있다. 라이브러리 중에는 libavcodec 들어있는데, 이 라이브러리는 음성/영상 코덱 라이브러리로 여러 프로젝트에서 쓰이고 있다. 또, libavformat 이라는 음성/영상 다중화, 역다...
  • 웹지기 02-28 19617 0 0 댓글 0
  • 6 [ Server ][ Linux ] CentOS 7 mysql MariaDB 실행 / 설정 / 방화벽
  • MariaDB 실행하기 마리아db설치는 아래 링크를 따라하세요 https://funyphp.com/archive/knowledge/109 먼저 db가 실행중인지 확인하고 실행중이 아니라면 실행을 시켜줍니다. # systemctl status mysql # systemctl start mysql 서비스에 등록이 되어있지 않으면 서비스에 등록해 준다. # systemctl enable mariadb.service 방화벽 설정 ...
  • 웹지기 12-11 20937 0 0 댓글 0
  • 5 [ Server ][ Linux ] CentOS 7 명령어 정리
  • 설치 wget [URL] : URL에 있는 파일을 다운로드 받는다. rpm rpm -Uvh [rpm] : 패키지를 설치하거나, 업그레이드 한다. rpm -qi [rpm] : 패키지가 설치 되어있는지 확인한다. rpm -e [rpm] : 패키지를 삭제 한다. yum(의존성이 있는 패키지 그룹 단위) yum -y install [패키지] : 패키지를 설치한다. yum -y erase [패키지] ...
  • 웹지기 12-11 20988 0 0 댓글 0
  • 4 [ Server ][ Linux ] CentOS 7 virtual host 설정하기 ( 가상호스트 설정 )
  • 기본적으로 들어오는 경로에 대해 httpd.conf에 정의 되어있다. httpd.conf 백업파일 없으면 파일을 백업해둔다 cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original httpd.conf파일을 연다. vim /etc/httpd/conf/httpd.conf httpd.conf파일의 최하단에 다음의 두 줄을 추가한다. # virtual host setting ...
  • 웹지기 12-12 21643 0 0 댓글 0
  • 3 [ Server ][ Linux ] ispconfig3 설치 및 설정
  • 우선 CentOS7 minimal 설치후 Apache로 진행된 자료 입니다. 작업시 #은 복사하지말고 복사&붙혀넣기 신공으로 따라해 보세요.....^^ 코드 붙혀넣는 작업이 더 힘드네요...아고고~ # yum -y update # yum -y install vim wget @ hosts 편집 # vim /etc/hosts 자신의 서버IP (예 : 192.168.0.100) server1.mydomain.com serve...
  • 웹지기 03-04 24100 0 0 댓글 2
  • 열람중 [ Server ][ Linux ] cron사용법(쉘스크립트, 리눅스 파일 자동실행)
  • ## 크론설정(쉘스크립트 실행)---------- ---------- ----------------------------------------------------------------------------------------------------필 드 의 미 범 위---------- ---------- ---------------------------------------------------------------------------------------------...
  • 웹지기 09-11 24248 0 0 댓글 0
  • 1 [ Server ][ Linux ] CentOS 7 SELinux 설정 및 해제하기
  • SELinux 는 Linux의 보안을 강화해 주는 보안 강화 커널이고 zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다. 특정 서비스가 SELinux 때문에 동작하지 않는다면 SELinux 를 끄기 보다는 해당 서비스가 SELinux 하에서 잘 동작하도록 설정을 수정하는걸 권장한다. SELinux 동작 모드 enforce, permissive, disable 세 가지 모드가 있으며 RHEL/CentOS 를 설치하...
  • 웹지기 12-13 26748 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
2,571
어제
6,772
최대
43,745
전체
10,311,721

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