Я хочу выполнить файл Python в /var/www/html
:
sudo python myFile.py
, который отлично работает.
Теперь я хочу записать вывод в log.txt
.
Итак, я набираю:
sudo python myFile.py >> log.txt
Однако я получаю следующую ошибку:
-bash: log.txt: В доступе отказано
blockquote>Хотя я изменил права доступа к log.txt:
sudo chmod u+x log.txt
И
ls -l log.txt
возвращает:-rwxr - r-- 1 www-data www- data 0 Feb 3 16:04 log.txt
blockquote>Как это можно исправить?
Две опции я могу думать:
sudo bash -c "python myFile.py >> log.txt"
, или
sudo chmod u+x myFile.py
, затем sudo ./myFile.py >> log.txt
Проблема здесь sudo python myFile.py >> log.txt
состоит в том, что Вы работаете sudo python myFile.py
как корень, но Ваша оболочка все еще работает как Ваш обычный пользователь, что означает >>
, перенаправление не будет работать, если у Вас не будет разрешения записать в log.txt
Как George, правильно отмеченный, необходимо сделать sudo bash -c "python myFile.py >> log.txt"
. С другой стороны, если Ваш myFile.py
не требует полномочий пользователя root, можно сделать python myFile.py | sudo tee log.txt