2015-04-15 88 views
-1

我試着寫一個文件使用cron的這每一分鐘都是我的腳本:如何通過python腳本寫入文件在cron

#!/usr/bin/env python 

from datetime import datetime 
with open('test.txt', 'a') as f: 
    a = 'date {!s}'.format(datetime.now()) 
    print a 
    f.write('date {!s} \n'.format(datetime.now())) 
    print 'done' 

然後我做了

chmod +x /tmp/test.py 

然後我加入的cron根

sudo crontab -e 

進入的cron

*/1 * * * * /tmp/test.py 

在後綴我這個看的每一分鐘,這表明該腳本沒有任何錯誤

From [email protected] Wed Apr 15 22:56:01 2015 
Return-Path: <[email protected]> 
X-Original-To: root 
Delivered-To: [email protected] 
Received: by tawanda-lx2 (Postfix, from userid 0) 
    id 48CA79A13DF; Wed, 15 Apr 2015 22:56:01 +0200 (SAST) 
From: [email protected] (Cron Daemon) 
To: [email protected] 
Subject: Cron <[email protected]> /tmp/test.py 
Content-Type: text/plain; charset=ANSI_X3.4-1968 
X-Cron-Env: <SHELL=/bin/sh> 
X-Cron-Env: <HOME=/root> 
X-Cron-Env: <PATH=/usr/bin:/bin> 
X-Cron-Env: <LOGNAME=root> 
Message-Id: <[email protected]> 
Date: Wed, 15 Apr 2015 22:56:01 +0200 (SAST) 

date 2015-04-15 22:56:01.246885 
done 

,但如果我打開/tmp/test.txt它是空的,如果我跑test.py手動預期其寫入文件運行

我怎麼你在哪裏搜索test.txt解開這個謎

+0

它寫了'test.txt',但是哪一個?改爲使用絕對文件名。 – tdelaney

+0

但爲什麼它的工作,如果我直接運行python腳本 –

+1

open('test.txt','a')'打開「test.txt」在程序的當前工作目錄。當您手動運行腳本時,它將在本地目錄中運行。當它由'cron'運行時,它的任何目錄* cron *都將用作它的工作目錄。該目錄取決於您如何註冊您的cron作業(用戶作業,系統作業等),現在配置了cron。 – tdelaney

回答

1

?因爲您以root用戶身份添加腳本test.txt應出現在/root目錄(用戶主目錄)中。