, последнее обновление:

Mod_log_chat Logrotator

Данный скрипт использовался в начале 2010х (или даже в конце 2000х)! На текущий момент работа скрипта не гарантируется, да и есть более вменяемые аналоги логирования чатов на сервере, вроде XEP-0313 (модуль для ejabberd существует и входит в поставку).

Написал небольшой скрипт на питоне, который сортирует логи, производимые mod_log_chat’ом, по годам, месяцам и дням. Полезно, например, для мониторинга личной переписки на корпоративном jabber-сервере.

#!/usr/bin/python2
 
# mod_log_chat logrotator script
# Sorts logs, produced by mod_log_chat, by years, monts and days
 
import os, sys, commands, shutil
 
# Set ROOTDIR to root dir of your logs. Do not forget about
# trailing slash!
ROOTDIR = '/path/to/logs/'
 
filelist = commands.getoutput('cd ' + ROOTDIR + ' && find . -maxdepth 1 -type f')
filelist = filelist.split('\n')
 
for file in filelist:
    splitted_file_name = file[2:].split('-')
    try:
        year = splitted_file_name[0]
        month = splitted_file_name[1]
        day = splitted_file_name[2].split(' ')[0]
        ignoring = 0
    except:
        ignoring = 1
 
    # Checking dirs...
    if not ignoring == 1:
        if not os.path.exists(ROOTDIR + year):
            os.mkdir(ROOTDIR + year)
        if not os.path.exists(ROOTDIR + year + '/' + month):
            os.mkdir(ROOTDIR + year + '/' + month)
        if not os.path.exists(ROOTDIR + year + '/' + month + '/' + day):
            os.mkdir(ROOTDIR + year + '/' + month + '/' + day)
 
        # Getting file name and moving it to approriate dir
        splitted_file_name1 = file.split(' ')
        filename = splitted_file_name1[1] + ' - ' + splitted_file_name1[3]
        shutil.move(ROOTDIR + file[2:], ROOTDIR + year + '/' + month + '/' + day + '/' + filename)
    else:
        print "Ignoring file", file[2:]