URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 46712
[ Назад ]

Исходное сообщение
"как  в linux сархивировать файлы по месяцам создания"

Отправлено nit , 02-Авг-04 10:31 
есть куча лог файлов
как заархивировать их по месяцам создания
чтобы получить архив aug.tar.gz, sep.tar.gz и.т.д........

Содержание

Сообщения в этом обсуждении
"как  в linux сархивировать файлы по месяцам создания"
Отправлено newser , 02-Авг-04 12:08 
>есть куча лог файлов
>как заархивировать их по месяцам создания
>чтобы получить архив aug.tar.gz, sep.tar.gz и.т.д........

Написать скрипт на shell/perl, ИМХО. Или ручками. :)


"как  в linux сархивировать файлы по месяцам создания"
Отправлено Xela , 02-Авг-04 12:24 
>есть куча лог файлов
>как заархивировать их по месяцам создания
>чтобы получить архив aug.tar.gz, sep.tar.gz и.т.д........

man find
man tar


"как  в linux сархивировать файлы по месяцам создания"
Отправлено _KAV_ , 02-Авг-04 12:28 
>>есть куча лог файлов
>>как заархивировать их по месяцам создания
>>чтобы получить архив aug.tar.gz, sep.tar.gz и.т.д........
>
>man find
>man tar
А еще лучше- man logorotate


"как  в linux сархивировать файлы по месяцам создания"
Отправлено John , 02-Авг-04 13:03 
>>>есть куча лог файлов
>>>как заархивировать их по месяцам создания
>>>чтобы получить архив aug.tar.gz, sep.tar.gz и.т.д........
>>
>>man find
>>man tar
>А еще лучше- man logorotate


#!/bin/sh

#$1 - путь, где файлы, которые надо затарить
#$2 - путь+префикс, куда класть архив
#например: /mnt/bak/file_
#тогда получится что-то типа: /mnt/bak/file_200405, /mnt/bak/file_200406...
#можно, конечно, еще добавить что-нибудь, например, проверку аргументов

tmp_f=`mktemp -t XXXXXXXXXX || exit 1`
lst_f=`mktemp -t XXXXXXXXXX || exit 1`

find $1 -type f -printf "%AY%Am\t%p\n" > $tmp_f

for i in `cut -f1 $tmp_f | sort | uniq`
do
    grep "^$i   .*" $tmp_f | cut -f2 > $lst_f
    tar -czf $2_$i.tgz --files-from=$lst_f
done

rm -f $tmp_f $lst_f


"как  в linux сархивировать файлы по месяцам создания"
Отправлено John , 02-Авг-04 13:14 
sorry
>find $1 -type f -printf "%AY%Am\t%p\n" > $tmp_f
%A - last access time
find $1 -type f -printf "%TY%Tm\t%p\n" > $tmp_f
%T - last modification time