시스템 튜토리얼 리눅스 crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까?

crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까?

Mar 09, 2024 am 09:49 AM
예약된 작업 crontab 파이썬 각본

crontab 예약 작업이 실행되지 않는 몇 가지 이유 요약

업데이트 날짜: 2019년 1월 9일 09:34:57 작성자: Hope in the Fields

이 문서에서는 crontab 예약 작업이 실행되지 않는 몇 가지 이유를 주로 요약하고 소개합니다. 또한 이 문제에 직면한 동료를 위한 특정 참조 및 학습 가치가 있습니다. 함께 배우는 에디터

머리말

최근 직장에서 몇 가지 문제가 발생했습니다. crontab 예약 작업이 실행되지 않았습니다. 나중에 온라인으로 검색했을 때 인터넷에서 주로 다음 5가지 트리거를 언급한 것을 발견했습니다.

1crond 서비스가 시작되지 않았습니다

crontab은 Linux 커널의 기능이 아니지만 crond 서비스에 의존합니다. 이 서비스는 시작되거나 중지될 수 있습니다. 중지되면 예정된 작업을 수행하기가 어려워집니다. 해결 방법은 다음과 같습니다.

으아악

또는

으아악

crond 명령이 존재하지 않는다는 메시지가 나타나면 다음 명령을 통해 CentOS에서 다시 설치할 수 있을 뿐만 아니라 삭제되었을 수도 있습니다.

으아악

2 권한 문제

예: 스크립트에 x 실행 권한이 없습니다. 해결 방법:

실행 권한을 줄이거나 bashabc.sh를 사용하여 실행

crontab 작업이 속한 사용자에게 특정 디렉터리에 대한 쓰기 권한이 없을 수도 있으며 실패할 수도 있습니다

3 경로 문제

일부 명령은 셸에서 정상적으로 실행되지만 crontab에서 실행하면 항상 실패합니다. crontab에서 사용하는 sh가 경로를 올바르게 인식하지 못할 수도 있습니다. 예를 들어, 쉘에 루트로 로그인하고 /root/test.sh를 실행하세요.

으아악

그렇습니다. 그리고 이 스크립트는 crontab에서 찾을 수 없습니다. 예를 들어 완전히 작성하세요:

으아악

4시차 문제

linux任务计划_linux 计划任务没执行_linux任务计划不生效서버와 클라이언트의 시차로 인해 crontab 시간은 서버 시간을 기준으로 합니다.

시차증 문제는 정말 짜증납니다. 제가 직접 경험한 현상은 다음과 같습니다.

(1) 타이밍 스크립트를 설정하고 date 명령어를 사용하여 스크립트 실행 시간에 도달했을 때 서버 시간을 관찰했는데 실행되지 않은 것을 발견했습니다

(2) 그리고 1분에 한 번씩 실행되도록 스크립트를 설정했는데 괜찮습니다

젠장, 서버시간 맞나요? 어떤 시간대를 추가해야 합니까? 그래서 스크립트 시간을 10시간, 12시간, 8시간 정도 줄여보려 했지만 잘 안 됐어요.

然而很显著是时间不一致引起的不执行。

最后用如下两行解决了问题:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
service crond restart
로그인 후 복사

参考这篇文章:

5变量问题

有时侯命令中富含变量,但crontab执行时却没有,也会导致执行失败。

验证后,我的定时脚本test.sh不执行不是上述任何一种缘由,虽然我的脚本就一句话:

#!/bin/bash
echo 123 >> testFile
로그인 후 복사

我希望通过这些方法来测试我设置的定时脚本起作用了,于是我设置了该脚本每分钟执行一次,而且死活在脚本所在目录看不到这个文件linux 计划任务没执行,我自动执行

# sh test.sh
로그인 후 복사

却能看见在脚本所在目录能看见这个文件

我怀疑是crontab根本没有执行,于是我在crontab中直接添加了

*/1 * * * * echo 123 >> /home/denglinjie/testFile
로그인 후 복사

testFile文件生成了,说明crontab是执行了的,那看来是我脚本自身存在问题

最后发觉,原先是testFile这儿必须写完整的路径,我天真的以为testFile会生成在脚本所在的目录,所以改成了如下方式

#!/bin/bash
echo 123 >> /data/denglinjie/testFile
로그인 후 복사

之后就可以了。

linux任务计划_linux 计划任务没执行_linux任务计划不生效

虽然路径是个十分容易出问题的地方,假定在/home/denglinjie目录下有一个脚本文件test1.sh,之后在该目录下还有一个脚本文件test2.sh

