Sindbad~EG File Manager
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
#
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import datetime
import os
import sys
import fcntl
class ClAuditLog:
def __init__(self, log_file_name):
self._log_file_name = log_file_name
def info_log_write(self, msg=""):
dt_now = datetime.datetime.now()
# Determine parent PID and it's name
parent_proc_id = os.getppid()
# Determine parent process name
proc_name = self._get_process_name(parent_proc_id)
# write to log file
try:
audit_log_file = open(self._log_file_name, 'a')
fcntl.lockf(audit_log_file, fcntl.LOCK_EX | fcntl.LOCK_NB)
audit_log_file.write(dt_now.strftime("%Y.%m.%d %H:%M:%S") +
": Parent process: " + proc_name +
" (PID: " + str(parent_proc_id) + "): Args: " + str(sys.argv[1:]) +
" " + msg + "\n")
audit_log_file.close()
except (IOError, OSError):
# Ignore all file errors
pass
@staticmethod
def _get_process_name(pid):
"""
Get process name by pid
:param pid: PID for get process name
:return: process name
"""
name = "<Unknown>"
try:
f = open("/proc/%s/stat" % pid, 'r')
name = f.read().split(' ')[1].replace('(', '').replace(')', '')
f.close()
except:
pass
return name
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists