0

私はcronが気まぐれであることを知っており、Linuxでそれを処理する方法を見つけようとしています.

test_cron.pycron をテストするための次の実行可能な Python スクリプトがあります。

#!/usr/bin/env python

import os

os.makedirs('test_cron_dir')
f = open('test_cron_dir/test_file','w')
f.write('stuff')
f.close()

2 つの異なるフォルダーでスクリプトを実行するために、crontab に 2 つの行を追加しました。

* * * * * python /home/me/test_cron.py
* * * * * python /home/me/some_folder/test_cron.py

問題は、cron が にあるtest_cron.pyスクリプトを実行しますが、 にあるスクリプト/home/me/を実行しないこと/home/me/some_folder/です。スクリプト内のパスを絶対パスに変更しましたが、状況は何も変わりません。また、ルート crontab を使用しようとしましたが、何も変わりません。

誰か私に知識と経験の光を当ててくれませんか? どうもありがとう。

4

1 に答える 1

0

cronは、ユーザーのホーム ディレクトリからcrontab(5)エントリを実行しています。

ディレクトリを適切に変更する必要があります。つまり、chdir(2) syscall を呼び出します (シェル ビルトインを介して、またはos.chdircdを使用して python スクリプト内で)。

スクリプトで現在のディレクトリを照会する必要があります ( getcwd(3)pwdコマンド、または Python のos.getcwdを使用)。

PATHコマンドを実行しているかどうかも確認してください。

于 2013-08-08T09:05:11.020 に答える