在test1.sh中执行了test2.sh,并且用的是相对路径,即相对test1.sh所在的路径。

若果在crontab-e中编辑的时侯,执行的方法是

sh/home/denglinjie/test1.sh,当执行到调用shtest2.sh的时侯,系统会觉得是从crontab文件所在的目录去找test2.sharm linux,而且显然是找不到的,导致执行失败

最开始我想的方式是,我要将我写的待执行的脚本文件以及被调用的其他的脚本和crontab文件放在一个地方,这样就可以拉,并且失败了,可能是由于权限问题,我进不去/var/spool/cron目录。

所以另外一个解决方式就是在执行脚本之前先通过cd/home/denglinjie命令步入到脚本所在目录

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

近来又发觉一种新的导致crontab不执行的诱因

这儿我要执行的是python脚本,我python脚本的目录为:

/data/denglinjie/work/UpdateModuleSwitch
로그인 후 복사

一开始我的定时任务是这样写的:

linux任务计划_linux任务计划不生效_linux 计划任务没执行

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
로그인 후 복사

发觉到了时间点竟然没有执行,其中update_switch.py的部份内容如下:

import pymongo
로그인 후 복사

就是我的脚本中引入了自己安装的pymongo,注意,这个pymongo是安装到了指定的python版本上的

不执行缘由:crontab定时任务执行的时侯,使用的python不是我的那种python,使用的这个python没有安装pymongo,致使import失败

解决办法,改成如下方式:

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;/data/zhoumi/install_evn/bin/python update_switch.py
로그인 후 복사

指定运行使用的python,这个python早已安装绑定了pymongo,或则用如下方式:

0 * * * * export PATH=/data/zhoumi/install_evn/bin/:$PATH;cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
로그인 후 복사

由于我的这个python是安装在我自己的用户目录下linux 计划任务没执行,所以系统找不到这个python,所以只要将我的python也加入到系统PATH环境变量中就可以了

总结

以上就是这篇文章的全部内容了,希望本文的内容对你们的学习或则工作具有一定的参考学习价值,假如有疑惑你们可以留言交流,感谢你们对本站的支持。

위 내용은 crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까? crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까? Mar 09, 2024 am 09:49 AM

crontab 예약 작업이 실행되지 않는 몇 가지 이유 요약 업데이트 시간: 2019년 1월 9일 09:34:57 작성자: 현장에서 crontab 예약 작업이 실행되지 않는 몇 가지 이유를 주로 요약하고 소개합니다. 모두 이 문제에 직면한 동료를 위한 특정 참조 및 학습 가치가 있는 각 가능한 트리거에 대한 솔루션이 제공됩니다. 도움이 필요한 학생들은 편집자를 따라 함께 학습할 수 있습니다. 최근 직장에서 몇 가지 문제가 발생했습니다. 나중에 인터넷을 검색해 보니 인터넷에서 주로 다음과 같은 5가지 인센티브를 언급하고 있었습니다. 1. 크론드 서비스가 시작되지 않았습니다. 크론탭은 리눅스 커널의 기능이 아니고 크론에 의존합니다.

Orange3 탐험: 데이터 마이닝과 머신러닝의 새로운 세계를 열어보세요! Orange3 탐험: 데이터 마이닝과 머신러닝의 새로운 세계를 열어보세요! Mar 04, 2024 pm 08:16 PM

Orange3은 강력한 오픈 소스 데이터 시각화 및 기계 학습 도구로, 풍부한 데이터 처리, 분석 및 모델링 기능을 갖추고 있어 사용자에게 간단하고 빠른 데이터 마이닝 및 기계 학습 솔루션을 제공합니다. 이 기사에서는 Orange3의 기본 기능과 사용법을 간략하게 소개하고 이를 실제 응용 프로그램 시나리오 및 Python 코드 사례와 결합하여 독자가 Orange3의 사용 기술을 더 잘 익힐 수 있도록 돕습니다. Orange3의 기본 기능에는 데이터 로딩, 데이터 전처리, 특징 선택, 모델 구축 및 평가 등이 포함됩니다. 사용자는 직관적인 인터페이스를 사용하여 구성 요소를 끌어서 놓아 데이터 프로세스를 쉽게 구축할 수 있습니다. 동시에 더 복잡한 데이터 처리 및 모델링 작업도 Python 스크립트를 통해 완료할 수 있습니다. 아래에서는 실습을 진행하겠습니다.

PyCharm 고급 튜토리얼: PyInstaller를 사용하여 코드를 EXE 형식으로 패키징 PyCharm 고급 튜토리얼: PyInstaller를 사용하여 코드를 EXE 형식으로 패키징 Feb 20, 2024 am 09:34 AM

