2017-02-12 14 views
0

Когда я запустил fabric.py для развертывания моего сайта ton Ubuntu.Ткань получает разрешение, отклоненное во время выполнения rm -rf

я встретил ошибку:

[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))

, но до сих пор error.Is там любой подход?

+0

Что произойдет, если вы используете 'operations.sudo()' вместо 'operations.run()'? – fernandezcuesta

+0

Ошибка полностью такая же. Могу ли я установить параметр как 'sudo -H rm -rf' в fabfile? – CJCheng

ответ

0

Является ли файл /home/user/project/weather_station/logs/gunicorn.log активным процессом? Если запущен пулемет, и используя этот файл в качестве файла журнала, то «Permission denied». как раз то, что должно произойти. Если это так, то вам нужно переосмыслить то, что вы пытаетесь сделать, так как вы не должны удалять файл, который используется.

В случае файла журнала очевидным решением было бы настроить gunicorn для использования в другом месте, например /home/user/logs/weather_station, так что он находится за пределами пути, который вы пытаетесь удалить.

Отметим, что если вы прекратите процесс стрельбы до выполнения этой команды rm, ваша команда должна успешно работать.

Общая проблема, однако, заключается в том, что (я думаю) вы пытаетесь удалить файл журнала, который используется. Вам либо нужно настроить gunicorn, чтобы использовать другое место для своего файла журнала, либо вам нужно прекратить стрельбу до того, как вы попытаетесь удалить его.

+0

thx ваш ответ, я, наконец, исправил проблему, набрав 'sudo chmod 777/home/user/project/weather_station/logs/gunicorn.log' – CJCheng

0

я, наконец, использовать sudo chmod 777 /home/user/project/weather_station/logs/gunicorn.log

Затем он работает.