0
我想把他們的所有日誌文件/var/log
和cat
都轉換成主日誌文件,然後壓縮該主文件。我究竟該怎麼做?如何將一定數量的文件放在一個'主'文件中
我在我的代碼中有cat
,因爲這是我知道如何在bash中完成的。我將如何在Perl中做到這一點?
#!/usr/bin/perl
use strict;
use warnings;
use IO::Compress::Zip qw(zip $ZipError);
# cat /var/log/*log > /home/glork/masterlog.log
my @files = </var/log/*.log>;
zip \@files => 'glork.zip'
or die "zip failed: $ZipError\n";
@files = </var/log/*.log>;
if (@files) {
unlink @files or warn "Problem unlinking @files: $!";
print "The job is done\n";
} else {
warn "No files to unlink!\n";
}
是否要將一個文件放在另一個文件之後,或將它們合併到一個文件中,其中所有文件的日誌消息都按照時間戳進行交織和排序? 'cat'命令顯然不起作用。也許你應該改變這個問題作爲評論,否則你會讓某人指出它的語法錯誤。 – simbabque
我沒有看到連接文件的重點,它只是丟失了信息。爲什麼不把它們全部作爲單獨的文件壓縮到一個zip文件中? – Borodin
'tar cvfz logs.tar.gz/var/log/* log'是我該怎麼做的。根本不需要'perl'。如果你真的需要:'tar cvfz logs.tar.gz/var/log/* log && rm -f/var/log/* log'。如果問題是日誌整合,那麼我也不會這樣做,我只是看着更改rsyslog.conf – Sobrique