Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 25, 2017 10:18:03

emil_rustam
Зарегистрирован: 2017-10-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Архивирование логов в python

Доброе время суток!

Есть такая проблема.

Были shell скрипты, которые надо перевести на python.

Последовательность работы shell скрипта:

1.Перейти в заданную папку согласно полученным параметрам (папка, где хранятся логи и папка, куда логи должны быть заархивированы)
2.Идет поиск логов, которые подлежат архивации ()

Вот условие поиска:

'ls | grep -xv app.log | grep -xv InfoNP.log | grep -xv InfoSP.log | grep -xv archive | grep -xv arc | wc -l'

3.Должно быть сжатие файлов из выборки.

4.Сжатые файлы должны быть перемещены в задданную папку.


Теперь о проблеме.

На шаге 2 использую такую команду:

Использую такую команду:

z=subprocess.call(,shell=True)

В ответ получаю 11 и 0. Так понимаю что 11 - это количество файлов из поиска, а 0 - response of subprocess.

Мне нужно заглушить response of subprocess, сжать файлы из выборки и переместить их заданную папку.

Буду очень признателен, если сможете помочь.

Вот shell скрипт, который сейчас это делает:

#!/bin/bash

#Initial variables
host_name=$(hostname -s)

scriptDir=“$( cd ”$( dirname "${BASH_SOURCE}“ )” && pwd )“
scriptFile=`basename ”$0“`
logFile=$scriptDir'/'”${scriptFile%.*}“'_'$(date +\%Y-\%m-\%d)'.log'

DO_log_folder=”/d01/tomcat/tomcat-7.0.47-Dealer-Online/logs“
DO_log_archive_folder=”/d01/logsarchive/logs/Dealer-Online/“
DO_logstore_folder=”/$host_name/tomcat-7.0.47-Dealer-Online“
LP_log_folder=”/d01/tomcat/apache-tomcat-8.0.35-LandingPage/logs“
LP_log_archive_folder=”/d01/logsarchive/logs/LandingPage/“
LP_logstore_folder=”/$host_name/apache-tomcat-8.0.35-LandingPage“
DOMHM_log_folder=”/d01/tomcat/DealerOnlineMHM_tomcat8/logs“
DOMHM_log_archive_folder=”/d01/logsarchive/logs/DealerOnlineMHM/“
DOMNP_log_folder=”/d01/tomcat/tomcat-7.0.47-Dealer-Online/logs/dealerOnlineMNP/“
DOMNP_archive_folder=”/d01/logsarchive/logs/DOMNP/“

#Procedures
printDate() {
echo `date +'%d/%m/%Y %H:%M:%S'`
}

ArchiveLogs(){
echo ”`printDate` START Archiving logs from $1 to $2"
cd $1

d=`date +'%Y-%m-%d'`

for i in `find *log* | grep -v $d | grep -v Catalina.out | grep -xv landing.log | grep -xv online.log`; do
tar -cjf $2/$i.bz2 $i –remove-files
if ; then
echo “`printDate` $i file was archived SUCCESSFULLY”;
else
echo “`printDate` $i file archiving”;
fi
done;
echo “`printDate` FINISH Archiving logs from $1 to $2”
}


#Main block
echo “———————————————-”
echo “`printDate` Archiving process started”


ArchiveLogs $DO_log_folder $DO_log_archive_folder
ArchiveLogs $LP_log_folder $LP_log_archive_folder
ArchiveLogs $DOMHM_log_folder $DOMHM_log_archive_folder
ArchiveLogs $DOMNP_log_folder $DOMNP_archive_folder

errorCount=`grep -i “error:\|failed\|exception” $logFile | wc -l`
if ; then
echo -e “Error found in log file $logFile\n Error count: $errorCount” | mail -s “ERROR during $(hostname) archiving process” “tdpso@azercell.com
echo “Mail was sent about errors at `printDate`”
fi


echo “Archiving process finished at `printDate`”
echo “———————————————-”


Офлайн

#2 Окт. 25, 2017 11:02:04

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Архивирование логов в python

Зачем тебе subprocess? Всё это включая сжатие можно сделать средствами python-а.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Окт. 25, 2017 13:35:00

emil_rustam
Зарегистрирован: 2017-10-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Архивирование логов в python

Я хочу сделать это максимально быстро и минимальными затратами.

Если поможешь так сделать, буду тебе благодарен.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version