Ubuntu 정시 실행 스크립트

4096 단어 Linux
crontab
cron은 리눅스 정시 실행 도구로 인공 개입 없이 작업을 실행할 수 있습니다.cron은 Ubuntu에서 기본적으로 설치되어 시작됩니다.
 

직접 예를 들어 어떻게 쓰는지 봅시다.
필요: 매일 8시에/root 디렉터리에 저장hello를 자동으로 실행합니다.sh 스크립트
 
1. 방법은 간단하다. ect에서crontab 파일을 편집하면 된다. 이 파일에 저장된 것은cron이 실행할 명령과 정해진 시간에 실행하는 것이다.
vim /etc/crontab

2. 마지막 줄 추가:
00 08   * * *   root    /root/hello.sh

 
설명
1. crontab 정시 작업 문법은 다음과 같다.
minute   hour   day   month   week  user  command     #  :               

2. 설명:
    minute:     ,     0   59        。

    hour:    ,     0   23        。

    day:    ,     1   31        。

    month:    ,     1   12        。

    week:     ,     0   7        ,    0   7      。

    user:linux     ,  root,      

    command:      ,       ,             。

 
3. 위 필드에서 다음과 같은 특수 문자를 사용할 수 있습니다.
      (*):        ,   month        ,                          。

      (,):                 ,  ,“1,2,5,7,8,9”

      (-):                  ,  “2-6”  “2,3,4,5,6”

       (/):               ,  “0-23/2”          。              ,\
  */10,     minute   ,          。

4. 보충
cron 서비스의 시작과 정지 명령은 다음과 같습니다.
1) 서비스 cron start/* 시작 서비스 */
2) 서비스 cron stop/* 서비스 종료*/
3) 서비스 cron restart/* 서비스 재시작 */
4) 서비스 cron reload/* 구성 다시 로드*/
5) 서비스 cron status/* crond 상태 보기 */
 
취미 확대
매일 8시에 중국 날씨망에서 오늘 날씨를 가져와 ssh 로그인 환영 페이지로 전송하는 프로그램을 썼다.이렇게 하면 ssh가 연결될 때마다 그날의 날씨 상황을 볼 수 있다.제가 심천에 있기 때문에 심천의 예를 들면 당신은 중국 날씨망에 가서 자신의 도시의 페이지를 찾아서 올라갈 수 있습니다.
1. 셸 스크립트:/bin/tianqi.sh
#!/bin/bash
 
weatherDateRoot=http://www.weather.com.cn/weather1d/101280601.shtml  #       
weatherDataFile=/root/weather.html
 
wget $weatherDateRoot -O $weatherDataFile > /dev/null 2>&1  #    

result=$(cat $weatherDataFile | sed -n '/>/etc/update-motd.d/00-header 
#           ,            


2. crontab 파일:
00 08   * * *   root    cp /etc/update-motd.d/00-header_bk /etc/update-motd.d/00-header
01 08   * * *   root    /bin/tianqi.sh

무슨 뜻이냐면, 첫 번째 실행은 백업된 00-headerbk 파일은 매번 tianqi가 실행될 때마다 00-header 파일을 덮어씁니다.sh, 마지막으로 당일 날씨 상황을 추가합니다. 백업을 하지 않으면 이전의 날씨가 유지됩니다.따라서 이 프로그램을 처음 사용하기 전에 00-header를 백업해야 합니다. 이름은 00-header 입니다.bk.두 번째는 날씨 스크립트를 실행하는 겁니다.
 
됐어, 할 말이 이만큼이야.
 
6. 사용에 사용된 세부 사항(아래 쓸모 있는 것은 보고, 사용하지 않는 것은 보지 않아도 된다)
1,crontab의 실행 디렉터리는user의 집 디렉터리입니다
python 스크립트를 호출할 때 사용자 정의 패키지를 도입하는 작업을 자주 사용합니다. 이 패키지를 도입하려면 이 패키지의 경로를 환경 변수에 추가해야 합니다. (여기는python에 대해 알아야 합니다.)
예: 스크립트 경로는/root/aaa/hello입니다.py,hello에서py에/root/bbb/world 도입.py, 당신은 먼저 Hello에 있어야 합니다.py에서 bbb 패키지의 경로를 환경 변수에 추가합니다.
a. 헬로에서py에서 절대 경로를 사용하여 환경 변수를 추가합니다.
import sys
sys.path.insert(0, '/root/bbb/')

환경 변수를 추가하고 hello에 있습니다.py에서 월드로 바로 도입할 수 있습니다.활용단어참조
import world

환경 변수를 추가하지 않으면python은 월드를 어디로 도입할지 모르고 오류를 보고할 수 있습니다.
 
b. 상대 경로를 사용하여 환경 변수를 추가합니다.
다음 중점은 다음과 같다. 상대 경로를 사용할 때 도입된 패키지의 상대적인 위치는 실행 디렉터리에 비해 파일 자체의 상대적인 위치가 아니다!
실행 디렉터리는python 스크립트 파일의 경로가 아니라python 명령을 실행하는 경로입니다.예를 들어/root 경로에서 다음 스크립트를 실행하면, 실행 디렉터리가/root입니다.만약/root/cccc/ddd 경로에서 이 명령을 실행한다면, 실행 디렉터리는/root/cccc/ddd입니다.
python /root/aaa/hello.py

/root/cccc/ddd에서 실행하려면/root/bbb가/root/cccc/ddd에 대한 상대 경로는 다음과 같습니다.
import sys
sys.path.insert(0, '../../bbb')  
#..     ,  ..      /root/ccc/ddd    /root/ccc,
#../..         /root,../../bbb  /root/bbb

환경 변수를 추가하고 hello에 있습니다.py에서도 월드에 직접 도입할 수 있습니다.py:
import world

 
포인트!포인트!다음 문제!!
crontab를 사용하여python 스크립트를 실행할 때 실행 디렉터리는 무엇입니까?
답: 이 사용자의 집 디렉터리입니다!예를 들어 루트 사용자는/root입니다.엠마야, 드디어 돌아왔구나!
 
내가 왜 본문의 주제와 큰 관계가 없는 내용을 썼는지 묻지 마라.나는 바로 이 문제 때문에 가방을 도입할 때 늘 잘못 보고해서 한참을 일했다.다시 이 구덩이를 밟지 않도록 후배들에게 참고로 써 주어라.

좋은 웹페이지 즐겨찾기