执行rm -rf时,Fabric会收到权限被拒绝

时间:2017-02-12 17:43:04

标签: python ubuntu fabric

当我运行fabric.py来部署我的网站时,Ubuntu。

我遇到了错误:

[192.168.15.143] run: rm -rf /home/user/project/weather_station/
[192.168.15.143] out: rm: cannot remove '/home/user/project/weather_station/logs/gunicorn.log': Permission denied
[192.168.15.143] out:


Fatal error: run() received nonzero return code 1 while executing!

Requested: rm -rf /home/user/project/weather_station/
Executed: /bin/bash -l -c "rm -rf /home/user/project/weather_station/"

Aborting.
Disconnecting from 192.168.15.143... done.

我认为错误是关于被拒绝的许可。

我引用了this

所以我将run('rm -rf {}'.format(PROJECT_DIR))更改为sudo('rm -rf {}'.format(PROJECT_DIR))

但仍然是错误。有什么方法吗?

2 个答案:

答案 0 :(得分:0)

活动进程正在使用/home/user/project/weather_station/logs/gunicorn.log文件吗?如果gunicorn正在运行并将此文件用作日志文件,则“权限被拒绝”。正是应该发生的事情。如果是这种情况,那么您需要重新考虑您要执行的操作,因为您不应该删除正在使用的文件。

对于日志文件,显而易见的解决方案是将gunicorn配置为使用其他位置,例如/home/user/logs/weather_station,以便它位于您尝试删除的路径之外。

除此之外,如果在执行此rm命令之前停止gunicorn进程,那么您的命令应该成功运行。

然而,广泛的问题是(我认为)您正在尝试删除正在使用的日志文件。你需要配置gunicorn为其日志文件使用不同的位置,否则你需要在尝试删除它之前结束gunicorn。

答案 1 :(得分:0)

我最后使用sudo chmod 777 /home/user/project/weather_station/logs/gunicorn.log

然后它确实有用。