svn post commit フックによって呼び出される python スクリプトがあり、この python スクリプトは python ロギングを使用してログ ファイルに書き込む必要があります。ただし、ログ ファイルを開こうとすると、スクリプトが失敗します。FileHandler から StreamHandler に変更すると、スクリプトが完全に機能するため、これが理由であると確信しています。
書き込もうとしているログファイルは次のとおりです。
-rw-rw-rw-. 1 apache apache 1.8K Jan 22 10:15 hook_log.out
/opt/ のサブディレクトリにある親ディレクトリは次のとおりです。
drwxrwxrwx. 2 apache apache 4.0K Jan 22 10:33 svn_hooks
何らかの理由で、ルート /tmp ディレクトリ内のファイルにログを記録すると、スクリプトは完全に機能します。
drwxrwxrwt. 8 root root 4.0K Jan 22 10:34 tmp
svn_hooks/ ディレクトリがそうでないのに、/tmp ディレクトリがフックによって書き込み可能であるべき理由がわかりません。これは apache に属し、いずれにせよ誰でも書き込み可能です。誰かが私にこれを説明できますか? ありがとう!
編集:スクリプトは次の行で失敗します:
handler = logging.FileHandler("/opt/in1/svn_hooks/hook_log.out")