質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

808閲覧

cronを用いたテキストファイル生成を行うPythonの実行がうまくいきません

miraclekitten

総合スコア1

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/26 10:13

cronを用いたテキストファイル生成を行うPythonの実行がうまくいきません

Raspberry pi上でcronを用いて定期的にテキストファイルを生成あるいは追記するプログラムを実行したいのですがうまくいきません。
.shや直接Pythonを実行した際には問題なく動作しています。

cronの設定は、sudoで設定しており、
権限はすべて777としています。

該当のソースコード

|* * * * * /usr/bin/bash /home/pi/Desktop/Dev/cronTest/test.sh >> /home/pi/Desktop/Dev/cronTest/error.txt 2>&1
|* * * * * printenv >> /home/pi/Desktop/Dev/cronTest/env.txt 2>&1

該当のソースコード

python

1 2def write_file(): 3 f = open('test_cron_file.txt', 'a') 4 f.write('Hello World!\n') 5 f.close() 6 7def main(): 8 write_file() 9 10 11 12 13#if __name__ == '__main__': 14# main() 15 16main()

補足情報

cronの定期実行はエラー文出力用のテキストが出力されているので問題なく行われていると考えています。
エラーは特にありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/07/26 10:41

うまくいかないとはどういう動作となるんでしょうか
miraclekitten

2021/07/26 10:54 編集

ファイル生成が行われない状況です。 VSCodeからのpython実行や直接.shを実行した際にはtest_cron_file.txtが出力されるのですが、cronで行うと出力されない状態です。
otn

2021/07/26 11:09

質問1: > cronの設定は、sudoで設定しており、 とは具体的にどういうことですか? 質問2: カレントディレクトリーの概念を理解していますか?
guest

回答1

0

ベストアンサー

test.sh の内容がわからないので推測ですが…

案1) test_cron_file.txt を絶対パスで指定する

案2) test.sh で python スクリプトを実行する前に /home/pi/Desktop/Dev/cronTest へ移動する

あたりでどうでしょあか?

投稿2021/07/26 11:16

takasima20

総合スコア7460

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miraclekitten

2021/07/26 11:19

pythonファイルの内容に問題はないと思われるため二つの案では上手く動作しません、、。 (直接実行および.sh経由での実行で問題がないためです) 問題はcronの設定にあると推測はしているのですが、、、 というところになります。
takasima20

2021/07/26 11:26 編集

では試しに /home/pi/Desktop/Dev/cronTest/ 【以外】のディレクトリで実行できますか? もちろんコピーして実行するのでなく、現在のものをそのままという意味です。
miraclekitten

2021/07/26 11:44

他の方のカレントディレクトリの指摘で気がつきました 案1の方法で解決できました、ありがとうございます。
otn

2021/07/26 11:48

カレントディレクトリーの概念を理解できていなかったということですね。 これを機会に理解できたのであれば良いのですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問