我按以下方式设置日志记录,但日志记录失败,因为位置/gerrit_v2/hooks/changemergedlogs
需要sudo权限,如何通过脚本授予sudo权限?你知道吗
你知道吗代码:-你知道吗
import os,time,logging
# setup logging
changemergedhooklog = 'change_merged_hook_log_' + time.strftime("%m%d%Y") + '_' + time.strftime("%H%M%S") + '.txt'
#log = os.path.join(os.path.dirname(os.path.realpath(__file__)),changemergedhooklog)
log = os.path.join(os.path.dirname(os.path.realpath(__file__)),'changemergedlogs',changemergedhooklog)
logger = logging.getLogger(__name__)
#logger.setLevel(logging.DEBUG)
logger.setLevel(10)
ch = logging.StreamHandler()
#ch.setLevel(logging.DEBUG)
ch.setLevel(10)
formatter = logging.Formatter('%(asctime)s %(filename)-15s %(funcName)-20s %(lineno)-5s %(levelname)-8s: %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
ch.setFormatter(formatter)
logger.addHandler(ch)
fh = logging.FileHandler(log, 'w')
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
logger.addHandler(fh)
你知道吗错误:-你知道吗
File "copytest.py", line 17, in <module>
fh = logging.FileHandler(log, 'w')
File "/Network/Servers/nwna40a.apple.com/vol/homedir4/wgerrit/.pyenv/versions/2.7.6/lib/python2.7/logging/__init__.py", line 903, in __init__
StreamHandler.__init__(self, self._open())
File "/Network/Servers/nwna40a.apple.com/vol/homedir4/wgerrit/.pyenv/versions/2.7.6/lib/python2.7/logging/__init__.py", line 926, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/gerrit_v2/hooks/changemergedlogs/change_merged_hook_log_03272019_142144.txt'
以root或sudo运行脚本。你知道吗
如果这不是一个选项,您可以在没有使用sudo调用
os.geteuid()
运行时检测到它。如果os.geteuid() != 0
你没有和sudo一起跑步。如果是这样的话,你可以再次给自己打电话,但这次是sudo,类似于subprocess.call(['sudo', 'python3', *sys.argv])
。你知道吗相关问题 更多 >
编程相关推荐