Разрешение на сохранение файла на диск с помощью скрипта Python - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть этот тестовый код, который просто сохраняет файл XML в папку. Я хотел запланировать выполнение задания crontab каждую минуту, но я могу получить разрешение только на сохранение XML на диск, когда использую sudo и ввожу свой пароль. Когда я планирую это с помощью crontab, он печатает строку, но не сохраняет файл. Как я мог заставить это работать?

#!/usr/bin/python

import sys
import time
from socket import *
from xml.dom.minidom import Document

def main(args):
       doc     = Document()
       with open("/Users/lucasp/Desktop/LogsXML" + time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime()) + ".xml", "w") as f:
           f.write("doc")
       string = "File saved! : LogsXML/" + time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime()) + ".xml"
       print string

if __name__ == '__main__':
        sys.exit (main (sys.argv))

1 Ответ

0 голосов
/ 03 апреля 2012

Исправьте права доступа перед запуском скрипта: Узнайте, с каким uid запускается cron (возможно, crontab).Используйте chown (вероятно, как root), чтобы изменить gid файла LogsXML на эту группу и предоставить группе право на запись в файл.Например,

sudo chown lucasp:crontab ~lucasp/Desktop/LogsXML
chmod g+w ~lucasp/Desktop/LogsXML

(Если сценарию необходимо создать новые файлы, выберите каталог и предоставьте права на запись и выполнение с помощью chown g+wx <directory>).

...