ホームページ システムチュートリアル Linux crontab のスケジュールされたタスクが実行されない理由をご存知ですか?

crontab のスケジュールされたタスクが実行されない理由をご存知ですか?

Mar 09, 2024 am 09:49 AM
スケジュールされたタスク crontab python脚本

crontab スケジュールされたタスクが実行されない理由の概要

更新日時:2019年1月9日 09:34:57作成者:Hope on the Field

この記事は主に、crontab のスケジュールされたタスクが実行されない理由を要約して紹介します。また、考えられるすべての誘発に対する解決策も提供します。この問題に遭遇した同僚にとって、一定の参考および学習価値があります。必要な学生は、お読みください。編集者をフォローして一緒に学びましょう

###序文###

最近、仕事でいくつかの問題が発生しました。crontab でスケジュールされたタスクが実行されませんでした。後でインターネットで検索したところ、インターネットでは主に次の 5 つのインセンティブについて言及されていることがわかりました。

1crond サービスが開始されていません

crontab は Linux カーネルの機能ではありませんが、crond サービスに依存しています。このサービスは開始または停止できます。停止すると、スケジュールされたタスクを実行することが困難になります。解決策は、これを開くことです:

リーリー

###または###

リーリー

crond コマンドが存在しないというメッセージが表示された場合は、削除されている可能性があります。次のコマンドを使用して CentOS に再インストールできます:

リーリー

2権限の問題

例: スクリプトには x の実行権限がありません。解決策:

実行権限を減らすか、bashabc.sh を使用して

を実行してください

crontab タスクが属するユーザーに特定のディレクトリへの書き込み権限がない場合、タスクは失敗する可能性もあります。

3 パスの問題

一部のコマンドはシェルでは正常に実行されますが、crontab で実行すると必ず失敗します。 crontab で使用される sh がパスを正しく認識していない可能性があります。例: root としてシェルにログインし、/root/test.sh を実行した後、単に

を実行してください。

リーリー

### それでおしまい。そして、このスクリプトは crontab には見つかりません。たとえば、完全に記述します:

リーリー

4 時差の問題

サーバーとクライアントの間には時差があるため、crontab 時間はサーバー時間に基づいています。

時差ぼけは本当に悩ましいもので、私も経験したことがありますが、その現象は次のとおりです。

(1) スケジュールされたスクリプトを設定し、date コマンドを使用してスクリプトの実行時間に達したサーバー時間を観察しましたが、実行されていないことがわかりましたlinux任务计划_linux 计划任务没执行_linux任务计划不生效

(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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

crontab のスケジュールされたタスクが実行されない理由をご存知ですか? crontab のスケジュールされたタスクが実行されない理由をご存知ですか? Mar 09, 2024 am 09:49 AM

crontab のスケジュールされたタスクが実行されない原因まとめ 更新日時: 2019年1月9日 09:34:57 作成者: Hope on the field. この記事では主に、crontab のスケジュールされたタスクが実行されない原因をいくつかまとめて紹介します。考えられるトリガーごとに解決策が示されており、この問題に遭遇した同僚にとって一定の参照と学習価値があります。必要な学生はエディターに従って一緒に学習できます。序文: 最近仕事でいくつかの問題に遭遇しました。crontab のスケジュール設定タスクが実行されませんでした後、インターネットで検索したところ、インターネットでは主に次の 5 つのインセンティブについて言及されていることがわかりました: 1. crond サービスが開始されていない Crontab は Linux カーネルの機能ではなく、cron に依存しています。

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 コードを実行可能ファイル (EXE 形式) にパッケージ化して、Python 環境のないマシンでの実行を容易にする、一般的に使用されるツールです。この記事では、PyCharm で PyInstaller を使用して Python コードを EXE 形式にパッケージ化し、特定の

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 回繰り返しました。

pycharmでExcelデータを読み取る方法 pycharmでExcelデータを読み取る方法 Apr 03, 2024 pm 08:42 PM

PyCharmを使用してExcelデータを読み取るにはどうすればよいですか?手順は次のとおりです: openpyxl ライブラリのインストール、openpyxl ライブラリのインポート、Excel ワークブックのロード、特定のワークシートへのアクセス、ワークシート内のセルへのアクセス、行と列の走査。

Flask のインストールと構成のチュートリアル: Python Web アプリケーションを簡単に構築するツール Flask のインストールと構成のチュートリアル: Python Web アプリケーションを簡単に構築するツール Feb 20, 2024 pm 11:12 PM

Flask のインストールと構成チュートリアル: Python Web アプリケーションを簡単に構築するためのツール、特定のコード サンプルが必要です はじめに: Python の人気が高まるにつれ、Web 開発は Python プログラマーにとって必要なスキルの 1 つになりました。 Python で Web 開発を実行するには、適切な Web フレームワークを選択する必要があります。数ある Python Web フレームワークの中でも、Flask はシンプルで使いやすく柔軟なフレームワークとして開発者に好まれています。この記事ではFlaskフレームワークのインストールについて紹介します。

Web サイトのサブドメイン クエリ ツールとは何ですか? Web サイトのサブドメイン クエリ ツールとは何ですか? Mar 07, 2024 am 09:49 AM

Web サイトのサブドメイン クエリ ツールには次のものが含まれます: 1. Whois Lookup: サブドメイン名を含むドメイン名の登録情報をクエリできます; 2. Sublist3r: 検索エンジンやその他のツールを利用してドメイン名のサブドメイン名を自動的にスキャンできます; 3 . DNSdumpster: ドメイン名のサブドメイン名、IP アドレス、DNS レコードなどの情報を照会できます; 4. Fierce: DNS サーバーを通じてドメイン名のサブドメイン名情報を照会できます: 5. Nmap; 6. Recon- NG; 7. Google ハッキング。

PHP スケジュールされたタスクの実装: 10 分ごとに注文をキャンセルする手順 PHP スケジュールされたタスクの実装: 10 分ごとに注文をキャンセルする手順 Mar 01, 2024 pm 09:18 PM

タイトル: PHP スケジュールされたタスクの実装: 10 分ごとに注文をキャンセルする操作手順 電子商取引プラットフォームやオンライン取引 Web サイトでは、注文処理は重要なリンクです。場合によっては、ユーザーが注文後長期間支払わない場合や、その他の理由で注文をキャンセルする必要がある場合があります。注文を自動的にキャンセルするには、PHP スケジュールされたタスクを使用して注文を確認し、10 分ごとにキャンセルします。ステップ 1: スケジュールされたタスクをセットアップする まず、サーバー上でスケジュールされたタスクをセットアップする必要があります。

See all articles