Schrift
[thread]11038[/thread]

Poard: Loeschscript gesucht (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Strat
 2007-12-23 15:20
#104115 #104115
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
so, das script ist aktiv und wird automatisch nach dem backup ausgefuehrt. Ich habe ein paar unwesentliche aenderungen gemacht, die mir das debuggen erleichtert haben.

Nochmals vielen Dank an renée
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#! /usr/bin/perl
use strict;
use warnings;

use Date::Calc qw(Add_Delta_Days Add_Delta_YM Today);
use File::Spec;
use File::Basename ();
use POSIX;
use FindBin;

my $doDelete = 1;
my $directory = File::Spec->catdir( qw[ / sc backup] );
my $bin = File::Basename::basename( $0 );


my $logfile   = File::Spec->catfile( $FindBin::Bin, "$bin.log" );

my @files = _get_filenames( $directory );

@files    = _clean_list( @files );

getFreeSpace( $logfile );

_delete_files( $directory, $logfile, @files );

getFreeSpace( $logfile );

###
# Subroutines
###

sub _get_filenames{
    my ($dir) = @_;

    opendir my $dirh, $dir or die $!;
    my @files = grep{ /^\w+\_\d{8}-\d{6}\.tar\.gz$/ }readdir $dirh;
    closedir $dirh;

    return @files;
}

sub _clean_list{
    my @files = @_;

    my @dates;

    my @today = Today();

    # keep today's files
    push @dates, sprintf "%04d%02d%02d", @today;

    # keep files of 5 last days
    for (1..4) {
        push @dates, sprintf "%04d%02d%02d", Add_Delta_Days( @today, $_ * -1 );
    }

   # keep files of 11th, 21st of the last 6 months
   for (0..5){
      my ($year,$month,$day) = Add_Delta_YM( @today, 0, $_ * -1 );
      for( 11, 21 ){
         push @dates, sprintf "%04d%02d%02d", $year,$month, $_;
      }
   }

   # filter filenames
   @files = grep{ my ($f) = $_ =~ /^\w+\_(\d{8})/;
                 !( grep{ $f == $_ }@dates or $f =~ /01$/ )
                }@files;
}

sub _delete_files{
   my ($dir,$log,@files) = @_;

   open( my $fh_log, '>>', $log ) or die $!;

   for my $file ( sort @files ){
      my $time = POSIX::strftime( '%Y%m%d-%H%M%S', localtime);
      my $fqfn = File::Spec->catfile( $dir, $file );
      if( $doDelete ) {
          unlink $fqfn and print $fh_log $time,"\t",$file,"\n";
      } # if
      else {
          print "Simulate: file '$file' would have been deleted\n";
      }
   }

   close $fh_log;
} # _delete_files

sub getFreeSpace {
    my( $log ) = @_;

    my @space = `df -k`;

    open( my $fh_log, '>>', $log ) or die $!;
    print $fh_log "\n# Free space:\n";
    foreach my $line ( @space ) {
        print $fh_log "# $line";
    }
    close $fh_log;

} # getFreeSpace
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2007-12-23 19:55
#104118 #104118
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Strat+2007-12-23 14:20:49--
Nochmals vielen Dank an renée


Gern geschehen. Nachdem ich jetzt schon seit etlichen Wochen nix mehr an Poard selbst machen konnte, wurde es ja mal Zeit, dass ich wieder was für Perl-Community.de mache...

Im Moment habe ich eher mal Zeit, um so etwas Kleines zu machen als für größere Dinge, da ich im Moment viel für die $foo-Webseite zu tun habe (für den Admin-Bereich) und einiges für PerlNews mache...

Dort erweitere ich gerade auch das RSS-Feed-Modul, damit ich den Kern für das Poard übernehmen kann. Ich hoffe, dass ich als Neujahrs-Geschenk wenigstens ein "Haupt-RSS-Feed" (Feed für das gesamte Forum) fertigbekomme. RSS-Feeds für die einzelnen Subforen sind dann erst im neuen Jahr dran...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2007-12-25 13:26
#104149 #104149
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
hallo,

habe gerade das loeschscript nochmal ueberprueft, laeuft immer noch perfekt.

Frohe Weihnachten!
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-12-16 14:03.