Ubuntu 정시 실행 스크립트
4096 단어 Linux
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입니다.엠마야, 드디어 돌아왔구나!
내가 왜 본문의 주제와 큰 관계가 없는 내용을 썼는지 묻지 마라.나는 바로 이 문제 때문에 가방을 도입할 때 늘 잘못 보고해서 한참을 일했다.다시 이 구덩이를 밟지 않도록 후배들에게 참고로 써 주어라.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.