как реализовать logrotate в сценарии оболочки

Кстати, airdrop теперь можно установить без его перестроения.

apt-get install aircrack-ng
cd /usr/src/lorcon/ruby-lorcon/aircrack-ng/scripts/airdrop-ng/
./airdrop-ng

12
24.09.2015, 09:03
3 ответа

В эти выходные я написал logrotee . Я, вероятно, не стал бы, если бы прочитал отличный ответ @JdeBP оmultilog.

Я сосредоточился на том, чтобы он был легким и мог сжимать в формате bzip2 свои выходные фрагменты, такие как:

verbosecommand | logrotee \
  --compress "bzip2 {}" --compress-suffix.bz2 \
  /var/log/verbosecommand.log

Однако многое еще предстоит сделать и протестировать.

3
27.01.2020, 19:54

Поскольку я пока не могу добавлять комментарии к принятому ответу , подсказка BusyBox , где duне имеет флага -b:

du /var/log/file | tr -s '\t' ' ' | cut -d' ' -f1
0
27.01.2020, 19:54

можно использовать приведенный ниже сценарий

#!/bin/sh

# Log directory
LOGDIR=/data/logs

# Maximum number of archive logs to keep
MAXNUM=30

#Log files to be handled in that log directory 
files=(access.log error.log)

for LOGFILE in "${files[@]}"
do 

## Check if the last log archive exists and delete it.
if [ -f $LOGDIR/$LOGFILE.$MAXNUM.gz ]; then
rm $LOGDIR/$LOGFILE.$MAXNUM.gz
fi

NUM=$(($MAXNUM - 1))

## Check the previous log file.
while [ $NUM -ge 0 ]
do
NUM1=$(($NUM + 1))
if [ -f $LOGDIR/$LOGFILE.$NUM.gz ]; then
mv $LOGDIR/$LOGFILE.$NUM.gz $LOGDIR/$LOGFILE.$NUM1.gz
fi

NUM=$(($NUM - 1))
done


# Compress and clear the log file
if [ -f $LOGDIR/$LOGFILE ]; then
cat $LOGDIR/$LOGFILE | gzip > $LOGDIR/$LOGFILE.0.gz
cat /dev/null > $LOGDIR/$LOGFILE
fi

done
1
22.04.2021, 11:36

Теги

Похожие вопросы