PyCharm은 개발자의 효율성 향상에 도움이 되는 풍부한 기능과 도구를 제공하는 강력한 Python 통합 개발 환경입니다. 그중 PyInstaller는 Python 환경이 없는 컴퓨터에서 쉽게 실행할 수 있도록 Python 코드를 실행 파일(EXE 형식)로 패키징할 수 있는 일반적으로 사용되는 도구입니다. 이 기사에서는 PyCharm에서 PyInstaller를 사용하여 Python 코드를 EXE 형식으로 패키징하는 방법을 소개하고 특정 기능을 제공합니다.

pycharm에서 Excel 데이터를 읽는 방법 pycharm에서 Excel 데이터를 읽는 방법 Apr 03, 2024 pm 08:42 PM

PyCharm을 사용하여 Excel 데이터를 읽는 방법은 무엇입니까? 단계는 다음과 같습니다. openpyxl 라이브러리를 가져오고, Excel 통합 문서를 로드하고, 워크시트의 셀에 액세스합니다.

전체 가이드: Django 버전을 정확하게 확인하기 전체 가이드: Django 버전을 정확하게 확인하기 Feb 19, 2024 pm 06:33 PM

전문가 가이드: Django 버전을 정확하게 확인하는 방법, 구체적인 코드 예제가 필요합니다. 소개: Django는 매우 인기 있는 Python 웹 프레임워크이며 지속적으로 업데이트되는 버전은 개발자에게 매우 중요합니다. Django 버전을 확인하는 것은 최신 기능과 버그 수정을 사용하고 있는지 확인하는 데 중요합니다. 이번 글에서는 Django 버전을 정확하게 확인하는 방법과 구체적인 코드 예시를 설명하겠습니다. 1. Django 버전을 확인하려면 Command Line을 사용하는 것이 Django를 확인하는 가장 쉽고 빠른 방법입니다.

Flask 설치 및 구성 튜토리얼: Python 웹 애플리케이션을 쉽게 구축하기 위한 도구 Flask 설치 및 구성 튜토리얼: Python 웹 애플리케이션을 쉽게 구축하기 위한 도구 Feb 20, 2024 pm 11:12 PM

Flask 설치 및 구성 튜토리얼: Python 웹 애플리케이션을 쉽게 구축하기 위한 도구로, 특정 코드 예제가 필요합니다. 소개: Python의 인기가 높아짐에 따라 웹 개발은 Python 프로그래머에게 필요한 기술 중 하나가 되었습니다. Python으로 웹 개발을 수행하려면 적합한 웹 프레임워크를 선택해야 합니다. 많은 Python 웹 프레임워크 중에서 Flask는 개발자가 선호하는 간단하고 사용하기 쉽고 유연한 프레임워크입니다. 이번 글에서는 Flask 프레임워크 설치에 대해 소개하겠습니다.

python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 Apr 02, 2024 pm 03:58 PM

1. 먼저 pycharm을 열고 pycharm 홈페이지로 들어갑니다. 2. 그런 다음 새 Python 스크립트를 생성하고 마우스 오른쪽 버튼을 클릭하고 새로 만들기를 클릭한 후 Pythonfile을 클릭합니다. 3. 문자열(코드: s="-")을 입력합니다. 4. 그런 다음 문자열의 기호를 20번 반복해야 합니다(코드: s1=s*20). 5. 인쇄 출력 코드(코드: print(s1))를 입력합니다. 6. 마지막으로 스크립트를 실행하면 하단에 반환 값이 표시됩니다. - 20번 반복됩니다.

웹사이트 하위 도메인 쿼리 도구란 무엇입니까? 웹사이트 하위 도메인 쿼리 도구란 무엇입니까? Mar 07, 2024 am 09:49 AM

웹사이트 하위 도메인 쿼리 도구는 다음과 같습니다. 1. Whois 조회: 하위 도메인 이름을 포함한 도메인 이름의 등록 정보를 쿼리할 수 있습니다. 2. Sublist3r: 검색 엔진 및 기타 도구를 사용하여 도메인 이름의 하위 도메인 이름을 자동으로 검색할 수 있습니다. . DNSdumpster: 도메인 이름의 하위 도메인 이름, IP 주소 및 DNS 레코드와 같은 정보를 쿼리할 수 있습니다. 4. Fierce: DNS 서버를 통해 도메인 이름의 하위 도메인 이름 정보를 쿼리할 수 있습니다. 7. 구글 해킹.

See all articles