コマンドラインから問題なく実行される Python スクリプトがあるのですが、CRON から実行しようとすると奇妙な動作をします。
スクリプトは apk スクリプト ファイルを生成し、実行します。
apk スクリプト ファイルは、/usr/src/scripts/plots/core_temp_data/weeklyplots
コマンド ラインから実行した場合は に保存されますが、/home/pi
CRON から実行した場合は に保存されます。
CRON エラーをログファイルに書き込むことも試みましたが、それもディレクトリに配置されます/home/pi
。
スクリプトは動作していますが、結果のファイルが間違った場所に保存されます。正しいパスを指定するにはどうすればよいでしょうか?
パスを指定する方法を検索してみましたが、ひどく混乱してしまいました。
apkスクリプトを生成するスクリプトの部分はfout = open("live_gnu_command.gpl", "w")
以下の D_byes の助けにより、これは機能しました:fout = open("/usr/src/scripts/plots/core_temp_data/weeklyplotslive_gnu_command.gpl", "w")
答え1
デフォルトでは、cron
ジョブを所有するユーザーのホーム ディレクトリですべてのジョブを実行します。出力ファイルを書き込むときに Python スクリプトが絶対パスを使用していることを確認してください。そうしないと、現在のユーザーのホーム ディレクトリに出力ファイルが配置されます。