Ubuntu Server 9.10、これが私のファイル、test.pyです
import commands
blkid = commands.getoutput('blkid')
print blkid
(SUとして)手動で実行すると、次のようになります。
python test.py
期待どおりにblkidの出力を取得します。
/dev/sda1: UUID="3f0ac5bb-f0da-4574-81f5-77844530b561" TYPE="ext4"
/dev/sda5: UUID="67df0e7c-74fb-47dd-8520-ad720fbed67d" TYPE="swap"
/dev/sdb1: UUID="85466892-8dae-461c-95da-b8f91c2e766b" TYPE="ext3"
/dev/sdc1: UUID="91b84635-21c2-4d9a-84f8-2bbaab16d41f" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdd1: UUID="6a52c830-0029-4154-80cb-f17274eb6fed" SEC_TYPE="ext2" TYPE="ext3"
ただし、これをSU crontabに追加すると、次のようになります。
* * * * * python /home/myusername/test.py > /home/myusername/output
出力の内容は次のようになります。
sh: blkid: not found
ここで何が欠けていますか?Pythonコマンドモジュールは特定のSH固有のコマンド専用ですか?システムコマンドを実行して、解析可能な変数に出力をキャプチャしようとしています。