Ubuntu 服务器 16.04.5 LTS
我有一个 python 脚本,它使用以下代码创建日志文件:
today = datetime.today()
datem = datetime(today.year, today.month, today.day)
logger = logging.getLogger('processImport')
hdlr = logging.FileHandler('{0}myLog_{1}-{2}-{3}.log'.format(myLogFileLocation, datem.year, datem.month, datem.day))
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)
保存日志条目:
logger.info(logMessage)
Run Code Online (Sandbox Code Playgroud)
然后我有一个 cron 作业,它通过执行一个os.remove(fullFilePath)用于删除文件的 python 文件在一段时间后删除旧的日志文件。
但是,执行此 cron 作业时出现权限错误。
OSError: [Errno 13] Permission denied: PathToTheFile\theLogFileName.log
Run Code Online (Sandbox Code Playgroud)
当我检查文件的权限时,它们被设置为:
-rw-r--r-- 1 www-data www-data etc etc
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能使 cron 作业有权删除日志文件?
谢谢你。
该文件夹似乎存在写入问题权限。更改权限应该会有所帮助。
尝试这个:
log_dir = '/abs/path/of/directory'
os.chmod(log_dir, 0777)
Run Code Online (Sandbox Code Playgroud)
让我知道事情的后续。